見出し画像

宇崎ちゃんコラボのSCM解析の弱点を突かれたので、何かしてみる。その3

元記事その1その2

パラレル仮定が成立してないけど、どうする?

その1でまとめましたように、パラレル仮定は成立していないっぽいです。パラレル仮定2については、その2でまとめたとおりです。

ここでは、パラレル仮定1について検討したいと思います。

パラレル仮定1を何とかならないか、考える。

では、次の問題点です。パラレル仮定1は下記の様に定義しました。

パラレル仮定1:関東と合成対照は、宇崎ちゃんコラボ前期間(~2019年9月)の献血者数の動きについて、パラレルな動きをしている。
※観察可能

下のグラフを見て頂ければわかりますように、これは成り立っていると言うには若干無理があります。もし、成り立っているのであれば、横一直線(に近い)グラフになっているはずですから。

画像3

どうしよう?

どうするかは、Haluco【JK1】様から頂いたツイートをヒントにしました。

つまり、このグラフには3ヶ月周期があるのではないか?というご指摘です。

画像4

前提として、「このグラフはランダムウォークではない(その1参照)」ことがあります。これは逆に言うと、「ある法則に則った動きがある」ということです。

見てみると、2019年11月から2019年9月まで確かに「多い、減る、一寸増える」というサイクルが繰り返されていることに気づきます(今更気づくわけです)。

ここでは、2018年11月~2019年9月の11ヶ月分のデータを用いて、「ある法則(式)」を推定します。

そして、「ある法則(式)」が2019年10月にも働いていたら、このグラフはどうなっていたか?を計算することができます。

その計算値が実測値が大きく異なっていたら、その法則からズレるような何かが2019年10月にはあったと考えられます。

こういった方法で、パラレル仮定1が崩れているにもかかわらず、2019年10月には、偶然誤差を超えた変化が観察されたのではないか?を検証してみたいと思います。

ARMAモデルで時系列解析

まず、この時系列データには単位根がないことは確認済みです(伏線回収)。

先にデータセット(という程でもありませんが)とStata doファイルを公開しておきます。

この時系列データをARMAモデルで2018年~2019年9月を解析してみようと思います。ボロが出る前に白状しておくと、ARMAモデルで解析したのは2016年1月以来です。まぁ、完全に忘れてるわ! なお、その時は、ARIMAモデルとかARCHモデルもやってたらしい(健忘症発症中)。ARIMAといっても神戸の温泉地ではありません。

ARMAモデルは、日本語で言うと自己回帰移動平均モデルです(情報量が増えてません)。次のような式で、過去のデータY(今回で言うと、関東と合成関東の献血者数の差)が現在のデータYにどのように影響を与えているかを推定します。突然出てきたεは時間によって発生するランダムな数(ホワイトノイズ)とでも考えて下さい。投げやりになった。

画像5

ARMAモデルを構築する上で問題になるのは、式中のpとqをどのように決定するかです。つまり、どのくらい過去を考慮するのかを決めないといけません。

AR(p)とMA(q)を決定するための4つのステップ

最初に白状しておくと、下記は自分が2016年頃に書いた論文をDeepLで翻訳して、少し弄っただけです。詳細は成書(例えば、下記)を読んだ方が良いと思います。

ステップ1:自己相関関数(ACF)と部分自己相関関数(PACF)を用いて時系列データの定常性を確認します(いきなり分からんwww)。ACFとPACFは、自己相関と部分自己相関の情報を可視化します。

グラフの横軸はLagです。1ヶ月前からxヶ月前までの自己相関(あるいは部分自己相関)が計算されています。今回は、Lag=1から3までの自己相関と部分自己相関を計算しました(とういか、データ数が足りないので、Lag=4以上の算出はできません)。

ステップ2:ACFとPACFを見て、AR(p)とMA(q)のpとqの値の候補を決定した。グラフの灰色の影を越えているところが候補です。

ACFはMA(q)の候補を選択し、PACFでAR(p)の候補を選択します。

ステップ3:候補となったpとqに基づいて残差チェックを行います。モデルが適切であれば、残差はホワイトノイズになるはずです。これを確認するために、Box-Jenkins Q 検定(Box & Pierce, 1970)を用いました。

Q 統計量のp値が0.9より小さい場合、候補モデルは不適格とします。ただ、今回のデータでは、全てのモデルで0.9より小さかったです。これはデータ数が少ないためと思われます。今回はこの検定による除去は行えませんでした。

ステップ4:残った候補モデルについて赤池情報基準(AIC)を計算し、AICが最も小さいモデルを選択します。

簡単ですね!(白目)

結局選んだARMAモデルは、どんなモデルか?

ステップ1の結果:ACFとPACFのグラフ(コレログラム)を表記します。

上がACFで、下がPACFです。いずれも灰色の影を越えているのは、Lag=3のところです。PACFは確かに越えていますが、ACFは微妙です。取りあえず、3ヶ月前に注目するのが良さそうです。なお、使ったデータは11ヶ月分だけで短いので、Lagをこれ以上増やせない仕様でした。

画像1

ステップ2の結果:ここから判断すると、p=3/q=3またはp=3/q=なし、が候補になりそうです。これをAR(3), MA(3)AR(3)と記載します。このどちらのモデルが良いか、ガチンコで真剣勝負します(フラグ)!

ステップ3の結果:Box-Jenkins Q 検定の結果を示します。AR(3), MA(3)ではp=0.563で、AR(3)ではp=0.727でした。両方とも0.9を下回っています。ここで両方とも却下すると、ここで終わってしまいます。見なかった事にしましょう! 真剣勝負とは?(フラグ回収

ステップ4の結果:ガチンコの真剣勝負を生き残った2つのモデルを選択するために赤池情報基準(AIC)を算出します。これは小さければ小さいほど、予測能力が高いモデルと判断されます。

AR(3), MA(3)ではAIC=133.75で、AR(3)ではAIC=135.05でした。僅差ですが、AR(3), MA(3)が優れています。

モデル選択勝負の結果をまとめたのが、下記です。

画像6

どっちもどっちやな。

式にキチンと書くと下記の様な感じです。

画像6

どっちもどっちの性能のようなので、両方でやってみようと思います。

ARMAモデルによる将来予測

モデルが正しく、この傾向が2019年10月も続いていたとしたら、2019年10月の差(関東と合成関東の差)はどのようだったかを計算することができます。

画像7

もし、2019年10月に何もなく推移していたら、合成関東に比べて、関東が100以上少なかったようです。

しかし、実際は、約+126であることから、やはり2019年10月には何かあったと考えて良さそうです。

ここで、注意して頂きたいのは、「モデルが正しく、この傾向が2019年10月も続いていたとしたら」という条件が、ついていることです。パラレル仮定1が成り立たないから、いろいろ考え出したのに、違う条件が必要になっています。

まとめ

ARMAモデルが正しい(少なくとも、ある程度は現実を反映している)としたら、2019年10月は関東とう合成関東の差マイナス100位になるはず。しかし、実際は約プラス126なので、2019年10月には何かあったと考えてよさそう。

利益相反(COI)について

宇崎ちゃん献血コラボ関係の利益相反は、2019年11月17日の記事中の通りです。

また、コメントを頂いた方々やTweet等を引用させて頂いた方との利益関係はありません。様々なご意見・ご指摘を頂きありがとうございました。

金銭・経済的なCOIはありません。ただし、金銭を頂くことを拒否している訳ではありません。何か贈りたい方は是非お願いします(ダイマ)

この記事が気に入ったらサポートをしてみませんか?