Pourquoi les estimations du coefficient de régression rlm () sont-elles différentes de lm () dans R?

15

J'utilise rlm dans le package R MASS pour régresser un modèle linéaire multivarié. Cela fonctionne bien pour un certain nombre d'échantillons, mais j'obtiens des coefficients quasi nuls pour un modèle particulier:

Call: rlm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, maxit = 50, na.action = na.omit)
Residuals:
       Min         1Q     Median         3Q        Max 
-7.981e+01 -6.022e-03 -1.696e-04  8.458e-03  7.706e+01 

Coefficients:
             Value    Std. Error t value 
(Intercept)    0.0002   0.0001     1.8418
X1             0.0004   0.0000    13.4478
X2            -0.0004   0.0000   -23.1100
X3            -0.0001   0.0002    -0.5511
X4             0.0006   0.0001     8.1489

Residual standard error: 0.01086 on 49052 degrees of freedom
  (83 observations deleted due to missingness)

A titre de comparaison, ce sont les coefficients calculés par lm ():

Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, na.action = na.omit)

Residuals:
    Min      1Q  Median      3Q     Max 
-76.784  -0.459   0.017   0.538  78.665 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.016633   0.011622  -1.431    0.152    
X1            0.046897   0.004172  11.240  < 2e-16 ***
X2           -0.054944   0.002184 -25.155  < 2e-16 ***
X3            0.022627   0.019496   1.161    0.246    
X4            0.051336   0.009952   5.159  2.5e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 2.574 on 49052 degrees of freedom
  (83 observations deleted due to missingness)
Multiple R-squared: 0.0182, Adjusted R-squared: 0.01812 
F-statistic: 227.3 on 4 and 49052 DF,  p-value: < 2.2e-16 

L'intrigue lm ne montre aucune valeur aberrante particulièrement élevée, telle que mesurée par la distance de Cook:

lm diagnostic

ÉDITER

Pour référence et après confirmation des résultats sur la base de la réponse fournie par Macro, la commande R pour définir le paramètre de réglage k, dans l'estimateur Huber est ( k=100dans ce cas):

rlm(y ~ x, psi = psi.huber, k = 100)
Robert Kubrick
la source
Les erreurs types résiduelles, en combinaison avec les autres informations, donnent l'impression que la rlmfonction de pondération rejette presque toutes les observations. Êtes-vous sûr que c'est le même Y dans les deux régressions? (Juste vérification ...) Essayez method="MM"votre rlmappel, puis essayez (si cela échoue) psi=psi.huber(k=2.5)(2.5 est arbitraire, juste plus grand que le 1.345 par défaut) qui répartit la lmrégion semblable à la fonction de poids.
jbowman
@jbowman Y est correct. Ajout de la méthode MM. Mon intuition est la même que celle que vous avez mentionnée. Les résidus de ce modèle sont relativement compacts par rapport aux autres que j'ai essayés. Il semble que la méthodologie rejette la plupart des observations.
Robert Kubrick
1
@RobertKubrick, vous comprenez ce que le réglage de k à 100 signifie , non?
user603
Sur cette base: R-carré multiple: 0,0182, R-carré ajusté: 0,01812, vous devriez examiner votre modèle une fois de plus. Valeurs aberrantes, transformation de la réponse ou prédicteurs. Ou vous devriez envisager un modèle non linéaire. Predictor X3 n'est pas significatif. Ce que vous avez fait n'est pas un bon modèle linéaire.
Marija Milojevic

Réponses:

15

La différence est qu'elle rlm()s'adapte aux modèles en utilisant votre choix d'un certain nombre d' estimateurs différents , tout en utilisant des moindres carrés ordinaires.Mlm()

M

je=1nρ(Ouije-Xjeβσ)

en fonction de , où est la ème réponse, et est les prédicteurs de l'individu . Les moindres carrés en sont un cas particulier où Cependant, le paramètre par défaut pour lequel vous semblez utiliser est l' estimateur Huber , qui utiliseβYiiXii

ρ(x)=x2
rlm()M

ρ(x)={12x2if |x|kk|x|12k2if |x|>k.

où est une constante. La valeur par défaut est . Ces deux estimateurs minimisent des critères différents, il n'est donc pas surprenant que les estimations soient différentes.krlm()k=1.345

Edit: D'après le tracé QQ montré ci-dessus, il semble que vous ayez une distribution d'erreur très longue. C'est le genre de situation pour laquelle l'estimateur M de Huber est conçu et, dans cette situation, peut donner des estimations très différentes:

Lorsque les erreurs sont normalement distribuées, les estimations seront assez similaires car, sous la distribution normale, la plupart de la fonction de Huber tombera dans la situation , ce qui équivaut aux moindres carrés. Dans la situation à longue queue que vous avez, beaucoup tombent dans la situation , qui est une dérogation à l'OLS, ce qui expliquerait l'écart. ρ|x|<k|x|>k

Macro
la source
J'ai essayé plusieurs autres modèles (même nombre d'observations, mêmes IV) et les coefficients sont assez similaires entre rlm et lm. Il doit y avoir quelque chose dans cet ensemble de données particulier qui produit la grande différence dans les coefficients.
Robert Kubrick
1
Non, il n'y a pas de méthodes normalisées pour choisir - ce sont des paramètres de réglage et sont généralement choisis de manière ad hoc. Dans l'article fondateur (Huber, 1964), il note que n'importe où entre 1.0 et 2.0 donne des résultats acceptables et que le choix importe peu. Dans cet article ( education.wayne.edu/jmasm/sawilowsky_lre.pdf ), les auteurs utilisent un concept appelé «Location Relative Efficiency» pour choisir d'indexer. Dans tous les cas, je ne recommande pas de traiter les estimations des moindres carrés comme des estimations du maximum de vraisemblance dans vos données - les erreurs sont très longues. k
Macro
1
Une chose que vous pourriez faire pour valider (dans une certaine mesure) ceci est d'essayer dans la fonction et de voir comment l'erreur standard résiduelle et les estimations des paramètres changent. À mesure que augmente, il devrait y avoir une approche des estimations. De plus, il est possible que l'estimation de départ de propagation (MAD) avec cet ensemble de données soit très, très petite, ce que vous pouvez vérifier en calculant MAD sur les résidus de ; dans ce cas, tout, quelle que soit sa magnitude, est rejeté car l'estimation de la propagation est trop petite, et une variation de k certains ne fera pas de différence. k=1.5,2,2.5,3,3.5,4psi.huberklmrlm
jbowman
1
C'est pour les informations ajoutées, @jbowman - ce sont des commentaires utiles. En ce qui concerne votre dernier commentaire, ces grandes observations ne sont pas exactement rejetées - leur influence est simplement diminuée (comme il semble qu'elles devraient l'être), non?
Macro
1
@RobertKubrick, Huber (1964) a montré que cette équation d'estimation donne une inférence statistique correcte face aux erreurs qui sont un mélange d'erreurs normales et à longue traîne, donc elle est robuste dans le sens où elle peut gérer ce type de non-normalité . Re: votre dernier commentaire - ce n'est pas vrai. Notez que nous évoluons par - un modèle mal ajusté peut avoir des erreurs normales. Une fois que nous serons mis à l'échelle par ces erreurs ne seront plus "importantes". Il s'agit, dans un certain sens, d'observations à la baisse avec des résidus incompatibles avec la normalité, bien que, comme je l'ai dit, ce n'est pas ainsi que la méthode ait été dérivée. σσ
Macro