Rの「係数:14特異点のために定義されていません」などのエラーを処理するにはどうすればよいですか?


15

GLMを実行して、anovaの出力で「特異点のために定義されていない」エラーが発生した場合、このエラーの発生をどのように防ぐことができますか?

共変量間の共線性によるか、データセットにレベルの1つが存在しないことを示唆する人もいます(lmの「特異点のために定義されていない」の解釈を参照)

私はこれは「特定の治療法は、」モデルを推進して見てみたかったと私は治療の4つのレベルがある場合:Treat 1Treat 2Treat 3Treat 4、として私のスプレッドシートに記録されていますとき、Treat 1残りの1であるゼロで、ときTreat 2ゼロである残りの1です、など、私は何をしなければなりませんか?


多くの人がこの問題を抱えていると思います-この人物の質問に対する回答を誰もが理解していますか?stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid

回答:


27

おそらく、2つ以上の独立変数が完全に同一直線上にあるため、このエラーが発生しているでしょう(たとえば、ダミー変数を誤ってコーディングして同一のコピーを作成する)。

詳細に調べるには、データにcor()を使用するか、モデルにalias()を使用します。


10
ありがとう、alias()関数を知りませんでした。それは本当に便利です。乾杯、O.
OFish

1

独立変数間の強い相関関係により、「特異点のために定義されていません」というエラーが発生します。これは、n-1個のダミー変数を持つことで回避できます。あなたの場合、トリートメント変数には、3つのバイナリダミー変数(Treat1、Treat2、Treat3)を使用する必要があります。

Rプログラミングでは、線形回帰関数lm()は、高度に相関する変数の係数として「NA」になります。


1
これを既存の回答に追加するものとしてどのように考えていますか?おそらくそれを編集することで?
mdewey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.