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
変数x2とx3の 相関係数が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 の他の一般的なエラーを修正する方法について説明します。
R での修復方法: 置換の長さはゼロです
R での修正方法: 引数に異なる行数が含まれる
R で修正する方法: 引数が数値でも論理でもない: na を返す