転換点判定に回帰直線の尤度を使うのは適切か?

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  Expansion      2005M9       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 Expansion     2007M12       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月というポイントを振りかざして議論することにさほど意味があるようには思われない。