時系列データの交差検証(クロスバリデーション)は交差検証とはいえないし、良い方法でもないらしい, という話の補足
先日書いたやつの補足です. zenn.dev と qiita の2箇所投稿していますが, 両者の内容は同一です. 読んで納得したなら, この投稿も読む必要はありません. 以降の文章は, かなり大まかな補足であり, データの分布が i.i.d. を満たさない場合の交差検証法の性質について, 厳密に証明された定理ではない. 上記の投稿で紹介した論文に関して私が考えていたことの補足に過ぎない. 学術論文として認められた内容しか信頼しないというのであれば, 上記の投稿で引用されているものだけを読むとよいだろう.
概要
qiita.com
交差検証はほとんどの機械学習の教科書に載っている. では, 交差検証にはどういう意味があるのか, 答えられるだろうか. 「過学習を抑制する」という回答では, 部分点しかあげられない. 答えは「サンプル外のデータに触れることなく, 汎化性能を推定できる1」になる. 交差検証で計算した誤差は, 一定の条件下では, 汎化誤差の推定として優れた性質を持つことが知られている. つまり, 交差検証法とは作法や儀式ではなく, モデルの汎化性能を推定する, 別の言い方をすると, 未知のデータに対するモデルの誤差の予測手法である. 予測モデルに対して交差検証法で計算したメトリクスもまた一種の予測であるので, 交差検証法も予測モデルの1つであると言える. よって, 交差検証法で出した値は無条件で信じて良いものではなく, この手法が適切に動作するのかどうかの条件にも注意しなければならない. その条件には, i.i.d. の仮定であること, K分割交差検証法であれば, データの分割をランダムに行うこと, といったものがある. 時系列データの多くは i.i.d. ではないため, 交差検証のこのような性質が機能しない可能性がある. そのため, 「交差検証 時系列データ」とかで検索すると, 冒頭で挙げたような, 1期先予測を繰り返して得られた誤差で評価する, という代替的な方法か, それに近いものを紹介しているページが多数見つかる. その1つである Hyndman らのオンライン教材では, この方法を time series cross validation (tsCV) と呼んでいる.
はじめに

しかし, この方法は本来の交差検証法にあるランダム性も, データの排反な分割もなく, 交差検証とはかけ離れているように見える. にも関わらず, なぜこの方法が正当化できるのか, 誰も答えていない (少なくとも, 類似の方法を紹介している誰かのブログなど, 目に付くところでは誰も根拠を引用していない). すくなくともこれは, クロスバリデーションではなく「1時点先予測誤差のスライド平均」というべきものだろう.
という問題提起をして, その回答になりそうな論文の話を書いた, というのが前回の内容だった. だが, なぜそうなるのか, について, 非定常な時系列とはなんなのかを理解していない人は 読んだ人間はたぶん納得できないと思うので補足を書く. 非定常な時系列データを扱う可能性のある分野のまともな教科書ならふつうは書いてあるはずだが, あまり言及されない. そのため, 既存の教科書と同じことを書くのはナンセンスなのと, 厳密に書く暇がないため, 補足としてヒントだけ書いておく.
Hyndman の言及
Hyndmanは自身の教科書ではtsCVに触れているが, K分割交差検証法を適用する方法にはなぜか触れていない. 彼のサイトの別のページでは, この方法と, 自己回帰モデルに対するK分割交差検証の両方に言及している. 彼がこの2つが異なる方法だと理解していないことはありえないが, この違いについて本人は詳しく触れていない. これは私の憶測になるが, K分割交差検証法が理論通り良い結果を出すには, 自己回帰のラグを正確に特定するなど, それなりに強い仮定が必要である. 彼の教科書の読者層には, そこまで高度な知識を想定していないため, より操作のわかりやすいtsCVをすすめているのかもしれない. しかし, このページでもtsCVの理論的根拠には触れておらず, 現に Cerqueira らの実験では, ブロック交差検証法のほうが良い結果を示す事が多かった. 検索してでてくる他のページで紹介される時系列データの交差検証法とされる方法も, このtsCVと類似したものが多いが, やはり「未来の予測をするのに未来のデータを参照するようなことを回避するため」以上の理由を説明していない.
tsCVとK分割交差検証法の違い
いちおう, 両者の違いを明確にしておく. 時系列データを として, 予測モデルを
とする.
は,
時点から過去
時点前までの
で,
である.
はパラメータである. よって, この予測モデル
は, パラメータ
と,
時点から過去
時点前までの値がわかれば予測値を計算でき, tsCV を計算するには, 訓練データには
かそれ以上の長さの数列が必要になる.[^] そのため, tsCVで繰り返し計算できるのは
回になる. 予測モデル
に対してtsCVで平均二乗誤差 (MSE) を計算した際のtsCV誤差
は以下のように表せる.
ここで, は
時点までのデータ
で予測モデル
を学習した場合のパラメータである.
ここで, の学習に使えるのは
期間だけである. よって, ちょうど
の場合は, 実際にはうまく学習できない可能性がある.
K分割交差検証法の場合も, 同じ条件の予測モデル を考えることで, 扱いが簡単になる. ただし, この方法を適用するには, このデータの自己相関が最大で
時点前までしかないと想定している. このとき, 時系列データ
を
に置き換える. よって
を1観測点とする
は, あたかも i.i.d. であるかのようなデータとみなせる. 厳密にはi.i.d. ではないが, まだデータの独立の性質に関する定義を何も導入していないので, 類推的にこう表現する. 今のところは, i.i.d. なクロスセクションデータであるかのように扱っても問題ないし, データをシャッフルすると実際には計算不可能なモデルができあがったりしない, という程度の意味である.
よって, データセットを の大きさのデータに変換すると (Bergmeir らの論文では, この変換を embedding と呼んでいる), 自己相関があるからデータをシャッフルできない, という問題は気にする必要がなくなるから, Leave-one-out 交差検証を適用できる. つまり,
の
時点以外の全てのデータで訓練し, 残った
との予測誤差を計算する, という操作を
回繰り返し, 得られた
個の誤差の平均がLOOCV誤差となる.
ここでの は,
時点以外のデータで
を学習した場合のパラメータである. つまり,
となる. 元のデータ と比較すると,
では LOO CV だったものが,
では
期間の連続したデータ
で誤差を評価することになるが , 対応する訓練データは
と重複するところもあるため, 厳密に交差検証法と同じではない. だが, データをシャッフルでき, tsCVと異なり反復計算ごとに訓練データの大きさが変わったりすることはない.

LOOCV も tsCV も誤差の平均を取るときの反復計算の回数は同じだが, 元のデータ で見れば,
を過去の値も未来の値も使用して学習できるが, 一定の仮定をおくことでそのような計算に問題がなくなり, tsCVよりも学習に使えるデータが増える. なお, このような考え方は, 自己回帰モデル (AR) のような, 比較的単純な構造のモデルを暗に想定している. ARモデルであれば, AR(p) に対して大きさが
の学習データしかなくとも最尤推定できる.
がより複雑なモデルであれば, 特に tsCV では難しいことがある.
i.i.d. とは何なのか
数列で表せるものをデータとする. データ を以下のように表す.
実際にデータとして取得できるのは, 個の確率変数の実現値である. よって, これらにはなんらかの分布2に従うはずである. これは
次元の同時分布であり, その確率は
変数関数
で表せる.
は数十から数千, あるいは数百万, 数億と, きりがないから, そんな複雑な関数を扱うのは難しい. そこで, 機械学習ではしばしばデータが「独立かつ同一の分布に従う (i.i.d.)」 という仮定を利用している. 各変数が独立していれば, この
次元の分布は
個の
変数の関数の積で表せる.
さらに, この仮定では, 加えて各変数の分布は同一だから, 個の関数はすべて同じということになる.
対数を取れば, の和になる. これは対数尤度, つまりよく見かける最尤推定をするときの目的関数と同じである. なお, 後述するように最尤推定そのものは i.i.d. の仮定を要求しない. 機械学習でも, 教師データと学習した予測関数の差を表すなんらかの損失関数を定義して最適化する. その損失関数もデータの1点ごとの和で表現されることが多い.
i.i.d. の何が良いか
i.i.d. の仮定では, 上記のように関数がシンプルになる以上の意味がある. さらに, 期待値が存在するか, 分散が有限であるかとかの, 追加のいくつかの簡単な仮定のを満たさせば, 標本平均が正規分布に漸近する. 条件の範囲では, データの各観測点がどのような分布であっても平均が正規分布に収束するため, 強力な定理である. 機械学習の教科書では CLT はあまり触れられないが, 確率的な事象を扱う以上, かならずどこかで影響する. 実際, 交差検証法では複数の fold で計算した誤差を平均している.
定常性
しかし, 時系列データではほとんどの場合, i.i.d. の仮定を満たさない. 例えば, 1時点前と自己相関があるなら, 上記のように というふうに1点ごとの積に分解できない. そこで, 交差検証が時系列のリークの問題を解消したとしても, 交差検証が機能する条件を満たしていないのではないか, と私が考えていた理由である.
i.i.d. よりもゆるい仮定が定常性である. 定常性の定義には複数あるが, 単に「定常性」というと一次定常性または強定常性を意味する事が多い (たぶん). 定常性とは, 任意の2以上の長さの時点の組み合わせに対して, その同時確率が同一になる, という仮定である. たとえば, データが定常的なら, 連続した3時点に対しては以下が成り立つ.
i.i.d. の仮定を満たすデータなら, この同時確率は常に同じ確率関数の3乗になるから, 必ず強定常的でもある. 逆に, 強定常的なデータは, 長さ1の場合は保証しないため, になるとは限らないため, i.i.d. になるとは限らない. 強定常性過程のデータの分布は, 相対的な間隔にのみ依存し,
を始点とする絶対的な時間の推移には依存しない.
よって, まったく厳密ではないが, 類推的な言い方をすると, この例では という3点を1つのベクトル
とすれば, ベクトル列
は
となり, 擬似的な i.i.d. なデータとみなせるともいえる.
ところで, i.i.d. の説明で, 最尤推定は1点ごとの確率の積を目的関数にすると書いた. i.i.d. ではないが定常的なデータを扱うときも最尤推定は可能だ. 例えば, AR(1), つまり 1階の自己回帰モデルならば, という, ある時点と1時点前の同時分布の積で表現できる. データが強定常的で, なおかつエルゴード性を持ちマルチンゲール差分であるならば, i.i.d. の場合のように, 標本平均が収束し, 大数の法則や中心極限定理と同様の性質を持つ3ことが知られている.
しかし, 時系列データでよく見られる自己回帰 (AR) 過程のデータは, 強定常性をも満たさない. そのため, 強定常性をさらに緩めた弱定常性を導入する. 弱定常性は, 二次定常性とか共分散定常性ともよばれ, 強定常のように分布を制約するのではなく, 期待値と(自己)共分散に対して一定の仮定をおいたものである.
弱定常では分布は必ずしも積に分解できないが, 自己共分散が時間に依存せず, 間隔にのみ依存する. そして, 安定的なAR過程は弱定常を満たす. 弱定常にさらにいくつかの追加の仮定を置くと, やはり中心極限定理が成り立つ.
最後に, いわゆるランダムウォークについて言及する. 弱定常性も満たさないし, そのまま標本平均をとっても正規分布にならないことが証明されている. こういったi.i.d. を満たさないデータに対して中心極限定理が成り立つにはどのような仮定が必要かという話が, 以前書いた話 (互いに独立でなくてもできる中心極限定理と, そのデモ (Gordin's CLT/Donsker定理) - ill-identified diary互いに独立でなくてもできる中心極限定理と, そのデモ) である.おそらく, この辺が時系列データで交差検証法がうまく機能しない場合の原因/対処法を説明できるのではないか.
結論
定常性と漸近理論
以前書いたように, 中心極限定理や大数の法則は, i.i.d. の仮定をゆるめ, 定常性に拡張し, なおかついくつかの追加の仮定を課せば成り立つと知られている. さらに, 強定常性を緩めた弱定常性であっても, やはり中心極限定理や大数の法則に対応する性質があることも分かっている. そのため, 従来 i.i.d. を前提としていた方法が時系列データでも使えるかどうかについて, この「いくつかの追加の仮定」がなんであるかの理論的解明が進めば, より容易に判断できるだろう. その1つが, 前回紹介した Bergmeir と Hyndman の研究である. 彼らの研究では, 強定常な過程やマルチンゲール差分の仮定から, 交差検証誤差が真値に確率収束するという定理を示している. そしてこれ以前にも, 観測点間で相関がある場合でも交差検証法が使用できるかという理論研究は存在する.
しかし, 普段目にする資料や教科書は少ない. 例えば, 和書で, なおかつ非定常データも扱う時系列分析の本で最も平易なものは, 沖本 (2010) 『経済・ファイナンスデータの計量時系列分析』であり, 弱定常性・強定常性の定義が書かれているが, それより先の漸近理論との関係までは詳しく書いていない. それ以外だと, 去年出た 清水 (2023) 『統計学への漸近論,その先は』 (あるいは, 同著者による『統計学への確率論, その先へ』もあわせて読むと良いかもしれない)とかになるだろうか. 統計学の和書では, 漸近理論はたいてい, Lindeberg-Lévy条件の中心極限定理と, チェビショフ不等式から導出できる大数の弱法則くらいしか言及しない事が多いが, 後者の和書は統計学の理論に利用できる, よりさまざまな定理に言及している. こちらは確率を含む数式の多くを測度論的に記述しているため, 沖本に比べると「平易」ではないが, これまでは分厚い大学院レベルの洋書テキストを複数読まないとわからなかったことが, まとめられている. こういう範囲をカバーしている和書は今まであまりなかった.
実用性との関連
時系列データに対して交差検証法が適切なのかどうかは, 想像以上に影響する範囲が広いと考えている. 交差検証法が適切なのかどうかは, おそらく i.i.d. の仮定に強く依存している. 実用上扱うデータで, 「時系列」と銘打ってないものでも, 一瞬ですべてのデータを取得しているとは限らない. 数日か1ヶ月かをかけて取得したデータを, 擬似的に横断面データとして扱わざるを得ない場面もあるだろう. そのような場合でも, 取得時刻によってなんらかの自己相関がありえるため, 時系列予測として扱わなくても, データの i.i.d. の仮定が崩れる可能性がある. もちろん, 時間的な相関以外の理由で, 観測点間の相関が生じることもあるだろう. 例えば, 直裁な例では, 空間的な相関が考えられる.
それから, 冒頭の記事では, tsCVがあまり良い方法ではない可能性には触れたが, かといってより優れた結果を見せたブロック交差検証法や繰り返しホールドアウト法も, 常に最適な方法とは限らない. よって, 結局どうすればいいのかという問いへの完全な回答にはなっていない. 今のところは (使える条件下では) 情報量基準を使えばいいのではないか, くらいに考えている. 予測精度を良くするのが目的とすれば, 昔からある時系列予測モデルの多くはAICを利用できるはずだ.