Dataikuで時系列予測モデルを構築すると、結果画面にMASE・MAPE・sMAPE・MAE・MSE・RMSE・MAQL・MWQL・MSIS・NDという10個のメトリクスが表示されます。本記事では、これらすべてを「一言で言うと何か」「どう計算するのか」「どんな場面で使うべきか」「注意点は何か」の4つの観点で、図解つきで解説しています。
はじめに:正直、全部わかってる人いますか?
Dataikuで時系列予測モデルを作り、いざ結果画面を開くと……
MASE、MAPE、sMAPE、MAE、MSE、RMSE、MAQL、MWQL、MSIS、ND
ズラッと並ぶメトリクスの山。
「MAEとRMSEはなんとなくわかるけど、MASEって何?」 「MWQLとMAQLって何が違うの?」 「MSISに至っては初めて見た……」
そう思ったのは、きっと私だけではないはずです。
Dataikuは非常に強力なAutoMLプラットフォームで、時系列予測もVisual MLから数クリックで構築できます。しかし、モデルの良し悪しを判断するための評価指標(メトリクス)の意味がわからなければ、正しいモデルを選ぶことができません。
実際、Dataikuの公式ドキュメントではこれらのメトリクスが一覧表で掲載されていますが、各指標の「直感的な意味」や「どんな場面で使うべきか」までは詳しく説明されていません。
そこで本記事では、Dataikuの時系列予測(Time Series Forecasting)で表示される10個のメトリクスすべてを、数式が苦手な方でもわかるように、比喩や具体例を交えて解説します。
対象読者
- Dataikuで時系列予測を始めたばかりの方
- 評価指標の意味をなんとなくスルーしてきた方
- 上司や関係者に「このモデルって良いの?」と聞かれて困った経験がある方
そもそも「メトリクス」とは何か
時系列予測におけるメトリクスとは、「モデルの予測がどれくらい実績からズレたか」を定量的に測る物差しです。
Dataikuでは、モデル訓練後の結果画面(Model Report)の「Performance: Metrics」セクションに各指標がまとめて表示されます。複数の時系列がある場合は全系列の集約値が表示され、K-Fold cross-testを有効にしている場合は各foldの平均値となります。
ここで重要なのは、「万能な指標」は存在しないということです。業務要件に応じて適切な指標を選ぶ必要があり、実務では複数の指標を組み合わせて評価するのが一般的です。
では、1つずつ見ていきましょう。
1. MASE(Mean Absolute Scaled Error)
一言で言うと: 「前回の値をそのまま使うだけ」のナイーブ予測と比べて、あなたのモデルがどれくらい優秀かを測る指標。
どう計算するの?イメージとしては「あなたのモデルの誤差 ÷ ナイーブ予測の誤差」です。ナイーブ予測とは「前の時点の値をそのまま次の予測として使う」という最もシンプルな方法のことです。つまり「モデルのMAE ÷ ナイーブのMAE」という比率になります。
読み方MASEが1より小さければ、モデルがナイーブ予測より優秀だということなので合格ラインです。MASEがちょうど1なら、ナイーブ予測と同じ精度しか出ていないのでモデルを作った意味がありません。そしてMASEが1を超えてしまったら、前回値をそのまま使うだけのナイーブ予測にすら負けている状態なので、モデルの見直しが必要です。
なぜ便利?MASEの最大の強みはスケール(単位)に依存しないこと。売上(万円単位)と気温(℃単位)のように全く異なるスケールの系列でも、MASEなら公平に比較できます。
Dataikuでもモデルの特徴量重要度(Permutation Feature Importance)の計算にMASEが使われており、Dataikuが「基準メトリクス」として重視していることがうかがえます。
こんな場面で使おう- 複数のスケールが異なる時系列を横並びで比較したいとき
- 「そもそもこのモデル、作る意味あった?」を確認したいとき
2. MAPE(Mean Absolute Percentage Error)
一言で言うと: 誤差を「何パーセントズレたか」で表す、最も直感的な指標。
どう計算するの?各時点の「|実績 − 予測| ÷ |実績|」を計算し、それを平均して100をかけたものです。
例: 実績100個、予測90個 → |100−90| ÷ 100 = 10% → 「10%外した」
⚠️ 最大の注意点:ゼロ割り問題実績値が0のとき、0で割り算が発生して計算不能(undefined)になります。
これはDataikuの訓練結果画面でも警告として表示されることがあります。「MAPEが不安定」という警告が出たら、データに0が多く含まれていないかを確認してください。たとえば、売れない日がある商品の日次販売データなどは典型的にこの問題が起きます。
こんな場面で使おう- 実績値が0にならないデータ(毎日必ず売れる商品の売上など)
- 「平均で何%ズレるか」を経営層にわかりやすく伝えたいとき
- 間欠需要(売上0が頻繁に発生する)データ → MASEやMAEを使うこと
3. Symmetric MAPE(sMAPE)
一言で言うと: MAPEの改良版。過大予測と過小予測を同じ重みで評価する。
MAPEの何が問題だったの?MAPEは分母が「実績値だけ」のため、実績が小さいとき誤差が異常に大きく見える偏りがありました。たとえば、実績10に対して予測20だとMAPEは100%ですが、実績20に対して予測10でもMAPEは50%。同じ10のズレなのに評価が変わってしまいます。
sMAPEは分母を「(|実績| + |予測|) の平均」にすることで、この非対称性を緩和します。天秤で例えると、MAPEは片側だけに重りを載せた傾いた天秤、sMAPEは両側に重りを載せた水平な天秤です。
ただし、実績と予測が両方0のときは依然として計算不能になる点は注意が必要です。
こんな場面で使おう- MAPEを使いたいが、予測が上にも下にもブレるデータで公平に評価したいとき
4. MAE(Mean Absolute Error)
一言で言うと: 誤差の絶対値の平均。「平均でどれくらい外すか」をそのまま表す最もシンプルな指標。
どう計算するの?各時点の「|実績 − 予測|」を合計し、データ点数で割るだけです。
例: 4日間の誤差が3, 5, 2, 4個だった場合 → MAE = (3+5+2+4) ÷ 4 = 3.5個
正の誤差も負の誤差も絶対値にするので打ち消し合わず、純粋なズレの大きさだけが残ります。
なぜ便利?- 単位が元データと同じ(個、円、℃…)なので、業務担当者にも直感的に伝わる
- 「このモデル、平均で50個くらい外す」のように自然言語で説明できる
- 外れ値(大外し)に引っ張られにくい
- 報告書やダッシュボードで「平均的な誤差の大きさ」をわかりやすく伝えたいとき
- 外れ値に過敏に反応してほしくないとき
5. MSE(Mean Squared Error)
一言で言うと: 誤差を二乗して平均。大きく外した予測ほど厳しく罰する指標。
なぜ「二乗」するの?誤差を二乗することで、大きなズレに対するペナルティが急激に増えます。
誤差が2なら二乗後は4、誤差が5なら25、誤差が10なら100。誤差が2→10(5倍)になるだけで、ペナルティは4→100(25倍)に跳ね上がります。つまり「たまに大外しするモデル」に対して非常に厳しい評価になります。
【図解:小・中・大のズレでペナルティバーが急拡大する図を参照】
誤差が2→10(5倍)になるだけで、ペナルティは4→100(25倍)に跳ね上がります。つまり「たまに大外しするモデル」に対して非常に厳しい評価になります。
注意点単位が「元の単位の二乗」になります(例:個²、円²)。直感的に読みにくいため、RMSEと併用するのが一般的です。
こんな場面で使おう- 欠品や過剰在庫など「たまの大外し」が致命的な業務でモデルを選定するとき
- 機械学習の最適化の損失関数として内部的に利用するとき
6. RMSE(Root Mean Squared Error)
一言で言うと: MSEの平方根。大外しを罰する性質を持ちつつ、元の単位で読める。
MSEとの関係RMSE = √MSE です。MSE = 900なら RMSE = 30。単位が「個²」から「個」に戻ります。つまり、MSEの「単位がわかりにくい」という弱点を√(ルート)をかけるだけで解決した指標です。大きな誤差を重く罰する性質はMSEと同じです。
MAEとの使い分けMAEとRMSEをセットで見ると面白いことがわかります。
- RMSE ≒ MAE → 誤差が比較的均一(外れ値が少ない)
- RMSE ≫ MAE → 一部に大きな外れ値がある
数学的には常に RMSE ≧ MAE が成り立ちます。等号が成り立つのは「全ての誤差が同じ大きさ」のときだけです。誤差のバラつきが大きいほど両者の差が開くので、この差が「外れ値の影響度」のバロメーターになります。
こんな場面で使おう- MSEと同じ「大外しに厳しい」評価をしつつ、元の単位で報告したいとき
- MAEと並べて「外れ値の有無」を診断したいとき
7. MAQL(Mean Absolute Quantile Loss)
一言で言うと: 各分位点(quantile)ごとの誤差を平均した、「幅のある予測」の精度指標。
そもそも「quantile予測」って何?通常の予測は「明日の売上は100個です」というピンポイント予測(点予測)です。一方、quantile予測は「明日の売上は80〜120個の範囲に90%の確率で入ります」のように、予測区間(幅)を出すものです。
天気予報で「明日の気温は15℃〜25℃」と言うのと同じイメージです。
Dataikuでは、モデル設定画面でquantile(分位点)を指定でき、たとえば10%点・50%点・90%点の予測を出力させることができます。
MAQLが測るもの各分位点(10%、50%、90%…)それぞれで「実績とどれくらいズレたか」を計算し、全quantileを平均したものがMAQLです。
ポイントは、quantile lossでは「実績が予測を上回ったか下回ったか」で重みが変わるという点です。たとえば90%点の予測なら「下回った(=過大予測)」ときより「上回った(=過小予測)」ときのペナルティが大きくなります。
Dataikuの集約方法としては、複数系列がある場合「まず各quantile lossを系列間で平均し、次にquantile間で平均する」という二段階集約になっています。
こんな場面で使おう- 需要予測で「最低〜最高の幅」を出すとき、その幅の精度を評価したいとき
- 点予測だけでなく予測の不確実性も評価に含めたいとき
8. MWQL(Mean Weighted Quantile Loss)
一言で言うと: MAQLをターゲット(実績値)の大きさで割って正規化した指標。
MAQLとの違いMAQLは絶対的な誤差なので、売上100万の大型店舗と売上100の小型店舗では当然数字の大きさが変わります。これではスケールの異なる系列を公平に比較できません。
MWQLはMAQLを「実績値の絶対値合計」で割ることで、ターゲットの大きさを吸収します。Dataikuの公式ドキュメントでもこの二段階集約のうえでさらにターゲット絶対値合計で割る定義が記載されています。
イメージ:
- 小さい店:MAQL = 5、売上合計 = 100 → MWQL = 0.05
- 大きい店:MAQL = 500、売上合計 = 1,000,000 → MWQL = 0.0005
- → 大きい店の方が実は精度が高い!
- 売上規模が全く違う商品群のquantile予測を横並びで比較したいとき
9. MSIS(Mean Scaled Interval Score)
一言で言うと: 予測区間の「狭さ」と「当たり具合」を同時に評価する指標。
良い予測区間とは?「明日の売上は0個〜10,000個です」と言えば、ほぼ確実に当たりますが、意味がありません。逆に「明日の売上は100個〜102個です」と言って外れたら大問題です。
MSISは以下の2つを同時に評価します。
- 区間が狭いほど良いスコア → 具体的で使える予測
- 実績が区間から外れたらペナルティ大 → 外すなら覚悟しろ
つまり「狭くて当たる予測区間」が最高スコアになります。
具体的には、各時点で「予測区間の幅」をベースに、実績が区間の外に出た場合はその距離に応じた大きなペナルティが加算されます。そしてMASEと同様にナイーブ予測の誤差でスケーリングされるため、異なる系列間でも比較可能です。
こんな場面で使おう- 安全在庫の設定など「予測の幅」の信頼性が業務上重要なとき
- 予測区間が適切に狭く設定されているかをチェックしたいとき
10. ND(Normalized Deviation)
一言で言うと: 全系列の絶対誤差合計 ÷ ターゲット絶対値合計。全体を一発で「何%ズレたか」で見る指標。
具体例Dataikuでは「全系列の|実績−予測|の合計 ÷ 全系列の|実績|の合計」として定義・集約されています。NDが0.10なら、全体で見ると実績規模に対して10%くらいズレたということです。NDが0.05なら全体で5%のズレ、0.20なら20%のズレと、直感的に読めます。
【図解:全体の誤差合計 ÷ 実績合計 の計算フロー + MAPEとの違いを参照】
MAPEとの違い一見似ていますが、計算方法が異なります。MAPEは各時点で「%」を計算してから全体を平均する方式です。そのため、1つでも実績が0の時点があると計算不能になります。一方NDは「誤差の合計」÷「実績の合計」という合計同士の割り算です。合計同士で割るため、一部に0が含まれていても影響を受けにくいのが最大の特徴です。
こんな場面で使おう- 複数系列をまとめて「全体でどれくらい外したか」を一つの数字で報告したいとき
- MAPEを使いたいが0が含まれるデータのとき、代替として
まとめ:結局どれを見ればいいの?
「全部見る必要あるの?」と思うかもしれませんが、実務では目的に応じて2〜3個を組み合わせるのが鉄則です。
基本セット(迷ったらまずこれ)まずはMAE・RMSE・MASEの3つを押さえましょう。MAEは「平均でどれくらい外すか」を業務の人に伝えるための指標。RMSEはMAEと一緒に見て「外れ値の影響」を把握するための指標。MASEはモデルが「作る意味があったか」をチェックするための指標です。
追加で見たいとき誤差を%で伝えたくてデータに0がなければMAPEかsMAPEを、0が含まれるデータならNDを使いましょう。異なるスケールの系列を横断で比較したい場合はMASEやMWQLが適しています。予測区間(幅)の品質を評価したい場合はMSISやMAQLを、大外しを特に厳しく評価したい場合はMSEやRMSEを見てください。
おわりに
Dataikuは時系列予測の構築を驚くほど簡単にしてくれますが、「メトリクスの読み方」だけは自分で理解する必要があります。
10個のメトリクスは一見多いですが、上の4グループで整理すればシンプルです。
- まず MAE・RMSE・MASE の3つを押さえる
- 業務に応じて MAPE/ND や MAQL/MSIS を追加する
これだけで、Dataikuの結果画面を「なんとなく眺める」状態から「根拠をもって判断する」状態に変わるはずです。
この記事が「メトリクス画面を見ても何も感じなかった過去の自分」を卒業するきっかけになれば幸いです。
同じように「正直、全部は理解してなかった」という人がたくさんいることを願って、ここに記事として残しておきます。
参考資料
- Dataiku公式ドキュメント「Time Series Forecasting Results」https://doc.dataiku.com/dss/latest/machine-learning/time-series-forecasting/results.html
- Dataiku公式ドキュメント「Time Series Forecasting Settings」https://doc.dataiku.com/dss/latest/machine-learning/time-series-forecasting/settings.html
- Hyndman, R.J. and Koehler, A.B. (2006) “Another look at measures of forecast accuracy”https://robjhyndman.com/papers/another-look-at-measures-of-forecast-accuracy/
- Hyndman, R.J. and Athanasopoulos, G. (2018) “Forecasting: principles and practice”https://otexts.com/fpp2/

