2015年1月23日金曜日

傾向が変化したときの折れた予測線の描き方

このエントリーをはてなブックマークに追加
Pocket

数字の動きをはっきり見せるために、グラフに回帰直線による予測値を添えることは良くある。さらに、トレンドが変わったことを示すために折れた回帰直線を描くことがあるのだが、目分量で描いているように思われているらしいので、描き方を示しておきたい。目立たないが、多少のコダワリがある。

まず、二本の回帰直線ではなく、折れた回帰直線を描く必要がある。傾向が変化したと言う事は、過去と連続した値と見なしているわけで、値が跳ね上がることは無いからだ。以下はダメなパターン。

線は一本にしたい。だから、y = α + βx + γ(x > t)(x - t + 1) + εと言う回帰モデルを推定する。xが時点を表す変数、yが観測値、α、β、γは推定する係数、εが誤差項、tが構造転換点で、(x > t)はxがt以下はゼロ、tより大は1を表す。以下が結果。

2012年9月が構造転換点tになっているが、構造転換点tはどうやって決めるのかと思った人は鋭い。tの取り方によって色々なグラフが描けるのは確かだ。以下に3パターンほど描いてみたが、どれももっともらしく見えると思う。

目視に頼れないので、構造転換点tは尤度が最も大きくなるものを撰ぶ。尤度とは、ある分布とパラメーターから観測値が取り出されたとして、“そうなる確率”をあらわす値だ。これを最大化する点を選ぶと、最尤法になる。

統計解析パッケージで回帰分析をすると簡単に対数尤度を出すことができるから、構造転換点tを少しづつずらして、対数尤度が最大になる所を選べばよい。上のグラフの場合は、対数尤度は以下のような山を描き、その頂点の2012年9月を選んだ。

なお対数尤度関数を書いてニュートン・ラフソン法などで推定すればヘッセ行列が出せるので、t値の計算や区間推定を行なうことができる。ただし、下手な対数尤度関数を書くと初期値によっては収束しない事が多いので、構造転換点tをずらして行って当たりをつけた方が無難なようだ。

0 コメント:

コメントを投稿