Quadrado R na regressão quantílica

21

Estou usando a regressão quantílica para encontrar preditores do percentil 90 dos meus dados. Estou fazendo isso no R usando o quantregpacote. Como posso determinar r2 para a regressão quantílica, que indicará quanto da variabilidade está sendo explicado pelas variáveis ​​preditoras?

O que eu realmente quero saber: "Qualquer método que eu possa usar para descobrir quanto da variabilidade está sendo explicado?". Os níveis de significância por valores de P está disponível na saída de comando: summary(rq(formula,tau,data)). Como posso obter qualidade de ajuste?

rnso
fonte
7
R2 não é relevante para regressão quantílica.
whuber
@ whuber: Qualquer método alternativo que eu possa usar para descobrir o quanto de variabilidade está sendo explicado?
rnso
2
Seria bom perguntar no corpo da sua pergunta, em vez de enterrado em um comentário! "Variabilidade explicada" (medida em termos de variações, enfim) é essencialmente um conceito de mínimos quadrados; talvez o que você queira seja uma medida apropriada da significância estatística ou, possivelmente, da qualidade do ajuste.
whuber
Para qualquer figura de mérito, você precisa considerar o que seria um bom desempenho, o que seria um desempenho ruim e o que seria irrelevante. Por exemplo, não há críticas ao percentil 90 se esse é um péssimo preditor do percentil 10. Seu benchmark pode ser o que você pode usar se não estiver usando regressão quantílica. Se seus preditores forem contínuos, isso pode ser difícil de definir.
Nick Cox
1
@ whuber: eu adicionei isso no corpo da pergunta. O nível de significância pelo valor P está disponível na saída resumida (rq (fórmula, tau, dados)). Como posso obter qualidade de ajuste?
rnso

Respostas:

23

Koenker e Machado [ 1 ] descrevem R 1 , uma medida local de qualidade de ajuste no (nomeadamente τ ) quantil.[1]R1τ

Seja V(τ)=minbρτ(yixib)

Deixe β ( τ ) e ~ β ( τ ) ser as estimativas dos coeficientes para o modelo completo, e um modelo restrito, e deixá- V e ~ V ser os correspondentes termos.β^(τ)β~(τ)V^V~V

Eles definem o critério de qualidade de ajuste .R1(τ)=1V^V~

Koenker dá código para aqui ,V

rho <- function(u,tau=.5)u*(tau - (u < 0))
V <- sum(rho(f$resid, f$tau))

Então, se nós de computação para um modelo com uma interceptação-only ( ~ V - ou , no trecho de código abaixo) e, em seguida, um modelo irrestrito ( V ), podemos calcular um que é - pelo menos teoricamente - um pouco como o de costume R 2 .VV~V0V^R1 <- 1-Vhat/V0R2

Editar: no seu caso, é claro, o segundo argumento, que seria colocado onde f$tauestá a chamada na segunda linha de código, será o valor que tauvocê usou. O valor na primeira linha apenas define o padrão.

'Explicar variação sobre a média' não é realmente o que você está fazendo com a regressão quantílica; portanto, você não deve esperar ter uma medida realmente equivalente.

Eu não acho que o conceito de traduz bem a regressão quantílica. Você pode definir várias quantidades mais ou menos análogas, como aqui, mas não importa o que você escolhe, você não terá a maioria das propriedades reais R 2 tem em regressão OLS. Você precisa ser claro sobre quais propriedades precisa e o que não precisa - em alguns casos, pode ser possível ter uma medida que faça o que você deseja.R2R2

-

Koenker, R e Machado, J (1999), Goodness of Fit e processos de inferência relacionados para regressão quantílica, Journal of the American Statistical Association,94: 448, 1296-1310.[1]

Glen_b -Reinstate Monica
fonte
Tau = 0,9 deve ser em vez de 0,5?
Dimitriy V. Masterov
Sim, deveria, mas se você fornecer o segundo argumento correto (como é feito na segunda linha que citei acima), é assim que funciona. O valor de 0,5 na primeira linha é simplesmente um argumento padrão se você não especificar tauquando chamar a função. Vou esclarecer no post.
Glen_b -Reinstala Monica
@Glen_b Obrigado pela explicação. A menos que eu estou fazendo algo estúpido, V parece ser a soma dos desvios ponderada sobre quantil estimado, em vez de um pseudo- . R2
Dimitriy V. Masterov
@ Dimitriy Uh, você está certo, eu deixei algo de fora. Vou consertar isso em breve.
Glen_b -Reinstala Monica
@ Dimitriy Acho que corrigi-lo agora.
Glen_b -Reinstala Monica
19

O pseudo- medida sugerido por Koenker e Machado (1999) em JASA mede qualidade do ajuste por comparação da soma de desvios ponderados para o modelo de interesse com a mesma soma a partir de um modelo em que apenas os aparece interceptam. É calculado comoR2

R1(τ)=1yiy^iτ|yiy^i|+yi<y^i(1τ)|yiy^i|yiy¯τ|yiy¯|+yi<y¯i(1τ)|yiy¯|,

onde y i = ct τ + p τ x é o equipada τ th quantil para observação i , e ˉ y = p τ é o valor ajustado do modelo apenas de intercepção.y^i=ατ+βτxτiy¯=βτ

deve estar em [ 0 , 1 ] , onde 1 corresponderia a um ajuste perfeito, pois o numerador que consiste na soma ponderada dos desvios seria zero. É umlocal demedida de ajuste para QRM uma vez que depende τ , ao contrário do mundial R 2 de OLS. Essa é sem dúvida a fonte dos avisos sobre o uso: se você modelar se encaixa na cauda, ​​não há garantia de que se encaixa bem em qualquer outro lugar. Essa abordagem também pode ser usada para comparar modelos aninhados.R1(τ)[0,1]τR2

Aqui está um exemplo em R:

library(quantreg)
data(engel)

fit0 <- rq(foodexp~1,tau=0.9,data=engel)
fit1 <- rq(foodexp~income,tau=0.9,data=engel)

rho <- function(u,tau=.5)u*(tau - (u < 0))
R1 <- 1 - fit1$rho/fit0$rho

Provavelmente isso poderia ser realizado de maneira mais elegante.

Dimitriy V. Masterov
fonte
Sua fórmula não aparece bem. Após o sinal de menos, R_1(\tau) = 1 - 􀀀o último caractere é algum tipo de confusão. Você poderia verificar isso? Talvez você tenha colado algum caractere não-padrão em vez de usar o Tex.
Tim
@ Tim Não vejo nada de estranho, nem no tex nem na tela.
Dimitriy V. Masterov
Parece que isso no linux e no windows: snag.gy/ZAp5T.jpg
Tim
@ Tim Essa caixa não corresponde a nada, portanto pode ser ignorada. Vou tentar editá-lo mais tarde a partir de outra máquina.
Dimitriy V. Masterov