SSブログ

【R】ベースのカテゴリを変更したい [データサイエンス、統計モデル]

統計の講師をしていて、なるほど!と思う質問を受けることがあります。
せっかくなので、その中からピックアップして紹介できればと思います。

【質問】
Rで回帰分析をする際に、カテゴリ変数の場合、自動でベースのカテゴリが決まりますが、変更することができますか?

【回答】
有名なirisデータを使って実験します。

str(iris)
summary(iris)

Speciesは、3カテゴリあります。
setosa: 1
versicolor: 2
virginica: 3

通常は、factorで最初の数字のものがベースになってしまいます。

model_1 <- lm(Sepal.Length ~ Species, data=iris)
summary(model_1)

(Intercept) 5.0060 0.0728 68.762 < 2e-16 ***
Speciesversicolor 0.9300 0.1030 9.033 8.77e-16 ***
Speciesvirginica 1.5820 0.1030 15.366 < 2e-16 ***

ここで、setosaではなく、versicolorをベースカテゴリにするにはどうすれば良いか?
relevel(factor(Species), ref = "versicolor")
で設定できます。

model_2 <- lm(Sepal.Length ~ relevel(factor(Species), ref = "versicolor"), data=iris)
summary(model_2)

(Intercept) 5.9360 0.0728 81.536 < 2e-16 ***
relevel(factor(Species), ref = "versicolor")setosa -0.9300 0.1030 -9.033 8.77e-16 ***
relevel(factor(Species), ref = "versicolor")virginica 0.6520 0.1030 6.333 2.77e-09 ***

このようにversicolorがベースとなり、setosaとvirginicaの係数を得ることができました。

nice!(3)  コメント(0)