このセクションの他の記事
推論結果の見方(時系列解析)
時系列データを投入して未来の予測を行ったとき、画面に表示される結果について解説します。
なお、「TrendFlow」も「MfTransformer」も表示される推論結果はおおむね同じですが、予測の手法が異なるため、予測できる期間が異なります。
■推論結果
1.予測期間
予測を行った期間です。
「TrendFlow」ブロックを用いる場合、次の期間の予測を行います。
学習時に投入したデータセットの次行にあたる日時~推論設定画面の「予測期間」に指定した期間分
上図は、次の条件で予測を行いました。
・学習時投入データ:1949年1月~1960年12月の月次乗客数
・予測期間 :3か月を指定(=1961年1月~1961年3月を予測する)
「MfTransfomer」ブロックを用いる場合、次の期間の予測を行います。
推論用に投入したデータセットの次行にあたる日時
予測できるのは1行分です。
2.予測結果
グラフ右端の紫線のみ表示されている期間が予測結果です。
予測結果エリアにマウスオーバーすると、吹き出しで予測値と実測値を表示します。
グラフの見方は後述をご覧ください。
3.縮小図
予測結果のみを縮小して表示します。
縮小図内でドラッグ&ドロップをすると、その期間のグラフを拡大表示します。
拡大表示を戻すには、縮小図の任意の箇所をクリックします。
4.周期性モード
周期性の計算を行ったモードを表示します。
MatrixFlowでは、加法的か乗法的のどちらか精度の良い方のみを採択し、表示します。
詳しくは後述をご覧ください。
■グラフの見方
- 紫の線は予測値(AIが予測した値)です。
- 緑の線は実測値(学習時に投入したデータの値)です。
マウスオーバーすると吹き出しでそれぞれの値が表示されます。 - 薄紫の帯は95%信頼区間です。
95%信頼区間とは統計の用語で、予測値が95%の確率でこの範囲に含まれることを表します。 - 紫の線のみが表示されている期間が予測結果です。
データが変動する突発的な要因などがなく、これまでと変わらずに推移した場合に考えられる未来の予測値です。
グラフ下の縮小図をドラック&ドロップすると、その範囲のグラフを拡大表示します。
拡大表示を戻すには、縮小図の任意の箇所をクリックします。
■周期性モードについて
時系列データにはさまざまな変動が含まれますが、一般的にその中の4つの変動(傾向変動 T、循環変動 C、季節変動 S、不規則変動 I)で構成されると考えられています。
- 傾向変動 T (Trend variation):長期にわたる上昇または下降の持続的な変化
長期変動とも呼ばれる - 循環変動 C (Cyclical variation):一般に3年~15年くらいで周期的に繰り返される変化
景気変動とも呼ばれる - 季節変動 S (Seasonal variation):1年を通して決まった動き(1年周期)で繰り返される変化
- 不規則変動 I (Irregular variation):上3つ以外の変動。観測誤差などさまざまな要因による変化が含まれる。
これら4つの変動を使って観測値を表すモデルを作ることができ、その代表的なモデルが「加法的モデル」と「乗法的モデル」です。
加法的モデル:観測値=T+C+S+I(変動の和からなる)
乗法的モデル:観測値=T×C×S×I(変動の積からなる)
MatrixFlowは両方のモデルで計算を行い、予測精度が良かった方のモデルを採択します。
■推論結果のダウンロード
推論結果は、CSVファイル形式でダウンロードすることができます。また、文字コードもShift-JISとUTF-8から選択可能です。
ダウンロード方法は、推論結果のダウンロードをご覧ください。
■ダウンロードファイルに出力される項目
<レシピに「TrendFlow」ブロックを使っている場合>
予測した日時以外、すべて「値」「95%信頼区間の下限値」「95%信頼区間の上限値」の3つセットで出力されます。
項目 | 列名 | 説明 |
---|---|---|
予測した日時 | ds | |
予測結果 | yhat yhat_lower yhat_upper |
予測値と95%信頼区間の下限値、上限値 |
トレンド | trend trend_lower trend_upper |
トレンドの値 |
周期性モード: 加法的の観測値 |
additive_terms additive_terms_lower additive_terms_upper |
加法的,乗法的どちらか (乗法的モデルの場合3つとも0.0) |
周期性モード: 乗法的の観測値 |
multiplicative_terms multiplicative_terms_lower multiplicative_terms_upper |
加法的,乗法的どちらか (加法的モデルの場合3つとも0.0) |
自動周期:年 | yearly yearly_lower yearly_upper |
自動周期ON時に年周期と判断した場合に出力 |
自動周期:週 | weekly weekly_lower weekly_upper |
自動周期ON時に週周期と判断した場合に出力 |
自動周期:日 | daily daily_lower daily_upper |
自動周期ON時に日周期と判断した場合に出力 |
項目 | 列名 | 説明 |
---|---|---|
手入力で追加した周期 | 周期の名前 周期の名前_lower 周期の名前_upper |
TrendFlowブロックに手入力で周期を追加した場合に出力 |
<レシピに「MfTransformer」ブロックを使っている場合>
項目 | 列名 | 説明 |
---|---|---|
予測した日時 | ds | |
予測結果 | yhat | 予測値、または “None”* |
実測値 | y | 投入データの値、または “None”** |
*yhat(予測値)の “None”
レシピブロック「MfTransformer」の「入力列の長さ」に指定した行数を読み込んで次の1行分を推論します。
入力列の長さに「28」を指定した場合、1‐28行目で29行目を推論、次に2‐29行目で30行目の推論・・・と投入データの最後まで繰り返します。
そのため、入力列の長さに満たない行は推論できず “None” が出力されます。
**y(実測値)の “None”
実際に推論した予測値を得たい行には実測値がありませんので、”None” が出力されます。
<レシピに「MFTransformerV2」ブロックを使っている場合>
TrendFlowと予測値の表示のされ方が異なり、仕様により予測したい分だけ出力されます。