回答:
これはのエラーではなく、lm
むしろvif
(パッケージからcar
)であると思われます。もしそうなら、あなたは完璧な多重共線性に出会ったと信じています。例えば
x1 <- rnorm( 100 )
x2 <- 2 * x1
y <- rnorm( 100 )
vif( lm( y ~ x1 + x2 ) )
エラーが発生します。
このコンテキストでは、「エイリアス」とは、他の変数に線形に依存する(つまり、完全な多重共線性を引き起こす)変数を指します。
解決に向けた最初のステップは、どの変数が原因かを特定することです。走る
alias( lm( y ~ x1 + x2 ) )
例をご覧ください。
これは、回帰X'X
行列に特異点がある場合に頻繁に発生します(回帰出力の要約のNA値)。
ベースR lm()
は、デフォルトがであるため、特異値/完全な多重共線性を許容しますsingular.ok = TRUE
。他のパッケージ/機能はより保守的です。
たとえばlinearHypothesis()
、car
パッケージ内の関数の場合、デフォルトはsingular.ok = FALSE
です。回帰に完全な多重共線性がある場合linearHypothesis()
、「モデルにはエイリアス係数があります」というエラーが返されます。このエラーに対処するには、を設定しsingular.ok = TRUE
ます。ただし、これを行うと回帰の完全な多重共線性がマスクされる可能性があるため、注意してください。