R が因子のすべてのレベルに対してダミー変数を作成した場合、結果の変数セットは線形従属になります (切片項もあると仮定します)。したがって、1 つの因子レベルがベースラインとして選択され、それに対して生成されるダミーはありません。
これを説明するために、おもちゃの例を考えてみましょう。
> data <- data.frame(y=c(2, 3, 5, 7, 11, 25), f=as.factor(c('a', 'a', 'b', 'b', 'c', 'c')))
> summary(lm(y ~ f, data))
Call:
lm(formula = y ~ f, data = data)
Residuals:
1 2 3 4 5 6
-0.5 0.5 -1.0 1.0 -7.0 7.0
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.500 4.093 0.611 0.5845
fb 3.500 5.788 0.605 0.5880
fc 15.500 5.788 2.678 0.0752 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 5.788 on 3 degrees of freedom
Multiple R-squared: 0.7245, Adjusted R-squared: 0.5409
F-statistic: 3.945 on 2 and 3 DF, p-value: 0.1446
ご覧のとおり、3 つの係数があります (因子の水準数と同じです)。ここでは、a
がベースラインとして選択されているため、 がである(Intercept)
データのサブセットを参照します。および(および)の係数は、ベースライン切片と他の 2 つの因子水準の切片との差です。したがって、切片は( ) であり、切片は( ) です。f
a
b
c
fb
fc
b
6
2.500+3.500
c
19
2.500+15.500
自動選択が気に入らない場合は、ベースラインとして別のレベルを選択できます: How to force R to use a specified factor level as reference in a回帰?