1年ほど前、uncorrelatedさんが就業者数のトレンドの転換点を回帰直線の尤度を基に推定されているのを見て、なるほど、そういう考え方もあるのか、と感心したことがある。ただ、例えば内閣府などは系列の転換点を判定するのにブライ・ボッシャン法*1を用いている。最近、Rにもブライ・ボッシャン法のパッケージがあることに気付いたので、試しに就業者数に同法を掛けてみた。
以下はそのコード。
employed <- read.csv("employed.csv",header=F) employed.ts<-ts(employed,start=c(2005,1),frequency=12) library(BCDating) dat <- BBQ(employed.ts) show(dat) summary(dat) plot(dat) plot(dat,employed.ts)
以下は結果のサマリ。
Phase ]Start ;End] Duration LevStart LevEnd Amplitude 1 Expansion2005M9 NA NA 6399 NA 2 Recession 2005M9 2005M11 2 6399 6343 56 3 Expansion 2005M11 2006M2 3 6343 6383 40 4 Recession 2006M2 2006M4 2 6383 6357 26 5 Expansion 2006M4 2006M10 6 6357 6421 64 6 Recession 2006M10 2007M1 3 6421 6381 40 7 Expansion 2007M1 2007M6 5 6381 6449 68 8 Recession 2007M6 2007M9 3 6449 6408 41 9 Expansion 2007M9 2007M12 3 6408 6450 42 10 Recession 2007M12 2008M2 2 6450 6406 44 11 Expansion 2008M2 2008M5 3 6406 6429 23 12 Recession 2008M5 2008M9 4 6429 6390 39 13 Expansion 2008M9 2008M11 2 6390 6410 20 14 Recession 2008M11 2009M11 12 6410 6286 124 15 Expansion 2009M11 2010M1 2 6286 6314 28 16 Recession 2010M1 2010M5 4 6314 6281 33 17 Expansion 2010M5 2010M9 4 6281 6319 38 18 Recession 2010M9 2010M11 2 6319 6286 33 19 Expansion 2010M11 2011M2 3 6286 6329 43 20 Recession 2011M2 2011M8 6 6329 6277 52 21 Expansion 2011M8 2011M12 4 6277 6301 24 22 Recession 2011M12 2012M5 5 6301 6265 36 23 Expansion 2012M5 2012M10 5 6265 6299 34 24 Recession 2012M10 2012M12 2 6299 6263 36 25 Expansion 2012M12 2013M4 4 6263 6325 62 26 Recession 2013M4 2013M6 2 6325 6312 13 27 Expansion 2013M6 2013M11 5 6312 6373 61 28 Recession 2013M11 2014M1 2 6373 6331 42 29 Expansion 2014M1 2014M5 4 6331 6384 53 30 Recession 2014M5 2014M10 5 6384 6374 10 31 Expansion 2014M10 2016M1 15 6374 6461 87 32 Recession 2016M1 2016M3 2 6461 6424 37 33 Expansion 2016M3 2016M7 4 6424 6488 64 34 Recession 2016M7 NA 6488 NA NA Amplitude Duration Exp=]T;P] 46.9 4.5 Rec=]P;T] 41.4 3.6
uncorrelatedさんは2012年9月をトレンドが下降から上昇に転じた転換点と推定され、同年6〜12月を95%信頼区間とされたが、これを見ると、2012年は5月が谷、10月が山、12月が谷となっている。即ち、10月はむしろ上昇がいったん下降に転じたポイントとなっている。
なお、上記では特にオプションを指定しなかったが、説明によるとこのパッケージではデフォルトではmincycle(Minimum length of a cycle)が5、minphase(Minimum length of a phase of a cycle)が2となっている。一方、内閣府の資料では、「1つの周期(cycle、上昇+下降)は最低15 ヵ月以上、局面(phase、上昇、下降の片側)は最低5ヵ月続くことを条件とする」と記述されている。そこで、上記のBBQコマンドを
dat <- BBQ(employed.ts, mincycle = 15, minphase = 5)
Phase ]Start ;End] Duration LevStart LevEnd Amplitude 1 Expansion2007M12 NA NA 6450 NA 2 Recession 2007M12 2010M5 29 6450 6281 169 3 Expansion 2010M5 2011M2 9 6281 6329 48 4 Recession 2011M2 2012M12 22 6329 6263 66 5 Expansion 2012M12 2016M7 43 6263 6488 225 6 Recession 2016M7 NA 6488 NA NA Amplitude Duration Exp=]T;P] 136.5 26.0 Rec=]P;T] 117.5 25.5
これを見ると、2012年の谷は12月に絞られる。
即ち、Rパッケージのブライ・ボッシャン法では2012年に就業者数のトレンドが下降から上昇に転じたのは5月もしくは12月であり、それに内閣府の最小期間ルールを当てはめると12月、という結果になる。大きな波動の山(もしくは谷)に近い局所的なピーク(もしくはボトム)を見つけ出す、というブライ・ボッシャン法の考え方からすると、2点あるグラフ上の2012年のボトムのどちらかが谷になるのはある意味において自然な結果と言える。一方、uncorrelatedさんの9月という結果は、尤度関数によって単に両ボトムの中間点が拾われただけ、というようにも見える。その場合、その9月というポイントを振りかざして議論することにさほど意味があるようには思われない。
*1:cf. 本ブログでのブライ・ボッシャン法関連エントリ。