RのMM推定器を使用してロバスト回帰直線をあてはめる


8

環境。回帰直線を当てはめて、いくつかの応答変数といくつかの連続共変量間の関係を調べたいと思います。悪いレバレッジポイントが存在するため、通常のLS推定器ではなくMM推定器を選択しました。yx

方法論。基本的に、MM-estimationは、S-estimatorによって初期化されたM-estimationです。したがって、2つの損失関数を選択する必要があります。私は広く使用されているTukey Biweightの損失関数を選択しました

ρ(u)={1[1(uk)2]3if |u|k1if |u|>k,

で予備S-推定で(降伏点を与えるに等しい)、およびと共に(保証にM-推定ステップでガウス効率)。k=1.54850%k=2.69770%

Rを使用して、堅牢な回帰直線に適合させたいと思います。

質問。

library(MASS)
rlm(y~x, 
    method="MM",
    k0=1.548, c=2.697,
    maxit=50)
  • 私のコードは前の段落と一致していますか?
  • 他のオプションの引数を使用しますか?

編集。@Jason Morganとの話し合いの結果、以前のコードが間違っていることに気付きました。(@Jason Morgan:どうもありがとうございました!)しかし、彼の提案にはまだ納得できません。代わりに、これが私が今提案するものです:

library(robustbase)
lmrob(y~x, 
      tuning.chi=1.548, tuning.psi=2.697)

今はその方法論に固執していると思います。同意しますか?

ありがとう!

回答:


5

デフォルトでは、ドキュメントはをrlm使用することを示していpsi=psi.huberます。したがって、Tukeyのbisquareを使用する場合は、を指定する必要がありますpsi=psi.bisquare。デフォルト設定はでpsi.bisquare(u, c = 4.685, deriv = 0)、必要に応じて変更できます。たとえば、おそらく次のようなもの

rlm(x ~ y, method="MM", psi=psi.bisquare, maxit=50)

最小init="lts"値の正方形()を使用して開始値を初期化する必要があるかどうかを調査することもできます。デフォルトでは、最小二乗法を使用します。


@Janson Morgan:あなたが提案したことを確信していますか?その機能について何か経験がありますか?私のドキュメント(R 2.13.1)は、「係数の初期セットと最終スケールは、k0 = 1.548のS推定量によって選択されます。これにより、(n >> pに対して)内訳ポイント0.5が得られます。最終推定量は、この分解点を継承するTukeyのバイウェイトと固定スケールを備えたM推定器は、c> k0を提供します。これは、通常の相対効率95%に対応するcのデフォルト値に当てはまります。」
ocram

1
私は過去にこれらのモデルを推定しました。ドキュメントに記載されているように、MM推定の最初のステップはフーバーウェイトを使用して行われ、2番目のステップは二乗ウェイトを使用して行われます。私のメモ(数年前から)は、最初のSステップで、適切に指定すれば、フーバーウェイトの代わりにバイスクエアウェイトを使用できると述べていますpsic最初はおそらくデフォルトのままにしておきます(それに応じて回答を変更します)。
Jason Morgan

1
また、rlmを使用し、再帰プロパティのため、bisquare psi関数を使用します。ただし、特に小さなサンプルの場合、収束の問題が発生することがあります。
jbowman 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.