この現象を正確に再現することはできませんが、カテゴリ数が増加しても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))