餡子付゛録゛

ソフトウェア開発ツールの便利な使い方を紹介。

Rで年次ダミーを作成

実際の計量分析ではダミー変数は無くてはならないテクニックで、技術進歩の計測でもしない限りは、複数年にまたがるデータには年次ダミーが含まれている事が通例です。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)