R au carré dans la régression quantile

21

J'utilise la régression quantile pour trouver des prédicteurs du 90e centile de mes données. Je fais cela dans R en utilisant le quantregpackage. Comment puis-je déterminer pour la régression quantile qui indiquera le degré de variabilité expliqué par les variables prédictives?r2

Ce que je veux vraiment savoir: "Toute méthode que je peux utiliser pour trouver le degré de variabilité expliqué?". Les niveaux de signification par des valeurs P est disponible en sortie de la commande: summary(rq(formula,tau,data)). Comment puis-je obtenir une bonne forme?

rnso
la source
7
R2 n'est pas pertinent pour la régression quantile.
whuber
@whuber: Toute autre méthode que je peux utiliser pour trouver le degré de variabilité expliqué?
rnso
2
Ce serait une bonne chose à poser dans le corps de votre question, plutôt que d'être enterré dans un commentaire! La "variabilité expliquée" (mesurée en termes de variances de toute façon) est essentiellement un concept des moindres carrés; peut-être que vous voulez une mesure appropriée de la signification statistique ou peut-être de la qualité de l'ajustement.
whuber
Pour toute figure de mérite, vous devez considérer ce qui serait une bonne performance, ce qui serait une mauvaise performance et ce qui ne serait pas pertinent. Par exemple, ce n'est pas une critique du 90e centile si c'est un mauvais prédicteur du 10e centile. Votre référence pourrait être tout ce que vous pourriez utiliser si vous n'utilisiez pas de régression quantile. Si vos prédicteurs sont continus, cela pourrait être difficile à définir.
Nick Cox
1
@whuber: J'ai ajouté cela dans le corps de la question. Le niveau de signification par valeur P est disponible dans la sortie récapitulative (rq (formule, tau, données)). Comment puis-je obtenir une bonne forme?
rnso

Réponses:

23

Koenker et Machado décrivent , une mesure locale de la qualité de l'ajustement au quantile particulier ( ).[1]R1τ

SoitV(τ)=minbρτ(yixib)

Soit et les estimations de coefficient pour le modèle complet et un modèle restreint, et soit et soit les termes correspondants .β^(τ)β~(τ)V^V~V

Ils définissent la qualité de l'ajustement critère .R1(τ)=1V^V~

Koenker donne le code pour ici ,V

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

Donc, si nous calculons pour un modèle avec une interception uniquement ( - ou dans l'extrait de code ci-dessous), puis un modèle sans restriction ( ), nous pouvons calculer un qui est - au moins théoriquement - un peu comme le habituel .VV~V0V^R1 <- 1-Vhat/V0R2

Edit: Dans votre cas, bien sûr, le deuxième argument, qui serait mis à l'endroit où se f$tautrouve l'appel dans la deuxième ligne de code, sera la valeur que tauvous avez utilisée. La valeur de la première ligne définit simplement la valeur par défaut.

«Expliquer la variance de la moyenne» n'est vraiment pas ce que vous faites avec la régression quantile, donc vous ne devriez pas vous attendre à avoir une mesure vraiment équivalente.

Je ne pense pas que le concept de traduise bien en régression quantile. Vous pouvez définir différentes quantités plus ou moins analogues, comme ici, mais peu importe ce que vous choisissez, vous n'aurez pas la plupart des propriétés du vrai dans la régression OLS. Vous devez être clair sur les propriétés dont vous avez besoin et ce que vous n'avez pas - dans certains cas, il peut être possible d'avoir une mesure qui fait ce que vous voulez.R2R2

-

[1] Koenker, R et Machado, J (1999),
Goodness of Fit and Related Inference Processes for Quantile Regression,
Journal of the American Statistical Association, 94 : 448, 1296-1310.

Glen_b -Reinstate Monica
la source
Le tau = 0,9 devrait-il être plutôt que 0,5?
Dimitriy V. Masterov
Oui, cela devrait, mais si vous fournissez le deuxième argument correct (comme cela est fait dans la deuxième ligne que j'ai citée ci-dessus), c'est comme ça que ça fonctionne. La valeur de 0,5 dans la première ligne est simplement un argument par défaut si vous ne spécifiez pas taulorsque vous appelez la fonction. Je vais clarifier dans le post.
Glen_b -Reinstate Monica
@Glen_b Merci pour l'explication. À moins que je ne fasse quelque chose de stupide, V semble être la somme des écarts pondérés sur le quantile estimé, plutôt qu'un pseudo- . R2
Dimitriy V. Masterov
@Dimitriy Uh, tu as raison, j'ai oublié quelque chose. Je vais résoudre ce problème sous peu.
Glen_b -Reinstate Monica
@Dimitriy Je pense que je l'ai corrigé maintenant.
Glen_b -Reinstate Monica
19

La mesure pseudo- suggérée par Koenker et Machado (1999) dans JASA mesure la qualité de l'ajustement en comparant la somme des écarts pondérés pour le modèle d'intérêt avec la même somme d'un modèle dans lequel seule l'ordonnée à l'origine apparaît. Il est calculé commeR2

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

où est le ème quantile ajusté pour l'observation , et est la valeur ajustée de l'interception seule modèle.y^i=ατ+βτxτiy¯=βτ

R1(τ) devrait se situer dans , où 1 correspondrait à un ajustement parfait puisque le numérateur qui se compose de la somme pondérée des écarts serait nul. C'est une mesure locale de l'ajustement pour QRM car elle dépend de , contrairement au global d'OLS. C'est sans doute la source des avertissements à propos de son utilisation: si votre modèle tient dans la queue, rien ne garantit qu'il s'adapte bien ailleurs. Cette approche pourrait également être utilisée pour comparer des modèles imbriqués.[0,1]τR2

Voici un exemple dans 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

Cela pourrait probablement être accompli avec plus d'élégance.

Dimitriy V. Masterov
la source
Votre formule ne s'affiche pas bien. Après la connexion moins: R_1(\tau) = 1 - 􀀀le dernier caractère est une sorte de gâchis. Pourriez-vous vérifier cela? Peut-être que vous avez collé un caractère non standard au lieu d'utiliser Tex.
Tim
@Tim Je ne vois rien d'étrange, ni dans le tex ni sur l'écran.
Dimitriy V. Masterov
Cela ressemble à la fois à Linux et à Windows: snag.gy/ZAp5T.jpg
Tim
@Tim Cette case ne correspond à rien, elle peut donc être ignorée. J'essaierai de le modifier plus tard à partir d'une autre machine.
Dimitriy V. Masterov