読者です 読者をやめる 読者になる 読者になる

疫学と医療統計学と遺伝学と時々、大学院生活

疫学を専門とする大学院生の研究に関する備忘録的ページ。

R ダミー変数を使用した回帰分析?

今回も比較的簡単な内容であるが、ダミー変数を使用した回帰分析について記録しておく。
ダミー変数は例えば、男女をそれぞれ0,1と与えたものである。性別の水準(level)は男と女の2つであり、ダミー変数は1つで良い。
一方で、「低」「中」「高」のように3水準あるものは「水準数-1」のダミー変数を必要とする。

今回は52名の大学教員の「地位」「在職年数」「給与(ドル)」の3つの変数が収録されているデータ(参考文献『回帰分析入門』より)を使用して、3値以上のカテゴリカルデータのダミー変数の置き方とその解析をする。


データを軽く見ると、こんな感じである。

   tii gensyoku salary
1 教授       25  36350
2 教授       13  35350
3 教授       10  28200
4 教授        7  26775
5 教授       19  33696
6 教授       16  28516

このデータの「tii(地位)」に基づいて、下記の通りにダミー変数化する。
{
(d_1, d_2) = \begin{cases}
    (0, 0) & (教授) \\
    (1, 0) & (助教) \\
    (0, 1) & (講師)
  \end{cases}
}

すると、データにd1とd2のダミー変数のカラムが出来上がる。

salary$d1[salary$tii!="助教"]<- 0
salary$d1[salary$tii=="助教"]<- 1
salary$d2[salary$tii!="講師"]<- 0
salary$d2[salary$tii=="講師"]<- 1

こんな感じでコーディングされる。

    tii gensyoku salary d1 d2
15 教授        9  25748  0  0
16 教授        7  29342  0  0
17 教授       13  31114  0  0
18 助教       11  24742  1  0
19 助教       10  22906  1  0
20 教授        6  24450  0  0
21 講師       16  19175  0  1
22 助教        8  20525  1  0
23 教授        7  27959  0  0
24 教授        8  38045  0  0
25 助教        9  24832  1  0

ここで、回帰分析をすると、それぞれの結果は下記の通りになると言える。(教授と助教{\alpha_1}、教授と講師は{\alpha_2}だけ給与が異なるという解釈になる)

教授の場合 {Y_i = \beta_0 + \beta_1 x_i + E_i}
助教の場合 {Y_i = \beta_0 + \alpha_1 + \beta_1 x_i + E_i}
講師の場合 {Y_i = \beta_0 + \alpha_2 + \beta_1 x_i + E_i}

summary(lm(salary ~ gensyoku + d1 + d2, data=salary))

Call:
lm(formula = salary ~ gensyoku + d1 + d2, data = salary)

Residuals:
    Min      1Q  Median      3Q     Max 
-3462.0 -1302.8  -299.2   783.5  9381.6 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 25657.79     926.81  27.684  < 2e-16 ***
gensyoku      375.70      70.92   5.298 2.90e-06 ***
d1          -5192.24     871.83  -5.956 2.93e-07 ***
d2          -9454.52     905.83 -10.437 6.12e-14 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2402 on 48 degrees of freedom
Multiple R-squared:  0.8449,	Adjusted R-squared:  0.8352 
F-statistic: 87.15 on 3 and 48 DF,  p-value: < 2.2e-16

このような結果となり、d1は助教の場合のみなので、これは教授と比較して5192ドル少ないことを意味する。
同様に、d2を見ると、これは講師が9454ドル安いことを意味している。
ちなみに在職年数は1年増えると、375ドル上がるようである。

この方法を用いなくても

summary(lm(salary ~ gensyoku + tii, data = salary))

Call:
lm(formula = salary ~ gensyoku + tii, data = salary)

Residuals:
    Min      1Q  Median      3Q     Max 
-3462.0 -1302.8  -299.2   783.5  9381.6 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 25657.79     926.81  27.684  < 2e-16 ***
gensyoku      375.70      70.92   5.298 2.90e-06 ***
tii講師     -9454.52     905.83 -10.437 6.12e-14 ***
tii助教     -5192.24     871.83  -5.956 2.93e-07 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2402 on 48 degrees of freedom
Multiple R-squared:  0.8449,	Adjusted R-squared:  0.8352 
F-statistic: 87.15 on 3 and 48 DF,  p-value: < 2.2e-16

この方法でいいんじゃないかと思います。


20160508
RF