No.21148 カテゴリカル変数を用いた回帰分析について  【葉隠】 2014/07/07(Mon) 09:57

いつもお世話になっております。

3値以上のカテゴリカル変数を用いた回帰分析について教えて頂けないでしょうか?

例えばカテゴリの水準が5の時,通常は5−1=4個のダミー変数を作成して回帰分析すると思いますが,それでは説明変数の数が多くなり過ぎ,標本数サンプルサイズも増やす必要があると思います。

そこで上記以外に,例えば
x1 <- c(1,2,3,4,5)
dummy_x1 <- as.factor(x1)
のようにして,1個の変数にまとめるのは間違いでしょうか?

No.21149 Re: カテゴリカル変数を用いた回帰分析について  【青木繁伸】 2014/07/07(Mon) 10:22

そのようにしても,lm 関数が dummy_x1 を使うときには4個のダミー変数に展開して使ってくれるのです。
言い換えれば,ダミー変数を自分で作らなくても,カテゴリーデータであることをas.factorで指定すると,自動的にカテゴリー変数として扱ってくれるようになるのです。
> x1 <- c(1,2,3,4,5)
> x1
[1] 1 2 3 4 5
> class(x1)
[1] "numeric"
> dummy_x1 <- as.factor(x1)
> dummy_x1
[1] 1 2 3 4 5
Levels: 1 2 3 4 5
> class(dummy_x1)
[1] "factor"
以下の例をみてください。
> x <- c(3,2,1,2,4,3,5,4,3,2)
> x1 <- factor(x)
> y <- c(6,5,6,5,8,7,6,9,5,7)
> summary(lm(y ~ x))

Call:
lm(formula = y ~ x)

Residuals:
Min 1Q Median 3Q Max
-1.44961 -0.95349 0.04651 0.92248 2.05426

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.9612 1.1149 4.450 0.00214
x 0.4961 0.3580 1.386 0.20318

Residual standard error: 1.286 on 8 degrees of freedom
Multiple R-squared: 0.1936, Adjusted R-squared: 0.09281
F-statistic: 1.921 on 1 and 8 DF, p-value: 0.2032

> summary(lm(y ~ x1))

Call:
lm(formula = y ~ x1)

Residuals:
1 2 3 4 5 6 7 8 9 10
-4.996e-16 -6.667e-01 -6.452e-17 -6.667e-01 -5.000e-01 1.000e+00 4.650e-17 5.000e-01 -1.000e+00 1.333e+00

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.000e+00 1.017e+00 5.902 0.00199
x12 -3.333e-01 1.174e+00 -0.284 0.78781
x13 0.000e+00 1.174e+00 0.000 1.00000
x14 2.500e+00 1.245e+00 2.008 0.10090
x15 7.850e-17 1.438e+00 0.000 1.00000

Residual standard error: 1.017 on 5 degrees of freedom
Multiple R-squared: 0.685, Adjusted R-squared: 0.4329
F-statistic: 2.718 on 4 and 5 DF, p-value: 0.1511

No.21151 Re: カテゴリカル変数を用いた回帰分析について  【葉隠】 2014/07/07(Mon) 13:19

ご教示ありがとうございます。

そうしますと,「カテゴリカル変数を扱う回帰分析にはダミー変数を使うしかない」というのが結論のようですね。

また,実例を用いてのご教示ありがとうございます。納得しました。

● 「統計学関連なんでもあり」の過去ログ--- 046 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る