カテゴリー変数では多重共線性が暗黙的ですか?


10

小さいながらも顕著な多重共の効果があった、多変量回帰モデルいじりながら、分散拡大要因によって測定されるように私は、気づい(もちろん、参照カテゴリを除いた)カテゴリ変数のカテゴリ。

たとえば、連続変数yと、kの相互に排他的な値を持つ1つの名目カテゴリ変数xのデータセットがあるとします。これらの可能な値を0/1ダミー変数としてコーディングします。次に、回帰モデルます。ダミー変数のVIFスコアはゼロ以外であることが判明しました。実際、カテゴリの数が増えると、VIFも増えます。ダミー変数を中央に配置しても、VIFは変更されないようです。x 1x 2x k y = b 0 + b 1 x 1 + b 2 x 2 + + b k 1 x k 1 k 1kx1,x2,,xky=b0+b1x1+b2x2++bk1xk1k1

直感的な説明は、カテゴリー変数内のカテゴリーの相互に排他的な条件がこのわずかな多重共線性を引き起こすということのようです。これは些細な発見ですか、それともカテゴリー変数を使用して回帰モデルを構築するときに考慮すべき問題ですか?

回答:


8

この現象を正確に再現することはできませんが、カテゴリ数が増加してVIFが必ずしも増加しないことを証明できます

直感は簡単です。適切な実験計画により、カテゴリ変数を直交させることができます。したがって、一般に、カテゴリーの数と多重共線性の間に関係があってはなりません

以下は、R指定可能な数のカテゴリ(2つの独立変数)と、各カテゴリの指定可能な複製量でカテゴリカルデータセットを作成する関数です。これは、カテゴリのすべての組み合わせが等しい回数で観察されるバランスの取れた調査を表します。n

trial <- function(n, k1=2, k2=2) {
  df <- expand.grid(1:k1, 1:k2)
  df <- do.call(rbind, lapply(1:n, function(i) df))
  df$y <- rnorm(k1*k2*n)
  fit <- lm(y ~ Var1+Var2, data=df)
  vif(fit)
}

これを適用すると、VIFは常に可能な最小値になり、バランスを反映します(これは設計マトリックスの直交列に変換されます)。いくつかの例:1

sapply(1:5, trial) # Two binary categories, 1-5 replicates per combination
sapply(1:5, function(i) trial(i, 10, 3)) # 30 categories, 1-5 replicates

これは、設計の不均衡の増大により、多重共線性が増大している可能性があることを示唆しています。これをテストするには、行を挿入します

  df <- subset(df, subset=(y < 0))

fit行の前trial。これにより、データの半分がランダムに削除されます。再実行

sapply(1:5, function(i) trial(i, 10, 3))

は、VIFが等しくなくなったことを示しています(ただし、ランダムにVIFに近いままです)。それでも、カテゴリを増やしても増加しません。同等の値が生成されます。1sapply(1:5, function(i) trial(i, 10, 10))


2

多項分布に固有の制約があることがわかります。つまり、の1つだけが1になり、残りはすべて0になります。したがって、線形制約ます。つまり、 で、合計が取られます。これは、あなたが気づいている共線性の影響です。異常なことや気になることは何もありません。xixi=1x1=1xii1


多項分布がこの状況とどう関係しているのかわかりません。説明してもらえますか?
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.