ExcelのFORECAST.ETS.STAT関数とは?予測モデルの統計量を取得する関数
「FORECAST.ETSで予測値は出せたけど、このモデルって本当に信頼できるの?」
「平滑係数とか誤差指標とか、上司に説明する数字を取り出したい」
こんな場面で活躍するのがFORECAST.ETS.STAT関数です。
この記事ではFORECAST.ETS.STAT関数の使い方を、月次売上データの実例とともに解説します。
8種類取得できる統計量それぞれの意味と、業務での読み方までまとめて押さえていきましょう。
読み方と語源(ETS=指数三重平滑、STAT=統計量)
FORECAST.ETS.STAT関数の読み方は「フォーキャスト・イーティーエス・スタット」です。
語源を分解するとイメージしやすくなります。
- FORECAST: Forecast(予測)
- ETS: Exponential Triple Smoothing(指数三重平滑法)
- STAT: Statistics(統計量)
ETS(指数三重平滑法)は、データを「水準・トレンド・季節性」の3要素に分けて予測するアルゴリズムです。
FORECAST.ETS関数の内部で使われています。
STATはそのうちモデル内部の統計量を取り出してくれる関数です。
具体的には平滑係数(α・β・γ)と誤差指標(MAE/RMSE等)の数値を取得できます。
対応バージョンはExcel 2016以降で、Microsoft 365でも問題なく使えます。
FORECAST.ETSシリーズの中での位置付け
FORECAST.ETSシリーズは4つの関数で構成されています。
予測値を返すFORECAST.ETS、信頼区間のCONFINT、季節周期のSEASONALITYです。
FORECAST.ETS.STATはその中で「モデルの精度・パラメータ」を担当します。
| 関数 | 役割 |
|---|---|
| FORECAST.ETS | 将来の予測値を返す |
| FORECAST.ETS.CONFINT | 予測値の信頼区間(誤差幅)を返す |
| FORECAST.ETS.SEASONALITY | 検出された季節周期を返す |
| FORECAST.ETS.STAT | 平滑係数や誤差指標などモデル統計量を返す |
FORECAST.ETSの予測結果に対して「なぜそう予測したのか」を裏付ける役割を担います。
FORECAST.ETS.STAT関数の構文と引数
FORECAST.ETS.STAT関数の構文は以下のとおりです。
=FORECAST.ETS.STAT(values, timeline, statistic_type, [seasonality], [data_completion], [aggregation])
引数は6つで、最初の3つが必須、後ろ3つは省略可能です。
| 引数 | 必須 | 説明 |
|---|---|---|
| values | 必須 | 履歴データの数値範囲(売上・件数など) |
| timeline | 必須 | valuesと同じサイズの日付範囲。等間隔が前提 |
| statistic_type | 必須 | 取得する統計量の種類を1〜8の整数で指定 |
| seasonality | 省略可 | 季節周期。0=なし、1=自動検出(既定)、2以上=明示指定 |
| data_completion | 省略可 | 欠損値の扱い。0=欠損のまま、1=補間(既定) |
| aggregation | 省略可 | 重複日付の集計方法。1=平均(既定)など7種類 |
values(履歴データ)
予測モデルが学習する元データの数値範囲です。
売上・受注件数・アクセス数など、時系列で増減する数値を指定します。
数値以外(文字列など)が混ざっていると#VALUE!エラーになります。
timeline(日付列)
valuesに対応する日付の範囲を指定します。
等間隔である必要があります(毎日・毎週・毎月など)。
間隔がバラバラだと#NUM!エラーになるので注意してください。
statistic_type(取得する統計量)
ここがFORECAST.ETS.STAT関数の核心です。
1〜8の整数で「どの統計量を取り出すか」を指定します。
詳細は次章の早見表で説明します。
seasonality / data_completion / aggregation
通常は省略でOKです。
省略時の既定値(自動検出・補間あり・平均集計)が業務データに最もフィットするケースが多いためです。
statistic_typeで取得できる8種類の統計量
statistic_type引数に1〜8の整数を渡すことで、それぞれ異なる統計量を取得できます。
| statistic_type | 取得される値 | 分類 | 内容 |
|---|---|---|---|
| 1 | Alpha(α) | 平滑係数 | レベル(水準)パラメータ |
| 2 | Beta(β) | 平滑係数 | トレンド(傾き)パラメータ |
| 3 | Gamma(γ) | 平滑係数 | 季節性パラメータ |
| 4 | MASE | 誤差指標 | 平均絶対スケール誤差 |
| 5 | SMAPE | 誤差指標 | 対称平均絶対パーセント誤差 |
| 6 | MAE | 誤差指標 | 平均絶対誤差 |
| 7 | RMSE | 誤差指標 | 二乗平均平方根誤差 |
| 8 | Step size | 検出値 | 検出されたタイムライン間隔 |
NOTE
8種類は大きく「平滑係数3つ(α・β・γ)」「誤差指標4つ(MASE・SMAPE・MAE・RMSE)」「ステップサイズ1つ」に分けて覚えると整理しやすくなります。
基本的な使い方の例(月次売上データでα/β/γを取得)
セルA2:A25に月次売上、セルB2:B25に対応する日付があるとします。
平滑係数α・β・γを取得する数式は以下のとおりです。
=FORECAST.ETS.STAT(A2:A25, B2:B25, 1)
=FORECAST.ETS.STAT(A2:A25, B2:B25, 2)
=FORECAST.ETS.STAT(A2:A25, B2:B25, 3)
statistic_typeの数字だけを変えれば、同じデータから異なる統計量を取り出せます。
平滑係数(α・β・γ)の読み方と判断基準
平滑係数はすべて0〜1の範囲で返されます。
それぞれが0に近いほど「過去のパターンが安定している」、1に近いほど「直近の変化が大きい」ことを示します。
α(Alpha)レベル平滑係数の読み方
αはデータの水準(レベル)がどれだけ変動しているかを示します。
| αの値 | 意味 | 業務での読み方 |
|---|---|---|
| 0.0〜0.3 | レベル変動が緩やか | 安定したベースライン。予測しやすいデータ |
| 0.4〜0.7 | 中程度のレベル変動 | 一般的なビジネスデータの典型値 |
| 0.8〜1.0 | 直近の値を強く重視 | 水準が急変、またはノイズ大。要注意 |
αが0.9以上の場合、モデルは「ほぼ直近の値だけを見て予測している」状態です。
データ量不足や外れ値の影響が疑われるので、データ範囲を見直してみてください。
β(Beta)トレンド平滑係数の読み方
βはデータのトレンド(傾き)がどれだけ揺れているかを示します。
| βの値 | 意味 | 業務での読み方 |
|---|---|---|
| 0.0〜0.2 | トレンド変化が緩やか | 長期トレンドが安定 |
| 0.3〜0.7 | トレンド方向が時間とともに変化 | 成長率が変わってきている |
| 0.8〜1.0 | トレンドが大きく揺らいでいる | 予測の不確実性が高い |
βが0に近い場合、データはほぼ直線的に伸びている(または横ばい)と解釈できます。
逆にβが0.8を超えるようなら、急成長期や鈍化期など、変化点を含んでいる可能性があります。
γ(Gamma)季節平滑係数の読み方
γは季節パターンの変化度合いを示します。
| γの値 | 意味 | 業務での読み方 |
|---|---|---|
| 0.0〜0.3 | 季節パターンが安定 | 毎年同じ周期で増減している |
| 0.4〜0.7 | 季節パターンが徐々に変化 | 周期はあるが波形がずれてきている |
| 0.8〜1.0 | 季節パターンが大きく変動 | 季節性予測が当たりにくい |
γが0.8以上のときは、過去の季節パターンがあてにならない状態です。
新規事業・コロナ前後の売上など、構造変化があるデータで起こりやすい傾向です。
誤差指標(MASE・SMAPE・MAE・RMSE)の読み方と判断基準
誤差指標は「予測モデルが過去データをどれだけ正確に再現できているか」を示します。
4種類それぞれ単位や意味が違うので、目的に応じて使い分けます。
MASE(statistic_type=4)の読み方
MASE(平均絶対スケール誤差)は、ナイーブ予測(前期と同じ値)を基準にした相対誤差です。
| MASEの値 | 意味 |
|---|---|
| 1.0未満 | ナイーブ予測より優れている → 採用可 |
| 1.0 | ナイーブ予測と同等 |
| 1.0超 | ナイーブ予測より悪い → モデル見直し |
業務での目安は0.5〜0.8が良好レベルです。
1.0を超える場合、「単純に先月と同じ値を予測する」方がマシなので、ETSモデルを使う意味がありません。
SMAPE(statistic_type=5)の読み方
SMAPE(対称平均絶対パーセント誤差)は、誤差をパーセントで返す指標です。
単位を気にせず精度比較できる利点があります。
| SMAPEの値 | 精度評価 |
|---|---|
| 0%〜10% | 高精度予測 |
| 10%〜20% | 実用レベル |
| 20%超 | 改善余地あり |
ビジネスの売上予測では10%〜20%に収まるケースが多く、20%超なら別アプローチも検討する目安になります。
MAE(statistic_type=6)の読み方
MAE(平均絶対誤差)は、誤差の平均を元データと同じ単位で返します。
例えば月次売上データなら「平均で50万円ずれます」のように具体的な金額として読めるのが利点です。
業務での説明にも使いやすい指標です。
TIP
MAEは「予測値の許容できるブレ幅」と比較するのがコツです。例えば在庫計画でMAE=50個なら、安全在庫を50個程度上乗せしておくといった意思決定に直結します。
RMSE(statistic_type=7)の読み方
RMSE(二乗平均平方根誤差)も元データと同じ単位ですが、大きな誤差を強調する特徴があります。
| 比較ポイント | 解釈 |
|---|---|
| RMSE ≒ MAE | 誤差が均等に分布 |
| RMSE >> MAE | 稀に大きく外す予測モデル |
RMSEがMAEより明らかに大きいときは、極端な外れ値が混じっている可能性があります。
データクレンジングの見直しサインとして活用してください。
FORECAST.ETSシリーズの併用ステップ
FORECAST.ETS.STAT関数は単独でなく、シリーズの他関数と組み合わせて使うと効果的です。
業務での標準的なフローを紹介します。
ステップ1: SEASONALITYで周期を確認
最初にFORECAST.ETS.SEASONALITY関数で、データの周期を確認します。
=FORECAST.ETS.SEASONALITY(A2:A25, B2:B25)
12なら年周期、7なら週周期と判断できます。
ステップ2: STATで誤差指標を確認
次にFORECAST.ETS.STAT関数でMAEやSMAPEを取得し、モデルの精度を確認します。
=FORECAST.ETS.STAT(A2:A25, B2:B25, 6)
精度が業務で許容できるレベル(例: SMAPE 20%未満)なら次のステップへ進みます。
ステップ3: ETSで予測値を算出
精度を確認したうえで、FORECAST.ETS関数で予測値を取得します。
=FORECAST.ETS(C26, A2:A25, B2:B25)
C26には予測したい未来の日付を入れます。
ステップ4: CONFINTで信頼区間を取得
最後にFORECAST.ETS.CONFINT関数で信頼区間(誤差幅)を取得します。
これで予測値の上下限を提示できるようになります。
=FORECAST.ETS.CONFINT(C26, A2:A25, B2:B25)
この4ステップで「予測値・誤差幅・モデル精度・周期」をワンセットで揃えられます。
FORECAST.ETS.STAT関数のよくあるエラー
FORECAST.ETS.STAT関数で発生しやすいエラーと対処法をまとめます。
#VALUE!(statistic_typeが範囲外・引数の型エラー)
=FORECAST.ETS.STAT(A2:A25, B2:B25, 9)
→ #VALUE!
statistic_typeに1〜8以外の値を渡すと#VALUE!になります。
範囲を確認して修正してください。
values内に文字列や論理値が混ざっている場合も#VALUE!になります。
データ列の型をチェックしてみてください。
#NUM!(タイムラインが等間隔でない・データ不足)
=FORECAST.ETS.STAT(A2:A10, B2:B10, 1)
→ #NUM!(データ不足の場合)
timeline引数の日付が等間隔でないと#NUM!になります。
特に月末ベースの日付(1/31, 2/28, 3/31)は厳密には等間隔ではありません。
月初(1/1, 2/1, 3/1)に統一しておくと安全です。
季節性検出には最低2周期分のデータが必要です。
月次データなら24ヶ月以上、週次データなら14週以上を用意してください。
#N/A(valuesとtimelineのサイズ不一致・欠損が多すぎる)
valuesとtimelineの配列サイズが違うと#N/Aになります。
A2:A25とB2:B26のように、選択範囲がずれていないか確認してください。
欠損値(空セル)が全体の30%を超えても#N/Aになります。
data_completion=1(既定の補間)でも処理できない量の欠損は、元データを見直す必要があります。
FORECAST.ETSシリーズ4関数の使い分け
最後にFORECAST.ETSシリーズ4関数の使い分けを整理します。
| 用途 | 使う関数 | 取得できるもの |
|---|---|---|
| 将来の予測値を出したい | FORECAST.ETS | 予測値(数値) |
| 予測値の不確実性を示したい | FORECAST.ETS.CONFINT | 信頼区間(誤差幅) |
| データの周期を知りたい | FORECAST.ETS.SEASONALITY | 季節周期(データポイント数) |
| モデルの精度・パラメータを評価したい | FORECAST.ETS.STAT | 平滑係数3種+誤差指標4種+ステップサイズ |
「予測値だけ見せて終わり」では説得力に欠けます。
CONFINTで誤差幅を提示し、STATでモデル精度を裏付けるところまでセットにしましょう。
そうすることで、説得力のある予測レポートに仕上がります。
関連記事も参考にしてください。
- FORECAST.ETS関数の使い方|時系列予測の基本
- FORECAST.ETS.CONFINT関数の使い方|信頼区間の取得
- FORECAST.ETS.SEASONALITY関数の使い方|季節性の自動検出
まとめ
FORECAST.ETS.STAT関数のポイントを振り返ります。
- 役割: FORECAST.ETSモデルの統計量(平滑係数・誤差指標)を取得する
- 構文:
=FORECAST.ETS.STAT(values, timeline, statistic_type, [seasonality], [data_completion], [aggregation]) - statistic_type: 1〜8の整数で取得する統計量を指定
- 平滑係数(α/β/γ): 0〜1の値。0に近いほど安定、1に近いほど直近変化を重視
- 誤差指標: MASEは1.0未満が合格、SMAPEは20%未満が実用レベル
- 併用フロー: SEASONALITY → STAT → ETS → CONFINTで予測の信頼性を裏付ける
FORECAST.ETS.STAT関数を使えば、予測の質を一段階上げられます。
「なんとなく予測した」状態から「数値根拠付きで予測モデルを評価する」状態にステップアップできます。
売上予測・需要予測のレポートに、ぜひ取り入れてみてください。
