実際の計量分析ではダミー変数は無くてはならないテクニックで、技術進歩の計測でもしない限りは、複数年にまたがるデータには年次ダミーが含まれている事が通例です。Rでは簡単にダミー変数を作る事ができます。
例えば以下のようなデータフレームdfがあるとしましょう。
年 | 月 | 出荷量 | 価格 |
---|---|---|---|
2004 | 1 | 67963 | 83 |
2004 | 2 | 66717 | 88 |
… | … | … | … |
2005 | 1 | 67222 | 101 |
2005 | 2 | 65087 | 87 |
… | … | … | … |
2006 | 1 | 63192 | 110 |
2006 | 2 | 61985 | 100 |
ダミー変数を作るとしたら、次のようにifelse()関数を使えば簡単です。
df$year2004 <- ifelse(df$年==2004,1,0)
df$year2005 <- ifelse(df$年==2005,1,0)
df$year2006 <- ifelse(df$年==2006,1,0)
年数が10以上、あるいは月次データに応用する場合は、並べるのも大変かも知れません。ループをさせた方が簡単です。
for(i in 2004:2006){
df[sprintf("year%d", i)] <- ifelse(df$年==i,1,0)
}
なお、sprintf("year%d", i)が、year2004、year2005、year2006と文字列を作ってくれます。
A. もっと手を抜くための補足
factorを使うとモデル式にそのまま入れる事ができるダミー変数の集合をそのまま作る事ができます。最初のデータが基準年になるので、2003年〜2006年までのデータならば、2004、2005、2006のダミーが入ります。
YearDummies <- as.factor(df$年)
lm(y ~ x + YearDummies, data=df)