R での修正方法: モデルにエイリアス係数があります


R で発生する可能性のあるエラーは次のとおりです。

 Error in vive.default(model): there are aliased coefficients in the model

このエラーは通常、回帰モデルに多重共線性が存在する場合に発生します。つまり、モデル内の 2 つ以上の予測変数は高度に (または完全に) 相関しています。

これが起こると、変数は別の変数の「エイリアス」であると言われ、回帰モデルを当てはめるときに問題が発生します。

次の例は、このエラーを実際に修正する方法を示しています。

エラーを再現する方法

R に次の回帰モデルを適用するとします。

 #make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2+x3)

carパッケージのvive()関数を使用してモデル内の各予測子変数の VIF 値を計算し、多重共線性が問題かどうかを判断できます。

 library (car)

#calculate VIF values for predictor variables
lively(model)

Error in vive.default(model): there are aliased coefficients in the model

モデルにエイリアス係数があります」というエラーが表示されます。

これは、モデル内の 2 つ以上の予測変数が完全に相関していることを示しています。

エラーを修正する方法

どの予測変数が完全に相関しているかを判断するには、 cor()関数を使用して変数の相関行列を作成します。

 #place variables in data frame
df <- data. frame (x1, x2, x3, y)

#create correlation matrix for data frame
cor(df)

           x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000

変数x2x3相関係数が1 であることがわかります。これは、これら 2 つの変数が完全に相関しているため、誤差の原因であることがわかります。

このエラーを修正するには、回帰モデルを再度調整し、これら 2 つの変数のいずれかを省略するだけです。

どちらの変数も回帰モデルでまったく同じ情報を提供するため、どの変数を省略しても問題ありません。

簡単にするために、 x3 を削除して回帰モデルを再度当てはめてみましょう。

 library (car)

#make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2)

#calculate VIF values for predictor variables in model
lively(model)

      x1 x2 
1.016364 1.016364 

多重共線性はもはや問題ではないため、今回はモデルの VIF 値を計算するときにエラーが発生しないことに注意してください。

関連: R で VIF 値を計算して解釈する方法

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。

R での修復方法: 置換の長さはゼロです
R での修正方法: 引数に異なる行数が含まれる
R で修正する方法: 引数が数値でも論理でもない: na を返す

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です