時系列解析:無関係な2本で77%が「有意」になる見せかけの回帰【第29回】

はじめに

第27章は時系列解析です。発展編の1本目にあたります。

この章に入る前、私が時系列に持っていた認識は「データが時間順に並んでいるだけ」という程度のものでした。並んでいる順番に意味があるなら、それを説明変数にして回帰すればいいのではないか。第16回の重回帰分析の道具がそのまま使えるはずだ、と。

その認識は、最初の実験で崩れました。

互いに一切参照せずに乱数から作った2本の系列を回帰したところ、決定係数 0.891、tt28.31-28.31 が出ました。教科書の棄却限界 ±1.98\pm 1.98 の14倍です。5000回繰り返すと、5%であるべき棄却率が 76.9% になりました。

さらに気持ち悪いことに、標本サイズを増やすと悪化しました。 n=50n=50 で 66.6%、n=1000n=1000 で 91.2%。第8回の大数の法則は「nn を増やせば真実に近づく」と保証していたはずですが、ここではデータを集めるほど強く間違えます。

この現象は見せかけの回帰(spurious regression)と呼ばれるもので、時系列を扱う人が最初に叩き込まれる話でした。

そして私はここで最初の誤解をします。「無関係な2本に相関が生まれてしまう現象」だと思ったのです。しかし違いました。5000回のうち傾きが正だったのは 50.6%、負が 49.4%。傾きの平均は 0.0008-0.0008 で、正しくゼロを示しています。

まず壊れているのは「その推定値がどれくらい信用できるか」という自己申告でした。標準誤差が 6.22倍 過小に出ていたのです。

ただし後で見るように、推定値の側も無傷ではありません。傾きが正しいのは「平均としては」だけで、1本1本は ±0.64\pm 0.64 の幅でブレます。しかもこの幅は nn を増やしても縮みません。

この記事は、その一点を掘り下げた記録です。回帰の話から入ると分かりにくかったので、いったん標本平均という中学レベルの計算まで降りてn=10n=10 のデータを手で追うところからやり直しました。そこで見えたのは、σ/n\sigma/\sqrt{n}n\sqrt{n} が「nn 個ぶんの独立な情報がある」という主張だったという事実でした。

定常性が必要な理由も、そこから逆算できます。そして ACF と PACF が AR と MA を見分けられる理由、差分を取るべきなのが φ=1\varphi=1 のときだけである理由も、同じ筋で繋がりました。

いつものように、出てくる数値はすべて自分で計算し、理論値と突き合わせています。そして最後に自己診断を8問やって、2問間違えました。 その内容も含めて書いています。

この回で扱う用語

用語読み・意味
定常性Stationarity。平均・分散・自己共分散が時刻によらないこと
弱定常Weak Stationarity。2次モーメントまでが時刻によらない(本記事の「定常」はこれ)
ホワイトノイズWhite Noise。平均0・分散一定・無相関な系列。時系列の「何も起きていない」状態
自己相関Autocorrelation。同じ系列の kk 期前との相関
ACFAutoCorrelation Function=自己相関関数。ラグ kk に対する自己相関を並べた関数
PACFPartial AutoCorrelation Function=偏自己相関関数。間の期の影響を除いた自己相関
コレログラムCorrelogram。ACF・PACF を棒グラフにした図
AR モデルAutoRegressive=自己回帰モデル。過去の自分の値で現在を説明する
MA モデルMoving Average=移動平均モデル。過去のノイズの加重和で現在を表す
ARMA モデルAR と MA を両方持つモデル
ARIMA モデルAutoRegressive Integrated Moving Average。差分を取ってから ARMA を当てる
単位根Unit Root。φ=1\varphi=1 の状態。差分を取らないと定常にならない
反転可能性Invertibility。MA を AR(\infty) に書き換えられる条件(θ<1\lvert\theta\rvert<1)。AR の定常条件と対になる
ランダムウォークRandom Walk。xt=xt1+etx_t = x_{t-1} + e_t。単位根過程の代表
見せかけの回帰Spurious Regression。無関係な非定常系列間で有意な回帰が出る現象
ラグ演算子Lag Operator。Lxt=xt1L x_t = x_{t-1} と書く記号
DF 検定Dickey-Fuller 検定。単位根の有無を検定する
ADF 検定Augmented Dickey-Fuller 検定。DF にラグ項を加えたもの
過剰差分Over-differencing。必要でないのに差分を取ること
共和分Cointegration。個々は単位根だが線形結合が定常になる関係
Ljung-Box 検定残差の自己相関をまとめて検定する(モデルの十分性の確認)
SARIMASeasonal ARIMA。季節成分を持つ ARIMA

用語が多いですが、核になるのは「定常性」の1つだけです。他は全部その周りに配置されています。


1. まず壊れるところを見る

1-1. 完全に無関係な2本から R2=0.891R^2 = 0.891 が出る

やったことは単純です。標準正規乱数を100個作って累積和を取る。これを2回、互いに一切参照せずに行います。

import numpy as np
rng = np.random.default_rng()

x = np.cumsum(rng.normal(size=100))   # ランダムウォーク1
y = np.cumsum(rng.normal(size=100))   # ランダムウォーク2
# x と y は定義上まったく無関係

以下の図は、この操作を何度か試してR2R^2 が大きく出た組を選んで描いています。ただし節1-2 で見るように、これは特殊な例ではありません。

累積和なので、これは第23回で扱ったランダムウォークそのものです。xt=xt1+etx_t = x_{t-1} + e_t を展開すると xt=e1+e2++et=stesx_t = e_1 + e_2 + \cdots + e_t = \sum_{s \le t} e_s、つまりホワイトノイズの累積和になります。

この2本を単回帰にかけます。

左:無関係な2本のランダムウォークの時系列。青は下方へ、橙は上方へ流れている。中央:その散布図が右下がりの直線状に並び、R²=0.891、t=−28.31、r=−0.944。右:同じデータを1階差分してから回帰すると散布図が雲状になりR²=0.018、t=−1.33

決定係数 0.891tt28.31-28.31、相関係数 0.944-0.944

左のパネルを見ると、青が下に流れ、橙が上に流れています。ランダムウォークは「一度ずれたら戻る力がない」ので、各系列がそれぞれ勝手にどこかへ漂います。すると2本の間に「一方が上がる期間に他方が下がった」という長い区間が生まれ、回帰はそれを「関係」として拾います。

右のパネルは、同じデータを1階差分してから同じ回帰をかけたものです。R2R^2 が 0.018 に落ち、tt 値も 1.33-1.33 に収まります。

1-2. たまたまではない。分布そのものが違う

上の1組は「たまたま強く出た例を選んだ」のではないか、と疑うのが自然です。5000回繰り返しました。

t値のヒストグラム2種を重ねた図。定常なホワイトノイズ同士の場合は±1.98の内側に鋭く集中し、非定常なランダムウォーク同士の場合は±20を超える範囲まで広く裾を引いている

状況5%有意で棄却した割合
(正しければ5%)
平均 R2R^2t\lvert t \rvert の95%点
定常(ホワイトノイズ同士)5.2%0.0101.99
非定常(ランダムウォーク同士)76.9%0.24114.80
非定常だが差分してから回帰5.4%

非定常な場合、R2R^2 が 0.5 を超えたケースが 16.4% ありました。「決定係数が高いから良いモデル」がまったく通用しません。

青(定常)は棄却限界 ±1.98\pm 1.98 の内側にきちんと収まりますが、赤(非定常)は ±20\pm 20 まで平然と出ます。tt 分布に従っていないので、tt 分布の表を引いた判定が意味を持ちません。

1-3. データを増やすと悪化する

ここが一番気持ち悪いところです。

標本サイズ nn棄却率(名目5%)t\lvert t \rvert の中央値
5066.6%3.12
10076.9%4.50
25084.9%7.03
50088.6%10.51
100091.2%14.87

t\lvert t \rvert の中央値が 3.12 → 4.50 → 7.03 → 10.51 → 14.87 と育っています。おおよそ n\sqrt{n} のペースです。

通常の統計では、データを増やせば真実に近づくのが救いでした。第8回の大数の法則がそれを保証し、第10回では精度が σ/n\sigma/\sqrt{n} で改善すると確認しました。

ところが非定常データでは、無関係であるという事実は変わらないまま、確信度だけが無限に上がっていきます。 「10年分のデータで検証しました」と言う人が一番強く間違えます。

1-4. 正規分布は関係ない

私が最初に立てた仮説はこうでした。「ホワイトノイズは正規分布に従うから平均すると真ん中に寄る。ランダムウォークはどちらかに発散するから、長い目で見た相関が出やすい」。

前半は的を射ていましたが、正規分布という部分は完全に無関係でした。ノイズの分布を4通りに変えて確かめます。

ノイズ ete_t の分布定常(そのまま)非定常(累積和)
正規分布4.7%76.9%
コイン投げ(±1\pm 1 の2値だけ)5.9%75.8%
t(3)t(3)(裾がとても重い)5.1%75.2%
一様分布(山がなく平ら)5.7%76.2%

4つとも同じ結果です。 コイン投げのように ±1\pm 1 しか出ないノイズでも、山のない一様分布でも、累積和にした瞬間に 76% 壊れます。

効いているのは分布の形ではなく「累積和にした」という構造だけでした。

1-5. 「線形に見えるから」でもない

次に私が考えたのは「φ=1\varphi = 1 なら et\sum e_t だから、系列が線形に近い見え方になる。だからそれ同士の散布図も線形っぽくなるのではないか」という説明でした。

これも違いました。散布図を8組並べます。

無関係な2本のランダムウォークの散布図8組。点の色が時刻を表し紫から黄へ変化する。L字型、2つの塊に分かれた形、折れ曲がった形などが混じり、直線的なのは一部だけ。8枚中7枚が5%有意

直線的なのは一部だけです。L字型、塊が2つに分かれた形、折れ曲がった形が混じります。それでも8枚中7枚が5%有意。上段左は明らかに直線から外れているのに t=6.1t = -6.1 です。

そして決定的な数字があります。5000回集計すると、傾きが正だったのが 50.6%、負が 49.4%。有意になったケースだけを見ても正 50.6% / 負 49.4%。

符号は毎回コイン投げです。 「両方が線形なトレンドを持つから一緒に動いて見える」という説明だと「同じ向きに動きやすい」はずですが、向きは完全にランダムでした。

つまり累積和は直線にはなりません。ete_t の符号がランダムなので折れ曲がります。


2. 原因は標準誤差の過小申告

2-1. 分子は無事で、分母が壊れている

ここから本題です。tt 値は「推定値 ÷ 標準誤差」です。そして先に見たように、傾きの平均は 0.0008-0.0008 でゼロ、つまり傾きは平均としては正しく「関係なし」を示しています。

まず壊れているのは分母でした。(推定値の側も「平均は正しいが1本1本はブレる」という別の問題を抱えています。それは節2-7で扱います。)

回帰の話は変数が2つあって追いにくいので、いったん標本平均という最も単純な設定まで降ります。

やることは中学レベルです。データを10個取って平均を出し、95%信頼区間を作る。真の平均は0だと分かっているので、区間が0を含めば成功です。

左:φ=0のデータ10個がゼロ線をまたいで上下し、95%信頼区間が真の値0を含む。右:φ=0.9のデータ10個が全体的に下側に沈み、信頼区間[−1.71,−0.57]が0を含まない

右側(φ=0.9\varphi = 0.9、つまり前の値を0.9倍引き継ぐ系列)の計算を追ってください。

データ: +0.16 -0.89 -1.82 -2.46 -1.86 -1.38 -1.99 -1.05 -0.16 +0.03
標本平均 x̄ = -1.142
標本SD    s  = 0.917
標準誤差 SE = s/√n = 0.917 / 3.162 = 0.290
95%信頼区間 = -1.142 ± 1.96 × 0.290 = [-1.710, -0.573]
→ 真の値 0 を含まない(外れた)

左側(φ=0\varphi = 0、独立なデータ)は同じ手続きで [0.550,+0.344][-0.550, +0.344]、ちゃんと0を含みます。

使った公式は左右まったく同じ SE=s/nSE = s/\sqrt{n} です。 式の計算にも間違いはありません。

つまり、公式そのものがこの状況では成り立っていないのです。

2-2. ss は「隣同士が似ているか」を見ていない

なぜ成り立たないのか。ss が何を測っているかを図にします。

左右のデータに橙の縦線を引いて、sが測るのは各点から標本平均までの距離であることを示した図。左のs=0.721、右のs=0.917で、右の方が大きい

橙の縦線が ss が測っているもの、つまり各点から標本平均までの距離です。

ここで気づいてほしいのは、右の ss(0.917)は左の ss(0.721)より大きいということ。それでも右は的を外しました。

図の右を見ると、データが滑らかに繋がって動いています。0.89-0.89 の次が 1.82-1.82、その次が 2.46-2.46。隣同士が似ている。ところが ss は「点が平均からどれだけ散らばっているか」しか計算しないので、この滑らかさは ss に一切入りません

ss は10個をシャッフルしても同じ値になります。並び順の情報を捨てているのです。

2-3. n\sqrt{n} は「nn 個ぶんの独立な情報がある」という主張だった

ここが核心です。第8回V[xˉ]=σ2/nV[\bar{x}] = \sigma^2/n を導いたとき、何が起きていたか。

V[i=1nxi]=i=1nV[xi]+2i<jCov(xi,xj)独立なら全部ゼロV\left[\sum_{i=1}^n x_i\right] = \sum_{i=1}^n V[x_i] + \underbrace{2\sum_{i<j}\mathrm{Cov}(x_i,x_j)}_{\text{独立なら全部ゼロ}}

共分散の項がゼロになるから nn で割れました。

時系列では隣同士に共分散があるので、この項が残ります。φ=0.9\varphi = 0.9 なら隣の相関が0.9、2つ隣が0.81、3つ隣が0.729と、正の共分散がずらりと並びます。合計は σ2/n\sigma^2/n よりずっと大きくなります。

つまり n\sqrt{n} で割るのは「nn 個ぶんの独立な情報がある」という主張なのです。

左:有効標本サイズの棒グラフ。φ=0で100個、0.5で33.3個、0.7で17.6個、0.9で5.3個、1.0で0個。右:標本平均の分散の対数軸棒グラフで、独立仮定と実測の比が1.0倍、3.9倍、90.2倍

有効標本サイズ neff=n(1φ)/(1+φ)n_{\text{eff}} = n(1-\varphi)/(1+\varphi) で測ると、φ=0.9\varphi = 0.9 のとき100個が実質 5.3個分φ=1\varphi = 1 ではこの式は 0 になります(厳密には neffn_{\text{eff}} の式は定常性を前提に導かれているので φ=1\varphi=1 は適用域外です。実際には V[xˉ]V[\bar{x}]nn に比例して増えるので、集めるほど悪くなります。節1-3 で「nn を増やすと棄却率が上がる」と見たのは、この現象の回帰版です)。

そして右の図がその帰結です。標本平均の分散を実測すると、φ=0.9\varphi = 0.90.901670.90167ホワイトノイズ(φ=0\varphi = 0)の 1/n=0.011/n = 0.01 と比べて 90.2倍でした(n=100n=100 の厳密値 0.905 とぴったり一致。漸近値 1/(n(1φ)2)=1.01/(n(1-\varphi)^2) = 1.0 には n=100n=100 ではまだ届いていません)。

ただし「何と比べるか」に注意が必要です。90.2倍はホワイトノイズとの比で、公式が実際に使う分母は s2/ns^2/n です。ss 自体も大きくなる(φ=0.9\varphi=0.9 では E[s2]/n=0.044E[s^2]/n = 0.044)ので、公式の過小度は分散で約21倍、標準誤差で 4.59倍になります。この 4.59倍が後の表に出てくる数字です。

2-4. 「1本しか観測できない」という宿命

なぜ標本平均がずれるのか、20本の系列を重ねて見ます。

20本の系列の重ね描き2枚。左のφ=0は全部が±2の帯に収まる。右のφ=0.9は各線が上下に大きく分散し、それぞれ長く同じ側に居座る

左(φ=0\varphi = 0)は20本がほぼ ±2\pm 2 の帯に収まるので、どの1本を取っても平均はほぼ0になります。

右(φ=0.9\varphi = 0.9)は1本1本が長く同じ側に居座ります。たまたま下側に居た系列を観測すれば、標本平均は簡単に 1-12-2 になる。

そして時系列では観測できるのは1本だけです。その1本が偏っていても、ss からは気づけません。

2-5. 「95%」が実際に何%なのか数える

25本の信頼区間を横棒で並べた2枚。左のφ=0は25本中1本だけが赤(外れ)。右のφ=0.9は11本が赤で、区間の長さは左の2倍ほど

同じ手続きで95%信頼区間を25回作りました(n=100n = 100)。緑の縦線が真の値0。左は25本中1本だけ外れ(ほぼ理論通り)、右は 11本が外れています。

右の区間は左の2倍ほどしか長くなっていないのに、中心(黒丸)の散らばりは 9.5倍です(0.0998 → 0.9453)。区間の長さが中心の散らばりに追いついていない、これが「標準誤差が過小」の見た目です。

左:φに対する被覆率が94.6%から22.3%まで下がる折れ線。右:公式のSEと実測のばらつきの棒グラフ比較で1.0倍から7.0倍まで開く

φ\varphi被覆率
(あるべき95%)
公式の SE=s/nSE = s/\sqrt{n}xˉ\bar{x} の本当のばらつき
(20000回の実測SD)
公式は何倍
過小か
0.0094.6%0.09980.10081.01 倍
0.3084.0%0.10410.14391.38 倍
0.5073.5%0.11380.19851.74 倍
0.7058.3%0.13610.32852.41 倍
0.9033.0%0.20610.94534.59 倍
0.9522.3%0.25761.79966.99 倍

φ=0.9\varphi = 0.9 では「95%信頼区間」が3回に1回しか当たりません。

2-6. 橋渡し:回帰の傾きも同じ構造

ここで回帰に戻ります。平均と回帰は別物に見えますが、標準誤差の公式が同じ仮定に乗っています

標本平均 xˉ\bar{x}回帰の傾き β^\hat\beta
推定値の中身データの加重和(重みは全部 1/n1/nデータの加重和(重みは (xixˉ)/(xxˉ)2(x_i-\bar{x})/\sum(x-\bar{x})^2
ばらつきの計算V[xi]=V[xi]+2Cov(xi,xj)V[\sum x_i] = \sum V[x_i] + 2\sum \mathrm{Cov}(x_i,x_j)V[wiui]=wi2V[ui]+2wiwjCov(ui,uj)V[\sum w_i u_i] = \sum w_i^2 V[u_i] + 2\sum w_i w_j \mathrm{Cov}(u_i,u_j)
公式が使う仮定共分散の項=0(独立共分散の項=0(誤差が独立
時系列で起きること隣同士が似ていて共分散が残る同じ。残差が滑らかに繋がって共分散が残る

第17回で学んだ最小二乗法の4つの仮定のうち、独立性がこの共分散の項をゼロにするために置かれていました。平均のときの n\sqrt{n} と、回帰のときの (XX)1(X^\top X)^{-1} は、同じ仮定から出てきた同じ性質の数字です。

目で見える証拠が残差です。

上段:残差の時系列2枚。左の定常はギザギザで毎回符号が変わる、右の非定常は滑らかな波を描きDW比0.277。下段:残差と1期前の散布図。左は雲状で自己相関0.122、右は右上がりの直線状で0.858

残差の自己相関
ラグ1 / 2 / 3 / 4 / 5
ダービン・ワトソン比
(独立なら約2.0)
定常(この1組)0.122 / 0.075 / 0.161 / 0.044 / 0.0261.750
非定常(この1組)0.858 / 0.765 / 0.663 / 0.571 / 0.5160.277
非定常(5000回の平均)0.171

平均のときに「データの隣同士が似ている」と言ったのと同じことが、回帰では「残差の隣同士が似ている」として現れます。

そして第17回のダービン・ワトソン比への答えがここにあります。DW比の平均が 0.171。あのとき「2から離れたら誤差の自己相関を疑え」と学んだ、その最も極端な症例が単位根でした。同じ話の程度が違う版であって、別の話ではありません。

傾きの分布のヒストグラム2枚と緑の許容範囲の帯。左の定常では帯が分布をほぼ覆い外れる割合4.9%、右の非定常では分布が帯よりはるかに広く外れる割合72.8%

傾きの平均
(真の値0)
公式が言う SESE傾きの本当のばらつき
(実測SD)
公式は何倍
過小か
残差のDW比
定常0.0013-0.00130.10100.10171.01 倍2.001
非定常0.0077-0.00770.10280.63986.22 倍0.171

棒が傾きの実際の分布、緑の帯が公式の SESE から作った許容範囲 ±1.96×SE\pm 1.96 \times SE です。緑の帯の幅は左右でほぼ同じ(0.101 と 0.103)なのに、右の分布は6倍以上広い。だから 72.8% がはみ出します。

傾きは実際 ±0.64\pm 0.64 の幅でブレるのに、公式は「±0.10\pm 0.10 しかブレないはず」と言う。だから 0.3 という平凡なブレが「t=3t = 3、有意」に化けます。

2-7. 標準誤差を直せば済む話ではない

「では自己相関に対応した標準誤差を使えばいいのでは」と考えるのが自然です。Newey-West(HAC=Heteroskedasticity and Autocorrelation Consistent、不均一分散・自己相関に頑健な標準誤差)を自作して試しました。

標準誤差の計算方法棄却率(名目5%)平均 SESE傾きの実測SD
通常の最小二乗法の SESE75.0%(別の乱数列で再実行したもの)0.1030.607
Newey-West58.7%0.1710.607
差分してから通常の回帰5.4%

SESE の直し方では足りません。 75.0% → 58.7% と改善はしますが、まだ全然ダメです。

理由は、単位根がある場合傾きの分布そのものが「nn を増やすと縮む」という性質を失っているためです。実測しました。

標本サイズ nn傾き β^\hat\beta の実測SD独立なら 1/n1/\sqrt{n}
1000.6270.100
2500.6400.063
5000.6330.045
10000.6160.032
20000.6100.022

nn を20倍にしても 0.63 のままです。 通常の回帰なら n\sqrt{n} のペースで縮むはずのものが、まったく縮みません。

つまり β^\hat\beta一致推定量ですらありません。「傾きは正しい」と書きましたが、正確には平均としては正しいだけで、1本の系列しか観測できない立場からすると ±0.64\pm 0.64 でブレる無意味な数字です。だから SESE をどう直しても tt 分布には戻りません。

だからモデルを直すしかない。 それが差分であり、ARIMA の I(Integrated=和分)が存在する理由です。


3. AR(1) と「戻る力」

3-1. ホワイトノイズとランダムウォークは同じ式の両端

ここまで「定常」と「非定常」を対比してきましたが、この2つは別種の生き物ではありません。同じ式の両端です。

xt=φxt1+etx_t = \varphi\, x_{t-1} + e_t

これが AR(1) モデルです。AR は AutoRegressive(自己回帰)の略で、括弧の1は「何期前まで参照するか」。自分の過去で自分を回帰するという意味です。ete_t はホワイトノイズです。

φ=0\varphi = 0 なら xt=etx_t = e_t、つまりホワイトノイズ。φ=1\varphi = 1 なら xt=xt1+etx_t = x_{t-1} + e_t、つまりランダムウォーク。

AR(1)の時系列。青の折れ線が実現値、橙の四角がφ倍した予測部分、赤矢印が新しいノイズを表し、橙から青への差分になっている

1ステップを2つに分けた図です。

  • 橙の四角 = φxt1\varphi x_{t-1} … 前の値を0.7倍に縮めた「予測できる部分」。過去から分かっている
  • 赤い矢印 = ete_t … その時刻に初めて入る「新しい情報」

青い実現値は必ず「橙 + 赤矢印」です。橙が常にゼロの破線側に寄っている(前の値より原点に近い)のが「引き戻し」の実体です。

なお AR(2) なら xt=φ1xt1+φ2xt2+etx_t = \varphi_1 x_{t-1} + \varphi_2 x_{t-2} + e_t で2期前まで見ます。

3-2. φ\varphi を動かすと何が変わるか

同じ乱数列でφ=0, 0.5, 0.9, 1.0の4枚の時系列。φが大きいほどゼロ線から遠く長く離れ、標準偏差が0.92→1.06→1.86→3.87と増える

4枚すべて同じ乱数列 ete_t を使っています。 違うのは φ\varphi だけ。φ=0\varphi = 0(左上)はゼロの破線に毎回引き戻され、φ=1\varphi = 1(右下)は一度離れると戻ってこない。標準偏差が 0.92 → 1.06 → 1.86 → 3.87 と育っていきます。

「戻る力」の正体を見ます。

x_{t-1}を横軸、x_tを縦軸にした散布図3枚。傾きがφ=0で水平、0.7で45度線より浅い、1.0で45度線と一致

灰色の点線が45度線、つまり「今いる場所にそのまま留まる」線です。

  • φ=0.7\varphi = 0.7:赤い線が45度線より寝ている。今 xt1=4x_{t-1} = 4 にいると、次の中心は 2.82.8原点側に0.7倍縮む。これが引き戻し
  • φ=1\varphi = 1:赤線が45度線とぴったり重なる。縮みがゼロ。今いる場所がそのまま新しい中心になる

ランダムウォークが漂うのは正規分布のせいではなく、この45度線と重なっていることのせいでした。

3-3. 崖ではなく坂

左:φに対する棄却率のグラフ。5.3%から滑らかに上昇し76.4%に達する。右:1/√(1−φ²)のグラフがφ=1で発散する

φ\varphi棄却率(名目5%)t\lvert t \rvert の中央値実測SD理論SD 1/1φ21/\sqrt{1-\varphi^2}
0.005.3%0.680.991.00
0.307.4%0.751.041.05
0.5012.5%0.891.131.15
0.7023.5%1.121.351.40
0.9051.0%2.032.012.29
0.9560.4%2.572.463.20
0.9970.4%3.573.267.09
1.0076.4%4.413.78∞(存在しない)

φ=1\varphi = 1 で突然壊れるのではありません。 φ=0.5\varphi = 0.5 で既に 12.5%、φ=0.9\varphi = 0.9 で 51% と、坂を上るように悪化します。

理由は右の図です。φ<1\varphi < 1 のとき、この系列が落ち着く先の標準偏差は 1/1φ21/\sqrt{1-\varphi^2} になります。実測と理論が φ=0.5\varphi = 0.5 で 1.13 vs 1.15、φ=0.7\varphi = 0.7 で 1.35 vs 1.40 と一致しています。そして φ1\varphi \to 1この値が無限大に発散します

φ=1\varphi = 1 は「落ち着き先が存在しなくなる点」です。 これが単位根と呼ばれるものの正体です。

なお φ0.9\varphi \ge 0.9 で実測SDが理論SDを下回っています(2.01 vs 2.29、3.26 vs 7.09)。私は最初これを「n=100n = 100 では落ち着き先まで到達していないから」と説明したのですが、間違いでした

バーンイン期間を3000ステップ入れて完全に定常状態から始めてもn=100n=100 の窓内で測った ssφ=0.9\varphi = 0.9 で 2.06、φ=0.99\varphi = 0.99 で 3.45 にしかなりません(理論値 2.29 / 7.09)。過渡期の寄与はごく一部でした。

本当の理由は、n=100n = 100 の窓の中では、系列がゆっくり上下する長周期のうねりが標本平均に吸収されてしまい、ss がそれを「ばらつき」として数えないことです。厳密に計算すると E[s2]E[s^2]φ=0.9\varphi = 0.9 で 4.40(真の γ0=5.26\gamma_0 = 5.26 の84%)、φ=0.99\varphi = 0.99 では 13.5(真の 50.3 の27%)まで縮みます。E[s2]\sqrt{E[s^2]} で言えば 2.10 と 3.67 で、真の 2.29 と 7.09 に届いていません(上に書いた 2.06 / 3.45 は E[s]E[s] で、E[s2]\sqrt{E[s^2]} とは一致しません)。

これは節2-2で見たss は並び順の情報を捨てている」の裏返しです。節2-2 では「φ=0\varphi=0 のときより ss が大きい」ことを見ましたが、それでも自分自身の真の γ0\gamma_0 には届いていない、という関係です。φ\varphi が1に近いほど「窓に収まらない長さのうねり」が増えるので、ss の下方バイアスが大きくなります。

3-4. 「単位根」という名前の由来

ここでラグ演算子 LL を導入します。Lxt=xt1L x_t = x_{t-1} と定義するだけの記号です。これを使うと AR(1) は次のように書けます。

xtφxt1=et(1φL)xt=etx_t - \varphi x_{t-1} = e_t \quad \Longrightarrow \quad (1 - \varphi L)\, x_t = e_t

括弧の中を LL の多項式と見て、1φz=01 - \varphi z = 0 を解くと z=1/φz = 1/\varphi。この zz特性方程式の根と呼びます。

  • φ<1\lvert \varphi \rvert < 1 なら z>1\lvert z \rvert > 1 … 根が単位円の外側にある → 定常
  • φ=1\varphi = 1 なら z=1z = 1 … 根がちょうど1(単位)になる → 単位根

「単位根」は「特性方程式の根が1である」という意味でした。AR(2) 以上でも同じ判定で、すべての根が単位円の外にあれば定常です。これは試験で問われる形です。


4. 弱定常性の定義

4-1. 3つが「時刻によらない」こと

もう実質見えているので、名前を付けるだけです。時系列 xtx_t弱定常とは、次の3つがすべて時刻 tt によらないことです。

条件意味破れるとどうなるか
E[xt]=μE[x_t] = \mu(定数)平均が時刻によらないトレンドがある
V[xt]=σ2V[x_t] = \sigma^2(定数)ばらつきが時刻によらないだんだん振れ幅が広がる
Cov(xt,xt+k)=γk\mathrm{Cov}(x_t, x_{t+k}) = \gamma_kラグ kk だけで決まり tt を含まない「5期前との関係」が時期によって違う

「弱」と付くのは、平均・分散・共分散という2次までのモーメントだけを要求しているからです。分布の形そのものが時刻によらないことまで要求するのが強定常ですが、準1級では弱定常だけで十分です(以下、単に「定常」と書きます)。

上段:AR(1)40本の重ね描きは一定幅の帯、ランダムウォーク40本は放物線状に広がる。下段:平均・分散・共分散の3本が左では水平、右では分散と共分散が時刻に比例して増える

上段は40本の重ね描き。黒線が各時刻ごとのばらつき ±2SD\pm 2 SD で、左は水平な帯、右は t\sqrt{t} の放物線状に開いていきます(第23回のブラウン運動の図と同じ形)。

下段が定義そのもので、①平均・②分散・③ラグ5の共分散を時刻 tt の関数として描いたものです。左は3本すべて水平、右は②③が tt に比例して直線的に増えています。

4-2. ランダムウォークの平均はゼロ

20000本の系列を生成して、各時刻の値を集めて計算しました。

AR(1) φ=0.7\varphi = 0.7(理論値:E=0E = 0V=1/(10.49)=1.9608V = 1/(1-0.49) = 1.9608Cov(ラグ5)=0.75/0.51=0.3295\mathrm{Cov}(\text{ラグ}5) = 0.7^5/0.51 = 0.3295

時刻 ttE[xt]E[x_t]V[xt]V[x_t]Cov(xt,xt+5)\mathrm{Cov}(x_t, x_{t+5})
6+0.0058+0.00581.96560.3191
21+0.0056+0.00561.96880.3208
51+0.0031+0.00311.95450.3423
1010.0029-0.00291.96070.3373
191+0.0122+0.01221.95740.3417

ランダムウォーク(理論値:V[xt]=tV[x_t] = tCov(xt,xt+k)=t\mathrm{Cov}(x_t, x_{t+k}) = t

時刻 ttE[xt]E[x_t]V[xt]V[x_t]理論値 ttCov(xt,xt+5)\mathrm{Cov}(x_t, x_{t+5})
6+0.0055+0.00556.0266.00
210.0221-0.022120.692120.70
510.0388-0.038851.355151.24
101+0.0079+0.0079101.29101101.37
191+0.0486+0.0486190.96191191.37

平均だけは両方ゼロで、条件①は満たしています。

ランダムウォークが非定常なのは②と③のせいです。「非定常=トレンドがある」ではありません。 ドリフトのないランダムウォークは平均ゼロのまま、ばらつきだけが無限に育ちます。ここは試験で狙われるところです。

4-3. 条件③の「ラグだけで決まる」を確かめる

AR(1) φ=0.7\varphi = 0.7 の自己共分散を3つの時刻で比べます。

ラグ kkt=21t=21t=51t=51t=101t=101理論 0.7k/0.510.7^k/0.51
01.96891.95461.96081.9608
11.38871.35731.37511.3725
20.96920.95260.95590.9608
30.67890.68010.65290.6725
50.32080.34230.33730.3295

横に読むと一定(どの時刻でも同じ)、縦に読むと φk\varphi^k で減衰。 これが「ラグだけで決まる」ということです。

ランダムウォークで同じ表を作ると:

ラグ kkt=21t=21t=51t=51t=101t=101
020.7051.35101.29
120.7151.37101.30
220.7351.31101.19
320.7651.35101.27
520.7051.24101.37

横に読むと全く違い、縦に読むと減衰しません。 ラグを5に増やしても値が下がらない(20.70 → 20.70)。つまり5期離れても関係が全く薄れない。「記憶が永久に残る」のが単位根の特徴で、これが見せかけの回帰の源でした。

4-4. なぜ定常性が必要なのか

これで一言で言えます。

定常なら、条件③のおかげで「1本の系列を時間方向にずらして眺めること」が「繰り返し観測」の代わりになります。 どの時刻でも同じルールが動いているからです。だから nn を増やせば精度が上がり、標準誤差の公式が意味を持ちます。

定常でなければ時刻ごとに別のルールが動いているので、何期集めても「同じものの繰り返し」になりません。

(厳密には、時間平均が期待値に収束することをエルゴード性と呼び、定常性とは別の条件です。ただし準1級のレベルでは「定常なら時間方向の平均が使える」と理解しておけば足ります。)


5. 差分は φ=1\varphi = 1 専用の薬

5-1. トレンド定常と単位根で、正しい処理が逆になる

ここで私は次の誤解をしました。「時間の一次式なら直線からの残差にすれば独立になる。AR(1) なら前の値との差分を取れば自己相関が消える」。

前半は正しいのですが、後半は φ=1\varphi = 1 のときだけです。φ=0.7\varphi = 0.7 の AR(1) はすでに定常なので、差分してはいけません

3列9枚のパネル。トレンド定常・定常AR(1)・単位根の3列について、元系列・直線残差・1階差分を並べた図。それぞれ正しい処理が直線を引く・そのまま・差分と異なる

① トレンド定常
xt=0.05t+etx_t = 0.05t + e_t
② 定常な AR(1)
φ=0.7\varphi = 0.7
③ 単位根
xt=xt1+etx_t = x_{t-1} + e_t
元の系列のラグ1自己相関+0.922+0.922+0.719+0.719+0.943+0.943
直線を引いた残差0.032-0.032+0.713+0.713+0.930+0.930 ×
1階差分0.489-0.489 ×0.187-0.187 ×0.025-0.025
正しい処理直線を引くそのまま(φ\varphi を推定)差分を取る

元の系列の自己相関は +0.922+0.922 / +0.719+0.719 / +0.943+0.9433つとも強い自己相関で、見た目では区別できません。 それでも正しい処理は全部違います。

そして大事なのは、②の +0.719+0.719 は「消すべき問題」ではないということです。これは AR(1) の φ=0.7\varphi = 0.7 そのもの、つまり推定して予測に使う情報です。

問題だったのは「自己相関があるのに無いふりをして標準誤差を計算すること」でした。φ\varphi をモデルに入れて明示的に扱えば、標準誤差も正しく出せます。

5-2. なぜ φ<1\varphi < 1 で差分すると負の自己相関が出るのか

代数で1行です。

Δxt=xtxt1=(φxt1+et)xt1=(φ1)xt1+et\Delta x_t = x_t - x_{t-1} = (\varphi x_{t-1} + e_t) - x_{t-1} = (\varphi - 1)x_{t-1} + e_t
  • φ=1\varphi = 1 なら (φ1)=0(\varphi-1) = 0 なので Δxt=et\Delta x_t = e_t。完全にホワイトノイズ
  • φ<1\varphi < 1 なら xt1x_{t-1} の項が残る。符号が負なので「前が大きかったら次は引き下げる」という人工的な反動が生まれる

この反動の大きさは理論的に (1φ)/2-(1-\varphi)/2 になります。

φ\varphiそのまま
ラグ1自己相関
差分後
ラグ1自己相関
差分後の理論値
(1φ)/2-(1-\varphi)/2
0.00+0.001+0.0010.498-0.4980.500-0.500
0.30+0.298+0.2980.348-0.3480.350-0.350
0.50+0.497+0.4970.248-0.2480.250-0.250
0.70+0.695+0.6950.148-0.1480.150-0.150
0.90+0.892+0.8920.047-0.0470.050-0.050
0.95+0.941+0.9410.022-0.0220.025-0.025
1.00+0.987+0.9870.001-0.0010.000

左:そのままの自己相関がφに比例して上がる青線と、差分後が−0.5から0へ上がる紫線、理論値の赤破線が紫と完全一致。右:棄却率の棒グラフで差分は高いφで効くがφ=0では4.5%から9.9%に悪化

紫(実測)と赤破線(理論値)が完全に重なっています。φ=1\varphi = 1 で初めて両方ゼロになる。差分は「φ=1\varphi = 1 のための薬」です。

右の図では、回帰の妥当性という一点だけを見れば差分は広い範囲で効きますが、φ=0\varphi = 0(元々ホワイトノイズ)では 4.5% → 9.9% と逆に悪化します。

5-3. 用語の整理

用語意味正しい処理
階差定常/単位根過程/I(1)1階差分で定常になる。「確率的トレンド」を持つ差分を取る
トレンド定常時間の関数(直線など)を引けば定常になる。「確定的トレンド」トレンド除去
過剰差分必要でないのに差分すること差分を取り消す

「差分は何回取ってよいのか」への答えは必要な回数だけです。1階差分で自己相関が消えたらそこで止めます。実務では1階、季節性があれば加えて季節差分、2階以上はほぼ不要です。

そして Δxt=(φ1)xt1+et\Delta x_t = (\varphi-1)x_{t-1} + e_t という式は、後で出てくる Dickey-Fuller 検定そのものです。係数 (φ1)(\varphi-1) がゼロかどうかを検定すれば、差分すべきかが決まります。


6. MA モデルと ARMA

6-1. MA は「過去のノイズ」を足す

AR の対になるのが MA(Moving Average=移動平均)モデルです。足しているものが違うだけです。

AR(1):xt=0.7xt1過去の自分+etMA(1):xt=et+0.7et1過去のノイズ\text{AR(1)}: x_t = 0.7\,\underbrace{x_{t-1}}_{\text{過去の自分}} + e_t \qquad \text{MA(1)}: x_t = e_t + 0.7\,\underbrace{e_{t-1}}_{\text{過去のノイズ}}

上段:AR(1)とMA(1)の時系列。下段:ARは丸が矢印で鎖状に繋がる図、MAはノイズの丸から箱へ2本ずつ矢印が入り隣の箱同士だけが重なる図

下段の依存構造が肝です。

AR は鎖で、x0x_0 の影響が x1x2x_1 \to x_2 \to \cdotsいつまでも伝わります(0.7、0.49、0.343…と薄れつつ消えない)。

MA は2個ずつの重なりです。x1x_1x2x_2e1e_1 を共有しますが、x1x_1x3x_3 は共有するノイズが1つもありません。だから2期以上離れると関係が真にゼロになります。

ひとつ注意で、「移動平均」という名前は誤解を招きます。データを平滑化する移動平均(3期移動平均など)とは別物で、こちらは「ノイズの加重和」というモデルです。同じ言葉が2つの別物を指しています。

使いどころの違いはこうです。MA は一時的なショックが数期だけ影響して完全に消える現象(テレビで紹介されてアクセスが2日跳ねて元に戻る)。AR は効果が薄れながら長く残る現象(口コミが徐々に広がる)。

そして ARMA(p, q) は両方を持つモデルです。

xt=φ1xt1++φpxtp+et+θ1et1++θqetqx_t = \varphi_1 x_{t-1} + \cdots + \varphi_p x_{t-p} + e_t + \theta_1 e_{t-1} + \cdots + \theta_q e_{t-q}

6-2. ARIMA(p, d, q) の記号

記号名前意味
pAR(自己回帰)過去の自分を何期分使うか
dI(Integrated=和分)差分を何回取るか
qMA(移動平均)過去のノイズを何期分使うか

ARIMA(1,1,1) とは、①まず1階差分を取り(d=1d=1)、②その Δxt\Delta x_t に ARMA(1,1) を当てる、という2段階です。

「Integrated=和分」という名前の由来は、差分(difference)の逆操作が和(integrate)だからです。「差分すれば定常になる=定常なものを足し上げて出来ている」という意味で、I(1) は第23回のランダムウォークの一般化にあたります。

季節性が入ると SARIMA(p,d,q)(P,D,Q)s_s になります。後半の括弧は「ss 期前」に対する同じ3つで、ss は周期(日次データの週次周期なら s=7s = 7)。


7. ACF と PACF:なぜ AR と MA を見分けられるのか

7-1. 定義の違いは「間の期を固定するか」

私が一番つまずいたのがここです。ACF も PACF も「過去との相関」に見えて、区別がつきませんでした。

ACF ρk\rho_k(自己相関)PACF(偏自己相関)
測るものxtx_txtkx_{t-k}ただの相関同じ相関から間の期(1〜k1k-1)の影響を取り除いた分
定義γk/γ0\gamma_k / \gamma_0xtxt1++xtkx_t \sim x_{t-1} + \cdots + x_{t-k} と重回帰したときのxtkx_{t-k} の係数
回帰でいうと回帰の傾き回帰の偏回帰係数

違いは「間の期を固定するかしないか」だけです。 第16回で「他の変数を固定したとき」の正体が残差だったのと同じ構造で、第27回の偏相関と同じ道具です。

7-2. AR(1) で「2期前は効いているのか」

AR(1) φ=0.7\varphi = 0.7 のデータで、2期前の効果を2通りに測ります。

【単回帰】x_t ~ x_{t-2}
   x_{t-2} の係数 = +0.4910 (SE 0.0019)   強く効いて見える

【重回帰】x_t ~ x_{t-1} + x_{t-2}
   x_{t-1} の係数 = +0.6984 (SE 0.0022)   真の φ=0.7
   x_{t-2} の係数 = +0.0022 (SE 0.0022)   ★ゼロ

散布図3枚。①x_{t-2}とx_tは傾き+0.490で明確な相関、②x_{t-1}とx_tは傾き+0.704、③両方から1期前を除いた残差同士は傾き−0.009でほぼ水平

③で両方から1期前の影響を除いた残差同士を見ると、傾きが 0.009-0.009 でほぼ完全に水平になります。これが PACF ラグ2 です(この散布図は n=5000n = 5000 で描いているので 0.009-0.009。上のコードは n=200000n = 200000 なので +0.0022+0.0022。どちらも「ゼロと区別できない」という同じ結論です)。

なお③の傾きと、上の重回帰の xt2x_{t-2} の係数は理論上まったく同じものです。第16回で「他の変数を固定した係数=残差同士の回帰」と確かめたのと同じ関係で、同じデータなら数値も一致します。

7-3. なぜこんなに違うのか:経路の分解

私はここで「単回帰と重回帰でなぜそんなに結果が変わるのか」が分からなくなりました。答えは、xt1x_{t-1}xt2x_{t-2} 自身が相関していることです。実測 Corr(xt1,xt2)=0.6999\mathrm{Corr}(x_{t-1}, x_{t-2}) = 0.6999。隣同士なので当然0.7です。

パス図。x_{t-2}からx_{t-1}へa=0.6999、x_{t-1}からx_tへb=0.6984の緑の矢印。x_{t-2}からx_tへ直接向かう赤い破線はc=0.0022

0.4910単回帰の係数=0.0022直接効果 c+0.6999×0.6984間接効果 a×b\underbrace{0.4910}_{\text{単回帰の係数}} = \underbrace{0.0022}_{\text{直接効果 } c} + \underbrace{0.6999 \times 0.6984}_{\text{間接効果 } a \times b}

ぴったり一致します。

0.490.49 という数字は「2期前が直接効いている」のではなく、「2期前 → 1期前 → 現在」という遠回りの経路を測っていただけでした。単回帰は間の xt1x_{t-1} を見ていないので、遠回りと直接の道を区別できません。

考えてみれば当然です。AR(1) の定義 xt=φxt1+etx_t = \varphi x_{t-1} + e_txt2x_{t-2}そもそも登場しませんxt1x_{t-1} を知ってしまえば xt2x_{t-2} は追加情報を持たない。第22回のマルコフ性そのものです。

2つは違う問いを聞いています。

問いの形答え
単回帰(ACF)「2期前が1大きいと、現在はどれだけ大きい?」0.491
重回帰(PACF)1期前が同じ値の2つを比べたとき、2期前の違いは効く?」0.002

7-4. 層別で見ると一目瞭然

これが一番直感的でした。

左:x_{t-2}とx_tの散布図全体が右上がりで傾き0.489、点の色がx_{t-1}の値で青から赤へ斜めに並ぶ。右:x_{t-1}を3つの帯に限定すると各層の回帰直線がすべてほぼ水平

同じデータです。 左は全部まとめた散布図で右上がり(傾き 0.489)。点の色が xt1x_{t-1} の値で、青(小)が左下、赤(大)が右上に固まっているのが見えます。

右は xt1x_{t-1} を3つの狭い帯に限定して、その中だけで直線を引いたもの。3本すべてほぼ水平+0.009+0.009+0.023+0.023+0.019+0.019)です。

左の右上がりは、層が斜めに並んでいるだけで作られていました。構造としてはシンプソンのパラドックスと同じ形です。

実データの数字でも確かめます。xt11.00x_{t-1} \approx 1.00 に限定した4374件の中で:

条件(xt1x_{t-1} を1.00付近に固定)xt2x_{t-2} の平均xtx_t の平均
xt2<0.5x_{t-2} < 0.5 のグループ(1843件)0.226-0.226+0.6741+0.6741
xt2>1.5x_{t-2} > 1.5 のグループ(919件)+2.050+2.050+0.6819+0.6819

xt2x_{t-2} が 2.28 も違うのに、xtx_t の平均はほぼ同じです。逆に xt2x_{t-2} を固定して xt1x_{t-1} を変えると 0.1679-0.1679+1.4075+1.4075 と大きく動きます。

7-5. MA では逆になる

MA(1) xt=et+0.7et1x_t = e_t + 0.7 e_{t-1} を「過去の自分」で表そうとすると、無限に続きます。

et1=xt10.7et2=xt10.7xt2+0.49xt30.343xt4+e_{t-1} = x_{t-1} - 0.7 e_{t-2} = x_{t-1} - 0.7 x_{t-2} + 0.49 x_{t-3} - 0.343 x_{t-4} + \cdots

MA(1) は AR(\infty) に等しい(係数が符号を交替しながら減衰する)。実測でも重回帰の係数が +0.68+0.68 / 0.45-0.45 / +0.27+0.27 / 0.13-0.13 と出ました。理論値 0.70.7 / 0.49-0.49 / 0.3430.343 / 0.240-0.240 より小さめなのはラグ4で打ち切っているためで、無限に続くことの裏返しです。

この書き換えが成り立つのは θ<1\lvert\theta\rvert < 1 のときで、この条件を反転可能性(invertibility)と呼びます。θ=1.4\theta = 1.4 だと級数が発散して AR(\infty) に書けません。さらに θ\theta1/θ1/\theta同じ ACF を与えるので、どちらか一方に決めるためにこの条件を課します。ラグ演算子で書くと 1+θz=01 + \theta z = 0 の根が単位円の外、つまり AR の定常条件と対になる概念です。

一方、MA の共分散は簡単に計算できます。ee は互いに独立なので、添字が一致する項だけが残るのがポイントです。

上段:x_tとx_{t-1}のノイズの箱がe_{t-1}の位置で重なっている図。下段:x_tとx_{t-2}の箱が離れていて重なりが無い図

ラグ1Cov(et+0.7et1, et1+0.7et2)\mathrm{Cov}(e_t + 0.7e_{t-1},\ e_{t-1} + 0.7e_{t-2}) 展開すると4項。独立なので添字が一致するものだけ残る → et1e_{t-1} を共有しているので 0.700.7 \ne 0

ラグ2Cov(et+0.7et1, et2+0.7et3)\mathrm{Cov}(e_t + 0.7e_{t-1},\ e_{t-2} + 0.7e_{t-3}) 添字は {t,t1}\{t, t-1\}{t2,t3}\{t-2, t-3\}一致するものが1つも無い厳密にゼロ(近似ではない)

MA の共分散は「ノイズの箱が重なっているか」だけで決まります。 共分散は共有ノイズを数えるだけの計算なので、MA の定義がそのまま共分散に写ります。

7-6. コレログラム:4モデルを並べる

ACF と PACF を棒グラフにしたものをコレログラムと呼びます。

4行2列の棒グラフ。AR(1)はACFが指数減衰しPACFがラグ1で切れる。AR(2)はPACFがラグ2で切れる。MA(1)はACFがラグ1で切れPACFが符号交替で減衰。MA(2)はACFがラグ2で切れる

モデルACFPACF
AR(p)減衰して続くラグ pp切れる
MA(q)ラグ qq切れる減衰して続く
ARMA(p,q)減衰して続く減衰して続く(どちらも切れない
単位根 I(1)ほぼ1のまま減衰しないラグ1がほぼ1で以降ゼロ

実測値(n=100000n = 100000):

モデルACF ラグ1 / 2 / 3PACF ラグ1 / 2 / 3
AR(1) φ=0.7\varphi=0.70.7005 / 0.4915 / 0.34420.7005 / 0.0017 / 0.0014-0.0014
AR(2) φ=0.5,0.3\varphi=0.5, 0.30.7111 / 0.6525 / 0.53610.7111 / 0.2971 / 0.0030-0.0030
MA(1) θ=0.7\theta=0.70.4709 / 0.0031 / 0.00170.4709 / 0.2810-0.2810 / +0.1845+0.1845
MA(2) θ=0.6,0.4\theta=0.6, 0.40.5562 / 0.2692 / 0.00620.5562 / 0.0582-0.0582 / 0.1741-0.1741

理論値との一致も確認しました。AR(1) の ACF は 0.7k0.7^k(0.7000 / 0.4900 / 0.3430)、MA(1) の ACF ラグ1は θ/(1+θ2)=0.4698\theta/(1+\theta^2) = 0.4698、MA(2) の ACF は 0.5526 / 0.2632、AR(2) の PACF ラグ2は φ2=0.300\varphi_2 = 0.300

7-7. なぜ見分けられるのか:道具とモデルの「言語」

これが今回一番の収穫でした。ACF と PACF はどちらが優れているという話ではなく、読み取れるモデルが違うだけです。

AR(1): xt=φxt1+etx_t = \varphi x_{t-1} + e_tMA(1): xt=et+θet1x_t = e_t + \theta e_{t-1}
定義が使っている言葉過去の自分過去のノイズ
ACF(共分散)で見ると鎖を伝う間接効果が混ざり尾を引く共有ノイズの有無がそのまま出る → 切れる
PACF(過去の自分で回帰)で見ると定義をそのまま読み取る → 切れるAR(\infty) に書き換えが必要で無限に続く

PACF は「過去の自分で回帰する」道具なので、過去の自分で書かれた AR の次数を読み取れる。 ACF は「共有ノイズを数える」道具なので、ノイズで書かれた MA の次数を読み取れる。

道具とモデルの言語が一致したときだけ、ぴたりと切れます。一致していない側は「書き換え」が必要になり、その書き換えが無限級数になるので尾を引きます。

だから両方見ないと、どちらの言語で書かれているか分かりません。 これがコレログラムを2つ並べる理由でした。

7-8. 覚え方

ACF が切れたら MA、PACF が切れたら AR。切れた位置が次数。

頭文字だと逆になるので注意です。PACF と AR が組PACF → p の決定、と結びつけると混乱しません)。

実務上の注意もひとつ。上の表がこれだけきれいに切れたのは n=100000n = 100000 だからです。実データの n=100n = 100 程度では、切れた後のラグでも ±2/n=±0.2\pm 2/\sqrt{n} = \pm 0.2 程度ばらつくため、「切れた」の判定に主観が入ります。だから AIC を併用します。


8. 単位根検定(Dickey-Fuller)

8-1. 検定するのは前に出した式そのもの

第5節で出した式をもう一度書きます。

Δxt=(φ1)xt1+etΔxt=ρxt1+et(ρ=φ1)\Delta x_t = (\varphi - 1) x_{t-1} + e_t \quad \Longrightarrow \quad \Delta x_t = \rho\, x_{t-1} + e_t \quad (\rho = \varphi - 1)
  • 帰無仮説 H0H_0ρ=0\rho = 0φ=1\varphi = 1、単位根あり、差分が必要)
  • 対立仮説 H1H_1ρ<0\rho < 0φ<1\varphi < 1、定常)… 片側検定

やることは「Δxt\Delta x_txt1x_{t-1} に回帰して、係数の tt 値を見る」だけです。

ところが落とし穴があります。

左:DF統計量のヒストグラムが左に大きくずれており、通常のt分布の曲線とほとんど重なっていない。右:真のφに対する検出力の折れ線が0.9で87.5%、0.95で34.5%、1.0で5%に落ちる

この tt 値は tt 分布に従いません。 通常の tt 分布の5%点(1.65-1.65)を使うと第一種の誤りが 45.7% になり、正しい DF 臨界値 2.87-2.87 を使うと 5.2% に収まります。

モデルの型1% 臨界値5% 臨界値10% 臨界値
定数項なし2.55-2.551.93-1.931.59-1.59
定数項あり(標準)3.50-3.502.87-2.872.57-2.57
定数項+トレンド4.01-4.013.43-3.433.15-3.15
(参考)通常の tt 分布2.35-2.351.65-1.651.29-1.29

n=200n = 200、20000回のシミュレーションで自作した値です。教科書の値(3.46-3.46 / 2.88-2.88 / 2.57-2.57)とほぼ一致しました(1%点は裾なので誤差が大きく、再実行すると 3.42-3.423.50-3.50 の範囲で動きます)。

なぜ tt 分布に従わないのか。 帰無仮説(φ=1\varphi = 1)のもとでは説明変数 xt1x_{t-1} 自体が非定常なので、ρ\rho の推定量が通常の漸近正規性を持ちません。単位根の検定が単位根の影響を受けるという自己言及的な構造です。だから専用の臨界値表が必要になります。

トレンド項を入れると臨界値がさらに左に動く点にも注意が必要です。同じデータでもモデルの型で結論が変わります。

8-2. 検出力の弱さ

DF 検定の最大の弱点です。真の φ\varphi が1に近いとき、「定常である」と正しく判定できる割合を測りました(n=200n = 200)。

真の φ\varphi「定常」と正しく判定できた割合
0.50 / 0.70 / 0.80100.0%
0.9087.5%
0.9534.5%
0.9810.3%
0.997.2%
1.00(帰無仮説が真)5.0%(これは正しい値)

φ=0.95\varphi = 0.95 は定常なのに、3回に2回は「単位根あり」と判定してしまいます。

標本を増やせば改善します。φ=0.95\varphi = 0.95 のとき n=50n = 50 で 6.8%、n=100n = 100 で 13.3%、n=200n = 200 で 34.5%(上の表と同じ条件)、n=500n = 50097.4%n=1000n = 1000 で 100%。

単位根検定は「長い系列」を要求する検定です。日次データなら1年半、月次データなら40年分。第12回の「棄却できないことは帰無仮説が正しいことを意味しない」が、ここでは特に重く効きます。

8-3. ADF 検定:なぜ「拡張」が必要か

DF 検定は「差分がホワイトノイズ」を前提にしています。差分に自己相関が残っていると崩れます。ラグ項 Δxt1,,Δxtp\Delta x_{t-1}, \ldots, \Delta x_{t-p} を加えたものが ADF(Augmented Dickey-Fuller)検定です。

どの場合に必要か調べました(すべて帰無仮説が真なので5%になるべき)。

Δxt\Delta x_t の構造DF(ラグ0)ADF ラグ1ADF ラグ4ADF ラグ8
ホワイトノイズ4.8%4.7%4.8%4.5%
AR(1) φ=0.6\varphi=0.64.7%5.6%5.3%4.7%
AR(1) φ=0.9\varphi=0.914.9%5.7%5.8%6.1%
MA(1) θ=0.5\theta=-0.561.0%24.1%6.0%5.1%
MA(1) θ=0.8\theta=-0.899.8%92.0%36.0%11.3%

負の MA 成分があると DF 検定は壊滅的に壊れます。 θ=0.8\theta = -0.8 では 99.8% の確率で「単位根なし」と誤判定します。ラグを足すと 92.0% → 36.0% → 11.3% と改善しますが、それでも足りません。

そして面白いのは、負の MA 成分は過剰差分で生まれるものだということです(第5節の (1φ)/2-(1-\varphi)/2)。つまり「差分しすぎた系列に単位根検定をかけると誤った答えが返る」という循環があります。ラグ数の選択は AIC で決めるのが標準です。


9. ブログのアクセス数に使えるのか

9-1. データと前処理

自分のブログのアクセス数に応用できるか、これが個人的な動機でした。1年分(365日)の日次PVを現実的な構造で生成しました。週次季節性(週末に3割落ちる)+ゆるい成長+AR(1)の粘り+バズ1回。平均 40.8 PV、最大 421 PV。

6枚のパネル。生PVとlog(PV)の時系列、そして4つの処理のコレログラム。ラグ7の倍数が赤い棒で示され、何もしないと0.456、ダミー変数で0.057、季節差分では−0.415に反転、AR(1)適用後は0.021

まず対数を取ります。 バズのスパイクが圧縮され、変動幅が期間を通じて揃います。PV は「何%増えた」で動くので対数が自然です。変動幅が水準に比例するときは対数を取る、という第17回の不均一分散への対処と同じ発想です。

9-2. 週次季節性の扱い:4つの方法

赤い棒が7の倍数(週次季節性)です。

処理ラグ1ラグ7ラグ14SD
① 何もしない log(PV)\log(\text{PV})+0.650+0.650+0.456+0.456+0.340+0.3400.3185
② 曜日ダミー+トレンド回帰+0.628+0.628+0.057+0.0570.098-0.0980.2364
③ 季節差分 xtxt7x_t - x_{t-7}+0.613+0.6130.415-0.4150.109-0.1090.3269
④ 1階差分0.102-0.102+0.402+0.402+0.376+0.3760.2651
⑤ ②+残差に AR(1) φ=0.63\varphi=0.63+0.062+0.062+0.021+0.0210.039-0.039

①はラグ7に +0.456+0.456 の山。②の曜日ダミーで +0.057+0.057 に消えます。③の季節差分は 0.415-0.415 に反転(過剰差分)。④の1階差分ではラグ7が +0.402+0.402 と残ります。

そして⑤、②の残差に AR(1) を当てるとほぼすべてがゼロと区別できない範囲に収まりました

結論:曜日は「ダミー変数」、残った粘りは「AR(1)」。

log(PVt)=定数+トレンド+曜日ダミー6個+ut,ut=0.63ut1+et\log(\text{PV}_t) = \text{定数} + \text{トレンド} + \text{曜日ダミー6個} + u_t, \quad u_t = 0.63\, u_{t-1} + e_t

なぜ SARIMA の季節差分ではなくダミー変数なのか。 「月曜は高い」は確定的な構造です(曜日は永久に7日周期で確実に来る)。差分は確率的なトレンドを消す道具なので、ここでは道具が合っていません。第5節で見た「トレンド定常 vs 単位根」の区別が、そのまま季節性にも当てはまります。

9-3. 予測させてみる

最後の28日を隠して当てさせました。

左:実際のPVの折れ線と3つの予測の破線。週末に落ちるジグザグを予測が捉えている。右:5手法のMAEの横棒グラフで12.30から6.82まで改善

予測方法MAEMAPEコメント
全期間の平均12.3022.9%ベースライン
直前7日の平均10.2621.0%トレンドは拾うが曜日を潰す
季節ナイーブ(前週の同じ曜日)8.1816.8%季節性を入れるだけで大きく改善
曜日ダミー+トレンド回帰6.9415.4%全期間の情報を使うので更に良い
+残差の AR(1) φ=0.63\varphi=0.636.8215.1%改善はわずか(1.7%)

MAE は Mean Absolute Error(平均絶対誤差)、MAPE は Mean Absolute Percentage Error(平均絶対パーセント誤差)です。

効果の大きさの順番が実務的に重要です。 「季節性を入れる」で 33%-33\%、「回帰にする」で 15%-15\%、「AR(1) を足す」で 1.7%-1.7\%

凝った時系列モデルより、曜日と対数変換の方がはるかに効きます。

AR 部分が効かない理由は、1期先の予測でしか AR の記憶が使えないためです。φ=0.63\varphi = 0.63 なら28日先には 0.632800.63^{28} \approx 0 で消えます。AR / ARIMA は短期予測の道具で、長期予測にはトレンドと季節性しか効きません。

9-4. 正直な結論

この規模のブログでは、予測モデルを作る意味は薄いです(上のデータは日次40PV前後、月1200PV程度の想定。私の実際のブログはもっと少なく月31PVです)。MAPE 15% は「40PVが34〜46PVの間」という程度の精度で、その情報で何かを決められるとは思えません。

時系列解析が効くのは介入の効果測定です。「7月に内部リンクを整えたら、曜日変動と成長トレンドを差し引いた上で有意に増えたか」という問いの形なら、この道具立てがそのまま使えます。第11回で「月31PVではA/Bテストに5.8年かかる」と計算したのと同じ話で、まず流入を増やすのが先という結論はここでも変わりませんでした。


10. 残りの用語(用語と使いどころだけ)

準1級では用語レベルで足りる部分をまとめます。

10-1. Ljung-Box 検定

コレログラムは目で見る道具ですが、ラグ1〜hh の自己相関をまとめて1つの検定にするのが Ljung-Box 検定です。

Q=n(n+2)k=1hrk2nkχ2(h推定したパラメータ数)Q = n(n+2) \sum_{k=1}^{h} \frac{r_k^2}{n-k} \sim \chi^2(h - \text{推定したパラメータ数})

H0H_0 は「ラグ1〜hh の自己相関がすべてゼロ」なので、pp 値が大きいほどモデルが良い第14回の適合度検定と同じ向き)。

検定する系列Q(10)Q(10)自由度pp判定
ホワイトノイズ10.75100.3770OK
AR(1) φ=0.3\varphi=0.331.90100.0004自己相関あり
AR(1) φ=0.7\varphi=0.7229.60100.0000自己相関あり
AR(1) φ=0.7\varphi=0.7 に AR(1) を当てた残差8.2490.5100OK=モデル十分

φ=0.3\varphi = 0.3 という弱い自己相関でも検出できています。使いどころはモデルを当てた後の残差にかけて取り残しを確認する、第17回の残差診断の時系列版です。自由度が hh から推定パラメータ数だけ減る(10 → 9)のは第14回と同じ理屈です。

10-2. AIC と BIC による次数決定

コレログラムの「切れた」判定には主観が入るので、情報量規準を併用します(詳細は第32回)。真の次数を当てられるか測りました。

3つの棒グラフ。AR(2)・AR(1)・ホワイトノイズそれぞれで、AICが真の次数を76%/76%/72%、BICが99%/98%/98%で選ぶ。AICは大きい次数にも票が散る

罰則項思想真の次数を当てた割合
AIC2k2k予測が当たるモデルを選ぶ(真のモデルの存在を仮定しない)72〜76%
BIClog(n)k\log(n) \cdot k真のモデルを当てる(一貫性がある)98〜99%

n=300n = 300 なら log(300)=5.70\log(300) = 5.70 なので、BIC の罰則は AIC の約2.9倍厳しい。だから BIC は節約的なモデルを選び、AIC は大きめの次数に流れます。

AIC が「間違っている」のではなく目的が違います。時系列の次数決定では「少し多めに取っても予測は悪化しにくい」ため AIC が慣例的に使われますが、真の構造を知りたいなら BIC です。

10-3. 共和分

ここまで「単位根同士の回帰は見せかけ」と言ってきましたが、例外があります。

4枚のパネル。左上はxとyと2xが重なる図、左下は残差が±3の帯に収まりDF=−17.18。右上は無関係な2本が離れていく図、右下は残差がランダムウォーク状でDF=−2.14

左の xxyy はどちらも単位根(DF =0.08= 0.080.270.27)ですが、緑の点線 2x2xyy にぴったり重なっています。水準はどんどん動くのに y2xy - 2x のズレは一定幅(SD =1.10= 1.10)に収まります

だから回帰の残差が定常(DF =17.18= -17.18)で、傾き 1.990 は真の関係 2.0 を正しく推定できています。無関係な2本だと差が開き続け(SD =5.43= 5.43)、残差自身がランダムウォークになります(DF =2.14= -2.14)。

共和分(cointegration)=それぞれは単位根だが、ある線形結合が定常になる関係。

直感的には2本が鎖で繋がれている状態です。各自ふらふら歩くが、離れすぎると引き戻される。判定は回帰の残差に DF 検定をかけるだけ(Engle-Granger 法)で、残差が定常なら共和分あり=その回帰は意味があります。

ただし臨界値は通常の DF とは別のものを使います。残差は回帰で最小化された量なので、臨界値がさらに左にずれるのです。n=300n = 300・定数項ありでシミュレーションすると5%点は 3.34-3.34 でした(2.87-2.87 を使うとサイズが 14.1% に膨らみます)。上の例は 17.18-17.182.14-2.14 なのでどちらの基準でも結論は変わりませんが、境界付近では効いてきます。

これが「差分すれば安全」の落とし穴です。 共和分がある場合に両方を差分してしまうと、y2xy \approx 2x という長期の関係が消えます。差分は短期の変化だけを残すので。正しい扱いは誤差修正モデル(ECM)で、短期の差分の動きと長期のズレを両方入れます。例は金利の長短スプレッド、同業2社の株価、為替と物価。

10-4. スペクトル解析

左:ペリオドグラムで周波数1/7に鋭いピーク、2/7に高調波。右:横軸を周期に読み替えると7日に最大のピーク、3.5日に副ピーク

先ほどのブログPVのデータ(バズ除去・トレンド除去後)のペリオドグラムです。周波数 1/71/7 に鋭いピーク=周期7日が一目で分かります(全ピーク中1位)。2/72/7 にあるのは高調波で、3.5日周期の成分が別にあるのではなく「7日周期の波形が正弦波ではない」ことの現れです。

時間領域(ACF/PACF)周波数領域(スペクトル)
横軸ラグ(何期前か)周波数(または周期)
得意なこと次数の決定、モデルの構築周期の発見

互いにフーリエ変換で移り合うので情報量は同じです(ウィナー・ヒンチンの定理)。ACF を変換したものがスペクトル密度。

使いどころは周期が未知のとき。曜日周期のように「7日だ」と分かっているならダミー変数で済みますが、機械の振動や脳波のように「何周期あるか自体を探したい」ときに効きます。なお前処理(トレンド除去)をしないと低周波の山に埋もれて見えません。実際1回失敗しました。

10-5. 状態空間モデル

観測方程式:yt=見えない状態+観測ノイズ\text{観測方程式}: y_t = \text{見えない状態} + \text{観測ノイズ} 状態方程式:状態t=状態t1の関数+システムノイズ\text{状態方程式}: \text{状態}_t = \text{状態}_{t-1} \text{の関数} + \text{システムノイズ}
項目内容
解き方カルマンフィルタ(逐次的に状態を更新する=第2回のベイズ更新の連続版)
ARIMA との関係ARIMA は状態空間モデルの特殊ケースとして書ける(状態空間の方が広い枠組み)
強い場面欠測値がある(そのまま扱える)/係数が時間変化する/複数系列を同時に/トレンド・季節を明示的に分解したい
既習との接続第22回の HMM(隠れマルコフモデル)は状態空間モデルの離散版

HMM を使った経験があるなら、あの隠れ状態が連続値になったものと考えれば構造は同じです。前向き・後ろ向きアルゴリズムに対応するのがカルマンフィルタ・スムーザです。準1級ではこの対応関係と用語までで、計算は問われません。


11. 自己診断で2問間違えた

この回の最後に、自分で理解度を確かめる8問を解きました。結果は 6.5/8(完全正解5問、部分正解3問を 0.5 点ずつで計算)。記録として残します。

「読めば理解できる」状態には達していたのですが、白紙から出すと落ちる箇所がありました。しかも落ちた場所には共通点があって、すべて「対応関係の向き」でした。

間違えた問題1:ACF と PACF の対応を逆にした

:ACF がゆっくり減衰して続き、PACF がラグ2で切れました。どんなモデルですか。

私の答えは MA(1)。正解は AR(2) です。

実測で並べると一目瞭然でした。

ACF ラグ1〜5PACF ラグ1〜5
AR(2) φ=0.5,0.3\varphi = 0.5, 0.3+0.713+0.713 +0.658+0.658 +0.542+0.542 +0.467+0.467 +0.395+0.395続く+0.713+0.713 +0.303+0.303 0.003-0.003 0.002-0.002 0.001-0.001ラグ2で切れる
MA(1) θ=0.7\theta = 0.7+0.472+0.472 +0.002+0.002 0.001-0.001 0.001-0.001 0.002-0.002ラグ1で切れる+0.472+0.472 0.284-0.284 +0.185+0.185 0.125-0.125 +0.084+0.084(続く)

MA(1) だとACF がラグ1で切れてしまい、問題文の「ゆっくり減衰して続く」に反します。

第7節で「道具とモデルの言語」の話まで理解したつもりでいたのに、いざ問われると対応が逆に出ました。頭文字が PACF ↔ AR で交差しているのが原因だと思います。「PACF が切れたら p が決まる」と結びつけるのが確実です。

間違えた問題2:過剰差分という名前が出なかった

:差分を取ったら、ラグ1自己相関が 0.45-0.45 になりました。何が起きましたか。

私の答えは「これだけだとなんとも言えないが、線形+ノイズの式に対して差分を取っている」。方向は合っていますが、「過剰差分」という診断が出ませんでした。

0.45-0.45 という負の自己相関は、差分という操作が作り出したものである可能性が高いです。元が定常 AR(1) だと仮定すれば (1φ)/2=0.45-(1-\varphi)/2 = -0.45 から φ=0.1\varphi = 0.1、つまり元データはほぼホワイトノイズだったと逆算できます。

ただし節5-1で見たようにトレンド定常でも差分すると 0.489-0.489 が出るので、0.45-0.45 という値だけから「AR(1) でほぼ白色」と「トレンド定常」を区別することはできません。どちらにしても差分は不要だったという診断は同じです。

対処は差分を取り消して元に戻し、必要ならトレンド除去に切り替えることです。

惜しかった問題:DF 検定が専用表を要る理由

:Dickey-Fuller 検定で、通常の tt 分布表を使ってはいけないのはなぜですか。

私の答えは「求める対象の変数が自分自身に依存しているため、正しく検出できない」。これは AR 一般の説明で、DF 検定に固有の理由になっていません

正確には「帰無仮説(φ=1\varphi=1)のもとでは説明変数 xt1x_{t-1} 自体が非定常なので、ρ\rho の推定量が漸近正規性を持たず tt 分布に従わない」。単位根の検定が単位根の影響を受ける自己言及構造です。

正解できた問題

  • 非定常な回帰で壊れるのは分子か分母か → 分母(標準誤差)
  • MA(1) の ACF ラグ2 は「ほぼゼロ」か「厳密にゼロ」か → 厳密にゼロ
  • AR(1) φ=0.7\varphi = 0.7 で ACF ラグ2 が 0.49 になる理由0.7×0.70.7 \times 0.7
  • DF 検定で棄却できなかったとき「単位根がある」と結論してよいか → 「単位根がないとは言えない」が正しい

最後の問題は表現まで含めて正解でした。DF 検定は φ=0.95\varphi = 0.95 で検出力 34.5% しかないので、棄却できないのは「単位根がある証拠」ではなく「区別できるほどのデータがない」ことの方が多いのです。

ラグ1自己相関 0.9 の系列は差分すべきか

もう1問、部分正解だったものを挙げます。「差分と直線それぞれの自己相関を計算して比べる」という方針は正しかったのですが、選択肢を2つしか挙げられませんでした。

正しくは3通りあります。

  1. 単位根 → 差分を取る
  2. トレンド定常 → 直線を引く
  3. 定常な AR(1) で φ=0.9\varphi = 0.9何もしないφ\varphi を推定する)

3番目が抜けていました。そして判定手順としては ADF 検定があります。


12. 試験対策:出題されやすい順

優先度項目問われ方
最優先ACF / PACF の読み取りコレログラムの図から次数を答える/どちらが切れるかの対応
最優先定常性・単位根定常性の定義(3条件)/ランダムウォークが非定常な理由/差分の必要性
AR / MA / ARMA の理論 ACFAR(1) の ACF が φk\varphi^k /MA(1) の ACF ラグ1が θ/(1+θ2)\theta/(1+\theta^2)
DF / ADF 検定帰無仮説の向き(ρ=0\rho = 0 が単位根)/片側検定/通常の tt 表を使えない
AR の定常条件AR(1) は φ<1\lvert\varphi\rvert < 1、AR(2) 以上は特性方程式の根が単位円の外
ラグ演算子・ARIMA の表記(1φL)xt=et(1-\varphi L)x_t = e_t の形/(p,d,q)(p,d,q) の意味
Ljung-Box・AIC使いどころと向き(pp 値が大きいと OK)
共和分・スペクトル・状態空間用語の意味と使いどころのみ

13. まとめ

この回で確かめたこと

問い答え
なぜ定常性が必要か定常なら「時間方向にずらす」ことが繰り返し観測の代わりになる。非定常だと時刻ごとに別のルールなので何期集めても同じものの繰り返しにならない
見せかけの回帰の正体「相関が生まれる」のではない(符号は正 50.6% / 負 49.4% のコイン投げで、平均は 0.0008-0.0008)。まず 標準誤差が 6.22倍 過小。ただし β^\hat\beta が正しいのは平均だけで、nn を20倍にしてもSDは 0.63 のまま縮まない(一致性がない)。だから SESE を直すだけでは足りず差分が必要になる
なぜ nn を増やすと悪化するかt\lvert t \rvertn\sqrt{n} で育つ。定常なら neff=n(1φ)/(1+φ)n_{\text{eff}} = n(1-\varphi)/(1+\varphi) で情報の増え方が測れるが、φ=1\varphi=1 は式の適用域外で、実際は V[xˉ]V[\bar{x}]nn に比例して増える。集めるほど悪くなる
正規分布は関係あるかまったく無関係。 ノイズをコイン投げ・t(3)t(3)・一様に変えても棄却率は 75〜77% で同じ。効くのは「累積和にした」構造だけ
n\sqrt{n} の正体nn 個ぶんの独立な情報がある」という主張。V[xi]V[\sum x_i] の共分散項がゼロだから nn で割れた
ss が見落とすもの並び順。 ss は各点から平均までの距離しか測らない(実測で ss が大きい方が区間を外した)
平均と回帰の共通点どちらも加重和で、どちらも共分散項=0 の仮定から SESE を出している。だから同じ理由で壊れる
目に見える形残差の自己相関。非定常の回帰で 0.858、DW比 0.171。第17回のダービン・ワトソン比の極端版
弱定常の定義①平均 ②分散 ③ラグ kk の共分散が時刻によらない。ランダムウォークは①を満たす(非定常=トレンドありではない)
条件③の読み方自己共分散の表を横に読むと一定、縦に読むと φk\varphi^k で減衰。単位根では横が違い縦が減衰しない
φ=1\varphi = 1 の意味落ち着き先の標準偏差 1/1φ21/\sqrt{1-\varphi^2} が発散する点。崖ではなく坂φ=0.5\varphi=0.5 で既に 12.5% 棄却)
「単位根」の由来ラグ演算子で (1φL)xt=et(1-\varphi L)x_t = e_t と書いたときの特性方程式の根が 1。定常条件は根が単位円の外
差分はいつ取るかφ=1\varphi = 1 のときだけ。 φ<1\varphi<1 に使うと (1φ)/2-(1-\varphi)/2 の負の自己相関を作る(過剰差分)
トレンド定常との区別確定的トレンドは直線を引く、確率的トレンド(単位根)は差分。見た目では区別できない(自己相関 0.922 vs 0.943)
AR と MA の違いAR は過去の自分(鎖なので影響が無限に伝わる)、MA は過去のノイズ(箱が2個ずつ重なるだけ)
ACF と PACF の違いACF は回帰の傾き、PACF は回帰の偏回帰係数(間の期を固定する)
なぜ AR で PACF が切れるかACF ラグ2 の 0.49 は 0.0022+0.6999×0.69840.0022 + 0.6999 \times 0.6984遠回りの経路。直接効果はゼロ
層別で見ると全体では傾き 0.489 だが、xt1x_{t-1} を固定した各層は水平(+0.009+0.009+0.023+0.023+0.019+0.019)。シンプソンのパラドックスと同型
なぜ MA で ACF が切れるか共分散は共有ノイズを数える計算なので、箱が重ならないラグで厳密にゼロになる
見分け方の本質道具とモデルの「言語」の一致。 PACF は過去の自分の言葉、ACF はノイズの言葉。一致した側だけ切れる
覚え方ACF が切れたら MA、PACF が切れたら AR。頭文字が逆(PACF ↔ p)
DF 検定の中身Δxt=ρxt1+et\Delta x_t = \rho x_{t-1} + e_tρ=0\rho = 0 を片側検定するだけ
DF が専用表を要る理由帰無仮説のもとで xt1x_{t-1} が非定常なので tt 分布に従わない。tt 表を使うと誤り率 45.7%
DF の弱点検出力。 φ=0.95\varphi = 0.95 で 34.5% しか見抜けない(n=500n=500 なら 97.4%)
ADF が必要な場面差分に負の MA 成分があるとき。θ=0.8\theta = -0.8 で DF は 99.8% 誤判定
共和分個々は単位根だが線形結合が定常。差分すると長期の関係が消えるので ECM を使う
ブログPVのモデル曜日はダミー変数、粘りは AR(1)。 季節差分は過剰(ラグ7が 0.415-0.415 に反転)
予測で効く順季節性 33%-33\% > 回帰化 15%-15\%AR(1) 1.7%-1.7\%。凝ったモデルより曜日と対数変換
AR が長期予測に効かない理由φh\varphi^h で消える(0.632800.63^{28} \approx 0)。AR は短期予測の道具

自分が間違えていたこと

この回で誤解していた点を残します。

  1. 「見せかけの回帰は無関係な2本に相関が生まれる現象」だと思っていた。 違う。符号は正負50%ずつのコイン投げで、傾きは平均としてはゼロ。まず標準誤差の申告が 6.22倍甘い(推定値の側にも別の問題があり、それは項目8)。
  2. 「ホワイトノイズは正規分布だから真ん中に寄る」と考えた。 正規分布は無関係。コイン投げでも一様分布でも同じ結果で、効くのは「累積和」という構造だけ。
  3. φ=1\varphi = 1 なら et\sum e_t だから系列が線形に近くなる」と考えた。 累積和は直線ではない(ete_t の符号がランダムなので折れる)。散布図8組を並べると L字型や2塊など多様で、直線的なのは一部だけ。
  4. 「AR(1) なら前の値との差分を取れば自己相関が消える」と考えた。 差分が必要なのは φ=1\varphi = 1 のときだけ。φ=0.7\varphi = 0.7 は既に定常で、差分すると 0.187-0.187 の負の自己相関を作る。定常な系列の自己相関は消すべき問題ではなく、推定して使う情報。
  5. ACF と PACF の対応を逆にした(自己診断で発覚)。PACF ↔ AR が組。
  6. 負の自己相関を見て「過剰差分」と診断できなかった(自己診断で発覚)。
  7. DF 検定が専用表を要る理由を一般論で答えた(自己診断で発覚)。「帰無仮説のもとで説明変数が非定常」が核心。

以下は記事を書き上げた後の査読で見つかった誤りです。

  1. 「壊れているのは標準誤差だけで推定値は正しい」と書いていた。 平均としては正しいが、β^\hat\beta の標準偏差は nn を20倍にしても 0.63 のまま縮まず、一致推定量ですらない。「SESE を直せば済まない」という節2-7の結論と、まとめの「SESE が過小なだけ」が矛盾していた。
  2. φ0.9\varphi \ge 0.9ss が理論値に届かない理由を「過渡期だから」と説明していた。 バーンインを3000ステップ入れても届かない。真の理由は「窓に収まらない長周期のうねりが標本平均に吸収される」で、これは節2-2の「ss は並び順を見ない」と同じ現象だった。自分の記事の一番いい筋を取り逃していた。
  3. 「90.2倍」と「4.59倍」を同じことの2表現のように書いていた。 前者はホワイトノイズとの比、後者は公式の分母 s2/ns^2/n に対する比で、分母が違う。
  4. MA(1) = AR(\infty) に反転可能性(θ<1\lvert\theta\rvert<1)の条件を書いていなかった。 θ\theta1/θ1/\theta が同じ ACF を与えるという重要な事実も落ちていた。
  5. Engle-Granger の残差 DF 検定に通常の DF 臨界値を当てていた。 残差は回帰で最小化された量なので臨界値がさらに左にずれる(2.87-2.87 を使うとサイズが 14.1%)。
  6. ランダムウォークの分散の表で、時刻ラベルが1つずれていた(配列の添字を時刻として書いたため、理論値 tt に対して表は t+1t+1 の値)。
  7. PV の対数変換を第19回の参照としていたが、正しくは第17回(不均一分散への対処)。

検証に使ったコード

scipy が使えない環境だったので、以下は自作しました。

  • 自己相関関数・偏自己相関関数(Levinson-Durbin の再帰式)
  • Dickey-Fuller 検定・ADF 検定と、その臨界値(20000回のシミュレーションから)
  • Newey-West(HAC)標準誤差
  • Ljung-Box 検定(χ2\chi^2 の上側確率は正則化不完全ガンマ関数を級数と連分数で評価)
  • AIC / BIC による次数選択

χ2\chi^2 分布の上側確率と tt 分布の分位点は、第17回で作った自作モジュールを再利用しました。

なお PACF の実装では、素朴に「次数ごとに重回帰を解く」方法だと標本数が次数によって変わってしまいます。Levinson-Durbin を使うとこの問題が起きません。AIC の計算でも同じ罠を踏んで、最初は AIC の正解率が 0% になりました(次数ごとに標本数が変わって対数尤度が比較できていなかった)。最大次数に合わせて標本を固定したら 72〜76% という妥当な値になりました。


次回

次回は第28章の分割表です。

今回「時間方向に並んだデータ」を扱いましたが、次はカテゴリを2方向に並べたデータが対象になります。第14回で扱った χ2\chi^2 適合度検定が、行と列の2方向に拡張されます。

そして今回の「見かけの関係と直接の関係を分ける」という発想も再登場します。今回は xt1x_{t-1} を固定して xt2x_{t-2} の効果を測りましたが、分割表では第3の変数で層別すると関係が逆転する(シンプソンのパラドックス)という形で現れます。今回の層別の散布図がその予告編になっていました。

この連載の全体像とこれまでの回は統計検定準1級・独学連載のまとめにあります。