Dlaczego szacunki współczynnika regresji rlm () różnią się od lm () w R?


15

Korzystam z rlm w pakiecie R MASS do regresji wielowymiarowego modelu liniowego. Działa dobrze dla wielu próbek, ale otrzymuję quasi-zerowe współczynniki dla konkretnego modelu:

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)

Dla porównania są to współczynniki obliczone przez 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 

Wykres lm nie wykazuje żadnych szczególnie wysokich wartości odstających, mierzonych odległością Cooka:

Jestem diagnostyczny

EDYTOWAĆ

W celach informacyjnych i po potwierdzeniu wyników na podstawie odpowiedzi udzielonej przez Makro komenda R, aby ustawić parametr strojenia k, w estymatorze Hubera to ( k=100w tym przypadku):

rlm(y ~ x, psi = psi.huber, k = 100)

Pozostałe błędy standardowe w połączeniu z innymi informacjami sprawiają, że wygląda na to, że rlmfunkcja wagi wyrzuca prawie wszystkie obserwacje. Czy jesteś pewien, że to ta sama Y w dwóch regresjach? (Tylko sprawdzanie ...) Spróbuj method="MM"w swoim rlmwywołaniu, a następnie spróbuj (jeśli to się nie powiedzie) psi=psi.huber(k=2.5)(2.5 jest arbitralne, tylko większe niż domyślny 1.345), który rozkłada lmpodobny do regionu obszar funkcji wagi.
łucznik

@ jbowman Y jest poprawny. Dodano metodę MM. Moja intuicja jest taka sama jak wspomniałeś. Pozostałości tego modelu są stosunkowo kompaktowe w porównaniu z innymi, które wypróbowałem. Wygląda na to, że metodologia odrzuca większość obserwacji.
Robert Kubrick

1
@RobertKubrick zrozumieć, co ustawienie k 100 środków , prawda?
user603

Na tej podstawie: wielokrotne R-kwadrat: 0,0182, skorygowane R-kwadrat: 0,01812 powinieneś jeszcze raz zbadać swój model. Wartości odstające, transformacja odpowiedzi lub predyktory. Lub powinieneś rozważyć model nieliniowy. Predyktor X3 nie jest znaczący. To, co stworzyłeś, nie jest dobrym modelem liniowym.
Marija Milojevic,

Odpowiedzi:


15

rlm()Mlm()

M

i=1nρ(YiXiβσ)

βYiiXii

ρ(x)=x2
rlm()M

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

krlm()k=1.345

Edycja: Z wykresu QQ pokazanego powyżej wygląda na to, że masz bardzo długi rozkład błędów. Jest to rodzaj sytuacji, dla której przeznaczony jest Huber M-estymator, i w takiej sytuacji może dać zupełnie inne oszacowania:

ρ|x|<k|x|>k


Wypróbowałem kilka innych modeli (ta sama liczba obserwacji, te same IV) i współczynniki są dość podobne dla rlm i lm. W tym konkretnym zestawie danych musi znajdować się coś, co powoduje dużą różnicę współczynników.
Robert Kubrick

1
k

1
k=1.5,2,2.5,3,3.5,4psi.huberklmrlm
jbowman

1
To dotyczy dodanych informacji, @jbowman - są to przydatne komentarze. Jeśli chodzi o twój ostatni komentarz, te duże obserwacje nie są dokładnie wyrzucane - ich wpływ jest po prostu zmniejszany (tak, jak się wydaje, że powinny), prawda?
Makro

1
σσ
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.