Por que as estimativas do coeficiente de regressão rlm () são diferentes de lm () em R?

15

Estou usando rlm no pacote R MASS para regredir um modelo linear multivariado. Funciona bem para várias amostras, mas estou obtendo coeficientes quase nulos para um modelo específico:

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)

Para comparação, estes são os coeficientes calculados por 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 

O gráfico lm não mostra nenhum desvio particularmente alto, conforme medido pela distância de Cook:

lm diagnóstico

EDITAR

Para referência e após a confirmação dos resultados com base na resposta fornecida por Macro, o comando R para definir o parâmetro de ajuste k, no estimador Huber é ( k=100neste caso):

rlm(y ~ x, psi = psi.huber, k = 100)
Robert Kubrick
fonte
Os erros padrão residuais, em combinação com as outras informações, fazem parecer que a rlmfunção de peso está lançando quase todas as observações. Você tem certeza de que é o mesmo Y nas duas regressões? (Apenas checando ...) Tente method="MM"sua rlmligação e tente (se isso falhar) psi=psi.huber(k=2.5)(2,5 é arbitrário, apenas maior que o padrão 1.345) que espalha a lmregião semelhante à função de peso.
jbowman
@jbowman Y está correto. Adicionado o método MM. Minha intuição é a mesma que você mencionou. Os resíduos deste modelo são relativamente compactos em comparação com os outros que eu tentei. Parece que a metodologia está descartando a maioria das observações.
Robert Kubrick
11
@RobertKubrick você entende o que configuração k de 100 meios , certo?
User603
Baseado nisso: R-quadrado múltiplo: 0,0182, R-quadrado ajustado: 0,01812, você deve examinar seu modelo mais uma vez. Outliers, transformação da resposta ou preditores. Ou você deve considerar o modelo não linear. O preditor X3 não é significativo. O que você fez não é um bom modelo linear.
Marija Milojevic

Respostas:

15

rlm()Mlm()

M

i=1nρ(YiXiβσ)

βYiiXii

ρ(x)=x2
rlm()M

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

krlm()k=1.345

Edit: A partir do gráfico QQ mostrado acima, parece que você tem uma distribuição de erro de cauda muito longa. Esse é o tipo de situação para a qual o estimador Huber H foi projetado e, nessa situação, pode fornecer estimativas bem diferentes:

ρ|x|<k|x|>k

Macro
fonte
Eu tentei vários outros modelos (o mesmo número de observações, os mesmos IVs) e os coeficientes são bastante semelhantes entre rlm e lm. Deve haver algo nesse conjunto de dados específico que esteja produzindo a grande diferença nos coeficientes.
Robert Kubrick
11
k
11
k=1.5,2,2.5,3,3.5,4psi.huberklmrlm
jbowman 31/05
11
Isso é uma informação adicional, @jbowman - esses são comentários úteis. Em seu último comentário, essas grandes observações não estão sendo exatamente descartadas - a influência delas está sendo reduzida (como parece que deveriam ser), certo?
Macro
11
σσ