ちょっと待て、その時系列データを単純に回帰分析するな

# はじめに

まずはこちらの記事をご覧ください。見せかけの回帰の解説記事は[時系列データへの回帰分析](https://logics-of-blue.com/time-series-regression/)がめちゃくちゃおすすめです。著者は隼本でお馴染みの馬場真哉さん！！！ぜひご覧になってください。本記事でも様々なとこで引用させていただいています。

https://logics-of-blue.com/time-series-regression/


本記事を作成するにあたって検証した内容をGistあげてあります。使用したデータの値や、検定統計量も表示してあるので合わせてご覧ください。また、Gistでは、Julia+Rを使っております。検定部分はRのライブラリが非常に便利です。JuliaからRを使う例にもなっているので、ぜひ参考にしてみてください。

https://gist.github.com/takahashi-r/dd682a9ba03d6f073fb12132f10f997c

では本編スタートです！

# 見せかけの回帰

回帰分析を行ったときに、回帰係数のP値を確認すると思います。このP値は、回帰係数=0としたとき、回帰係数が0となる統計モデル内の確率を表しています。この確率が有意水準よりも小さい場合、帰無仮説（回帰係数=0）を棄却することになります。
その場合、得られたデータから作成した統計モデルにおいて、目的変数と説明変数になんらかの関係があるとみて差し支えないという結論になります。

:::note info
「得られたデータから作成した統計モデルにおいて」とわざわざ強調して書いているのは、得られた結果が母集団分布を表しているわけではないからです。あくまで、有限のデータから我々が勝手に作った統計モデル内での話であるということを意識しておかなければなりません。
:::

では、それらを踏まえた上でこちらをご覧ください。これはUSの個人消費支出をある変数Xで回帰分析したものです。但し、変数Xはどんな未来の値でも取得できると仮定します。

回帰係数のP値は$1e-79 << 0.01$ と有意水準1%としても明らかに有意であることを示しています。これが表すことは、知りたい未来時点での変数Xを持ってきて、回帰式に入れるだけで、個人消費支出の動向がわかるということです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/7700d850-9add-9878-0eed-38e3a8251c42.png)

一旦、個人消費支出について補足しておきます。野村証券HPによると

>米商務省が公表する、米国の家計が消費した財やサービスを集計した経済指標。英語名称はPCE（Personal Consumption Expenditures）。GDPの約7割を占める米国の個人消費支出はGDPの先行指標として注目される。また、個人消費支出のうち、変動の大きい食品とエネルギーを除いたコアＰＣＥデフレーターは、米連邦準備理事会（FRB）がインフレ指標として重視することから、特に注目されている。
https://www.nomura.co.jp/terms/japan/ko/A02328.html

とあります。要はGDPの先行指標ということは景気の動向を先んじて知ることができるということです。例えば、景気が上向きであるとわかれば、個人では好景気によるインフレによって借入金の目減りが期待できます。つまりローンを組みやすいということですね。
ともあれ、景気の動向を知ることができるというのは大きなメリットがあるのです。

人にとってはいくらでも払うから、変数Xの情報が欲しい！となるかもしれませんね。では、この景気の行く末を占う変数Xの正体を教えます。変数Xは

$$
変数X : X_t = X_{t-1} + \epsilon_t \quad \epsilon_t ～ iid(0, \sigma)
$$

という式に従ってコンピュータを使って生成したランダムウォークです。これを聞いてまだお金を払いたいという方はいませんよね？

と、このように時系列データは単純に回帰分析を行うと、全く関係のない変数同士なのに、統計的には有意であるという結果が出てしまうことがあります。この現象のことを**見せかけの回帰**といいます。

>定義6.1(見せかけの回帰)
>単位根過程 $y_t$ を定数と $y_t$ と関係のない単位根過程 $x_t$ に回帰すると, $x_t$ と $y_t$ の間に有意な関係があり, 回帰の説明力が高いように見える現象は見せかけの回帰といわれる. 沖本[2010] 6章

こんな見せかけの回帰を防ぐために回帰分析を行うためのデータチェックフローを馬場さんがブログで紹介してくださっています。以降これに従って、個人消費支出とランダムウォークに回帰分析を行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/73933979-7425-4cff-f3ef-6d6b5c8bf3f5.png)
時系列データへの回帰分析から引用


## データの読み込み

データはRデータセットの[US economic time series](https://vincentarelbundock.github.io/Rdatasets/doc/ggplot2/economics.html)を使用します。特徴量間でデータの大きさが異なるので、標準化してまとめてプロットしました。本記事で取り扱うのはPCE（個人消費支出）だけです。PCE以外の特徴量に関しては[Gist](https://gist.github.com/takahashi-r/dd682a9ba03d6f073fb12132f10f997c)をご覧ください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/97fcc4b4-ca94-04b3-d02e-5ac40a6cf1c9.png)

簡単な要約統計量です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/ae321afb-daf1-73b8-c8de-01a0a71d7505.png)

## 単位根検定を行う: Augmented Dickey-Fuller 検定

ではワークフローの第一段階です。単位根検定を行います。単位根については過去記事である[単位根過程とトレンド定常過程の線形トレンドの違い](https://qiita.com/takahashi-ry/items/a50f9808866cc955c7b2#%E5%8D%98%E4%BD%8D%E6%A0%B9%E9%81%8E%E7%A8%8B%E3%81%A8%E8%87%AA%E5%B7%B1%E5%9B%9E%E5%B8%B0%E9%81%8E%E7%A8%8B)をご覧ください。

https://qiita.com/takahashi-ry/items/a50f9808866cc955c7b2#%E5%8D%98%E4%BD%8D%E6%A0%B9%E9%81%8E%E7%A8%8B%E3%81%A8%E8%87%AA%E5%B7%B1%E5%9B%9E%E5%B8%B0%E9%81%8E%E7%A8%8B

今回はADF検定を使用して、特徴量が単位根であるかどうかをチェックしていきます。ADF検定とは帰無仮説にp次単位根AR過程であるとして検定を行います。画像は個人消費支出とランダムウォークに対してADF検定を行った結果のP値を示しています。
どちらも帰無仮説を棄却することはできないので、単位根過程ではないとは言えないことがわかります。

※PCEの統計量はワーニングが出ていたので、正確に0.99であるというわけではないことをご了承ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/c0304f7e-ac60-e598-569c-3880152297f8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/1ba952bd-f191-9c84-7be3-e5173abdfc1b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/e9aa0f05-5bca-2144-b3d5-e6032295a559.png)


## 共和分検定を行う: Phillips-Ouliaris 検定

続いては共和分検定です。共和分とは何ぞやということなのですが、馬場さんのブログによると、

>単位根を持つデータ同士に、ある係数をかけてから合計すると、たまに「単位根がなくなる」ことがあります。 そんな関係のことを「共和分」と呼びます。
>
>データが共和分を持っている場合は、たとえ単位根があったとしても、そのまま回帰分析を実行して支障ありません。
>
>時系列データへの回帰分析より引用

とあります。つまり単位根同士を回帰させると必ずしも、見せかけの回帰にならないよということです。見せかけの回帰ではないのに単位根を解消しようと差分を取ってしまうと、本来利用可能な情報まで失われてしまうことになります。

では実際にPCEとランダムウォークに対してPO検定を行っていきます。PO検定は共和分が存在しない（残差が単位根を持つ）、を帰無仮説に検定を行います。

tstatが検定統計量でcval5は有意水準5%でのモデル内の統計量です。$tstat < cval5$ なので帰無仮説を棄却することができません。よって共和分は存在する（残差が単位根を持たない）とは言えないとなります。
すなわち、系列に差分を取って分析を行っても、失われる情報が少ないと考えることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/1a9c6854-a90f-065a-a2d0-d56ae310fa0f.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/410eec76-edc8-8708-0280-690b8c5d3c66.png)


## 差分系列に対して回帰分析を行う

では実際に差分を取った場合に回帰係数のP値がどうなるのか見てみましょう。まずは原系列に対して回帰分析を行ったときの結果を再掲します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/7700d850-9add-9878-0eed-38e3a8251c42.png)

次に差分を取った場合です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1272355/b835d20d-6c69-8e02-37ab-13e4c8492c43.png)

回帰係数のP値が大きくなったのがわかります。ただ注意してほしいのは、回帰係数のP値が大きいからと言って、変数間に関係があるとは言えないということです。これは検定は片方の行動に対してしか自信を持つことができないのと同じことです。すなわち、P値が小さい場合、関係がないとはいえるが、その逆は何とも言えないということです。


# 終わりに

時系列データは特に統計モデルの基本的な前提条件をぶっ飛ばしがちな特性があります。例えば、データは独立して生成されているというのが通例ですが、時系列データは過去のデータに依存していることが多いです。

単純に回帰分析を行ってP値が小さい→有意だ！ではいけません。実際には上記のように考慮しなければいけない点がたくさんあるのです。

# 参考文献 ブログ等

- 書籍
    - [経済・ファイナンスデータの計量時系列分析 沖本竜義](https://www.amazon.co.jp/%E7%B5%8C%E6%B8%88%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%A8%88%E9%87%8F%E6%99%82%E7%B3%BB%E5%88%97%E5%88%86%E6%9E%90-%E7%B5%B1%E8%A8%88%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%BC-%E6%B2%96%E6%9C%AC-%E7%AB%9C%E7%BE%A9/dp/4254127928)

- ブログ・講義ノート等
    - [時系列データへの回帰分析](https://logics-of-blue.com/time-series-regression/)
    - [マーケティング・ミックス・モデリング 時系列分析の基礎](http://elsur.jpn.org/202004MMM/chap5.pdf)
    - [共和分 wiki](https://ja.wikipedia.org/wiki/%E5%85%B1%E5%92%8C%E5%88%86)
    - [GLM パッケージによる定数項を含まない重回帰分析](https://qiita.com/StrawBerryMoon/items/8bf84e298418ed05dcb3)
    - [R による共和分分析†](http://user.keio.ac.jp/~nagakura/R/R_cointegration.pdf)

- GitHub
    - [本記事を作成するにあたって作ったnotebook](https://gist.github.com/takahashi-r/dd682a9ba03d6f073fb12132f10f997c)