Rのrlm()回帰係数の推定値がlm()と異なるのはなぜですか?


15

R MASSパッケージのrlmを使用して、多変量線形モデルを回帰しています。多くのサンプルでうまく機能しますが、特定のモデルの準ヌル係数を取得しています:

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)

比較のために、これらは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 

クックの距離で測定した場合、lmプロットには特に高い外れ値は表示されません。

lm診断

編集

参考のため、およびマクロから提供された回答に基づいて結果を確認した後k、Huber推定器で調整パラメーターを設定するRコマンドは(k=100この場合)です。

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

残りの標準誤差は、他の情報と組み合わせて、rlm重み関数がほとんどすべての観測値を破棄しているように見えます。2つの回帰で同じYであると確信していますか?(確認するだけです...)呼び出してみmethod="MM"て、rlm(失敗した場合は)試行しますpsi=psi.huber(k=2.5)(2.5は任意で、デフォルトの1.345よりも大きい)。これlmは、重み関数の-のような領域を広げます。
jbowman

@jbowman Yは正しいです。MMメソッドを追加しました。私の直感はあなたが言ったのと同じです。このモデルの残差は、私が試した他のモデルに比べて比較的コンパクトです。方法論はほとんどの観測を破棄しているようです。
ロバートキューブリック

1
あなたはどのような設定kは100のに理解@RobertKubrick 手段右、?
user603

これに基づいて:複数のR 2乗:0.0182、調整済みR 2乗:0.01812もう一度モデルを調べる必要があります。外れ値、応答または予測子の変換。または、非線形モデルを検討する必要があります。予測子X3は重要ではありません。あなたが作ったのは良い線形モデルではありません。
マリヤミロジェビッチ

回答:


15

違いはrlm()、多数の異なる推定器の選択を使用してモデルに適合し、通常の最小二乗法を使用することです。Mlm()

一般に、回帰係数の推定量は最小化しますM

i=1nρ(YiXiβσ)

関数としてYは、iがあるI「番目の応答、およびX iが個人の予測因子であるI。最小二乗は、ρ x = x 2であるこの特殊なケースです。 ただし、使用しているように見えるデフォルト設定は、使用するHuber M -estimatorです。βYiiXii

ρ(x)=x2
rlm()M

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

krlm()k=1.345

編集:上記のQQプロットから、非常に長いテールのエラー分布があるように見えます。これは、Huber M-estimatorが設計された種類の状況であり、その状況ではまったく異なる推定値を与えることができます。

ρ|x|<k|x|>k


私はいくつかの他のモデル(同じ数の観測値、同じIV)を試しましたが、係数はrlmとlmの間でかなり似ています。この特定のデータセットには、係数に大きな差を生じさせるものが存在する必要があります。
ロバートキューブリック

1
k

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

1
それは追加情報@jbowmanのためです-これらは有用なコメントです。あなたの最後のコメントに関して、それらの大きな観測は正確に捨てられているわけではありません-それらの影響は単に(彼らがそうあるべきであるように)ダイヤルされているだけですよね?
マクロ

1
σσ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.