« 読了: Jamieson & Bass (1989) 購入意向で売上を予測する上手い方法 | メイン | 引っ越しました »
2020年4月17日 (金)
Tashman, L.J. (2000) Out-of-sample tests of forecasting accuracy: an anlysis and review. International Journal of Forecasting, 16, 437-450.
仕事の都合で読んだ奴。時系列予測の交差検証をどうやるかという話。
2000年の論文というと、結構最近のだなと感じてしまうのだけれど、これは私の感覚が狂っているからで(平成生まれの子ってせいぜいまだ中学生くらいまでだろうという気がしませんか?)、考えてみればこれって20年前の論文なんですね... やれやれ...
1. イントロダクション
[略]
2. in-sample評価 vs. out-of-sample評価
in-sampleの誤差は予測誤差を過小評価しやすい。一期先予測を繰り返して補外するタイプの予測手法(指数平滑化とか)ならなおさらである。また、in-sample適合で選択した手法はpost-sampleの最良予測でない。
post-sample予測精度を確かめるひとつの方法は待つことだが、さすがに現実的でないので、ふつうはホールドアウトを使う。つまりfit期間とtest期間をわけるわけである。
3. fixed-origin手続き vs. rolling-origin手続き
fit期間の最後の期$T$をforecasting originという。そこから予測したい期までの期間をlead timeとかforecasting horizonという。test期間を$N$とする。つまり最長lead timeは$N$期先予測である。
$T$に立って$T+1$から$T+N$を予測するのをfixed-origin評価という。予測実績を得るためには長いtest期間が必要になるし、originをどこにとったかに影響されるし、lead timeを通じた誤差を平均すると短期予測誤差と長期予測誤差を混ぜちゃうことになる。
これに対して、originをどんどん更新していくやり方をrolling-origin評価という。たとえば$N=4$だったら、まず$T$に立って4つの予測値を得て、次に$T+1$に立って3つの予測値を得て... 計10個の予測値を得る。[あれ?ちょっと混乱しちゃったのでメモしておくけど、たとえば$T+1$に立つときは時点$T+1$の実現値を参照するってことだよね? つまりホールドアウトしたテスト期間についてもこっそり実現値を使うってことであってるかな?]
rolling-origin評価の場合、各lead timeごとの正確性を評価できる。さらに、あるlead timeについて予測の経験分布を得ることができる。
4. out-of-sample評価を実装する際の諸問題
- 一番大事なのは、fit期間とtest期間をどうわけるかである。まず、最長で何期先予測が必要かを考慮する必要がある。$H$期先予測まで必要なら$N$はそれ以上でないといけない。さらに、$H$期先予測が最低いくつほしいか($M$)を考える。$N$は$H+M-1$以上でないといけない。分布が欲しければ$N$をもっと長くとらないといけない。
- originをupdateするとfitするデータ点が増えるが、そのたびに予測式も変える(recalibration)ほうがよい。回帰モデルの場合でいえば、recalibrationのないupdateというのはfixed-origin評価と同じことになる。[ああそうか。recalibrationなしというのは、パラメータを固定して学習データ点だけ増やすことを意味しているわけで、単純な回帰モデルの場合はoriginを$T$から$T+1$に移動しても$T+2$の予測値は変わらないが、ARMAモデルだとちょっと変わるね]
- rolling-originデザインでは特定のoriginを選択したことによる影響を取り除ける。ここで大事なのは、はずれ値への敏感性は下がったが、ビジネスサイクルのフェイズへの敏感性は下がってないということだ。test期間はビジネスサイクルの特定の期間だけを反映しているかもしれない。それがいやなら、test期間を複数設けてそれぞれについて誤差を評価すると良い。
- originをupdateするたびに古い時点をひとつ捨てるという手もある(rolling windowsとかrolling sampleという)。ふつうはその必要はない。たいていの時系列手法は遠い過去のデータの影響をあまり受けないから。
5. sliding simulations
手法の選択と評価にrolling-originデザインを使うというアイデアもある。sliding simulationとかrolling horizonという。
時系列をまず前半(fit用)と後半(test用, $N$個)にわける。で、前半をさらに、in-sample fit期間の$T$個とpost-sample fit期間の$P$個にわける。
[この段落よくわかんないので逐語訳] sliding simulationは、検討している手法のそれぞれについての、rolling out-of-sample評価のペアを伴う。第一の評価では、スムージング・ウェイトをpost-sample fit期間へと最適化し、それぞれのlead時間について最良の手法を選ぶ。第二の評価はテスト集合に対する評価で、この手法によって得られた予測の正確性を評価するという伝統的な目的のために行う。[えええ? 予測手法AとBがあるとするじゃないですか。最初の$T$期でそれぞれのパラメータを推定しますわね。次の$P$期でそれぞれの予測性能を評価し、良かったほうを選ぶ。最後の$N$期で選んだほうの予測性能を評価する。次に、最初の$T+1$期で推定、次の$P$期で選択、最後の$N-1$期で評価。という風に繰り返すのだろうか。ってことは、leadごとに手法を変えるってこと?]
[実証研究の紹介... Makridakis(1990 Mgmt.Sci.), Fildes(1989 Mgmt.Sci.), Weiss & Anderson (1984 JRSS)というのが挙がっている。この話、この論文であれこれ考えてないで、Makridakisの本とかを調べたほうが早そうだな。よってメモは省略]
6. 複数の時系列: 予測コンペティション
[この節、M-competiton以降の一連の予測コンペティションの話を中心にして書かれているんだけど、いま関心ないのでそれらについてはメモを省略し、面白い部分だけメモする]
単一時系列でわざわざrolling originsを使うのは、それぞれのlead時間について十分な予測を得るため(adequacy)、そして特定の出来事なりビジネスフェイズなりへの誤差指標の感度を下げるため(deviersity)、である。
時系列が複数ある場合、adequacyを得るためには、なんらかの特性において等質なcomponent seriesを選ぶ必要がある。またdiversityを得るためには、性質においてもカレンダー時間においても異質な時系列をたくさん集める必要がある。こういう立場では、originは固定し、テスト期間を単一にすることが多い。
いっぽう、特性のタイプの時系列(例えば産業別の年次売上数量)をうまく補外できること(selectivity)を主目的とすることもある。この場合は、時系列はそんなにたくさん集めず、diversityのためにはrolling originsを使いテスト期間を複数にすることが多い。[...ちょっと飛ばして...]
複数の時系列を使う場合、長さやカレンダー時間は異なっていてよいが、test期間の長さはふつう揃える。予測誤差統計量は異なる時系列を通じて平均したり、異なるlead時間を通じて平均したり、両方を通じて平均したりする。
予測誤差統計量の選び方については、Armstrong & Collopy (1992 Int.J.Forecasting), Fildes(1992, Int.J.Forecasting), Ahlburg et al. (1992 Int.J.Forecasting)を参照せよ。
異なる時系列を通じて平均する場合は、スケール依存な指標(RMSEとかMADとか)は避け、スケール独立な指標(APEとか)を使うべし。ただし、元の値が0に近いことがあるときパーセント誤差はすごく歪む。そういうときはMAPEよりAPEの中央値がおすすめ。symmetric MAPEというのもあるよ。volatalityが変動するときはさらに工夫が必要で...[中略。まあ必要になったら調べよう]
異なるlead時間を通じて平均する場合、ないし時系列とlead時間の両方を通じて平均する場合、通常は単純に足し上げるが(短いleadに重みがつくことになる)、個々のlead時間ごとにMAPEをとったうえでlead時間を通じて(重みつき)平均を出してもよい。
ところで、originによって(ないしカレンダー時間によって)モデルも変えるべきだ、変えるべきだという可能性もある[...]。
手法の予測の正確性についてわかったとして、ではどうやって手法を選ぶか。自動で選ぶという提案もあって[...]。
最近では時系列の階層構造を考慮するという試みもある。Bunn & Vassilopulis(1993 Int.J.Forecasting)をみよ。今後の課題である。[短い説明なのでわからんが、階層時系列回帰をイメージすればいいのだろうか]
7. 予測ソフトウェアにおけるout-of-sample評価
[略]
8. サマリー
[略]
...細かいところに深入りしない広く浅く型のレビューなので、ちょっとストレス貯まったが、ま、勉強になりましたですー。
論文:データ解析(2018-) - 読了: Tashman (2000) 時系列予測の交差検証戦略