# 指数平滑法の基礎から予測まで徹底解説

> SESからHolt、Holt-Wintersまで、指数平滑法をステップバイステップで学びましょう。計算式、ビジネス事例、RとPythonのコード、モデル選定方法を含みます

Source: https://www.electe.net/ja/%E3%83%9B%E3%82%B9%E3%83%88/exponential-smoothing

Site guide: https://www.electe.net/ja/llms.txt

ある地域の小売マネージャーは前四半期のSKU販売データを分析しているが、それでも基本的な業務上の疑問に答えられずにいる。次の季節的な需要急増の前に、どれだけの在庫を用意すべきか。別のオフィスでは、与信担当のアナリストがデフォルト率を注視し、最近の上昇が一時的なショックなのか、それとも持続的な変化を意味するのかを判断しかねている。予測は、こうした意思決定とその結果——欠品、過剰な運転資本、機会損失、不必要なリスク——の間に位置している。

**指数平滑法**は、中小企業にとって、スプレッドシートの平均値と複雑な機械学習パイプラインの中間に位置する実用的な手法です。この手法は直近の観測値を過去の観測値よりも重視しつつ、マネージャーや財務チーム、オペレーション責任者にも説明できるほど計算過程を透明に保ちます。また、必要なデータ量も比較的少なく、多数の時系列に対して迅速に計算できます。

本記事では、この手法の仕組み、単純指数平滑法・Holt法・Holt-Winters法をそれぞれどのような場合に使うべきか、そして見た目にもっともらしい線を鵜呑みにせず予測を評価する方法を学びます。さらに、手作業のスプレッドシート処理が、継続的にモニタリングされる分析へと発展していく過程もご紹介します。

## 目次

- ビジネス予測において指数平滑法が今なお重要な理由
-
  - チームがこの手法を使い続ける3つの理由
- 指数平滑法の内部的な仕組み
-
  - 実務におけるアルファの意味
- SES、Holt、Holt-Winters各バリエーションの比較
-
  - シグナルに合わせてモデルを選ぶ
- 売上・在庫・リスク分野における実際のビジネス事例
- RとPythonによる指数平滑法の実装
-
  - 簡潔な擬似コードの構成
- MAE、RMSE、MAPE、クロスバリデーションによるモデル評価
-
  - 簡単な比較事例
  - ローリングオリジン検証を使う
  - 判断力を手放さずにパラメータを調整する
- スプレッドシートによる予測から自動化されたAI分析へ
-
  - 自動化によって何が変わるか
- 指数平滑法を実務に活かすための重要ポイント
-
  - 最初のモデル作成後によく出る質問

## 指数平滑法がビジネス予測において今なお重要な理由

予測は、意思決定を支えて初めて意味を持ちます。小売業者は補充発注を行う前に将来需要の見積もりを必要とします。財務チームは注意を配分する前に、予想されるリスク指標について説得力のある見解を必要とします。どちらの場合も、単純な過去平均では反応が遅すぎる一方、複雑なモデルは維持や説明が難しい場合があります。

指数平滑法が今なお有用なのは、時系列そのものの構造に着目するからです。選択するバリエーションに応じて、現在の**レベル**を推定し、目に見える**トレンド**を延長し、繰り返される**季節性**を表現できます。この手法は20世紀半ば、オペレーションズ・リサーチの実務的な予測手法として登場しました。Robert G. Brownの研究は米海軍向けに**1944年**頃に遡り、Charles C. Holtは**1957年**のONRメモランダムで基礎となるトレンド拡張を記録し、Peter Wintersは**1960年**の画期的な論文でこの手法を季節性に一般化しました。([Gardnerの歴史的レビュー](https://bauer.uh.edu/gardner/Exponential-Smoothing.pdf))

### チームがこの手法を使い続ける3つの理由

- **データ要件が少ない:** 大規模なフィーチャーストアを構築しなくても、単一の履歴時系列から有用なベースラインを作成できます。
- **解釈可能なパラメータ:** 平滑化の値は、新しい情報に対して予測がどれだけ速く反応するかを表します。
- **高速な計算:** 再帰的な更新は軽量で、スプレッドシートによるプロトタイプ、ノートパソコンでの分析、あるいは大量のビジネス時系列群にも対応できます。

この透明性は重要です。マネージャーは最近の売上減少がなぜ予測を変えたのかを理解でき、アナリストはモデルをブラックボックスとして扱うことなく調査できます。この手法はまた、より高度なアプローチを評価する際の基準となるベースラインも提供します。

モデル選択に関するより広い文脈については、指数平滑法を[ARIMAとAI予測モデル](https://www.electe.net/post/time-series-forecasting)と比較してください。特に外部要因やより複雑な時間的関係が重要な場合に有効です。

## 指数平滑法の仕組み

中心となる考え方は、過去を記憶しつつも現在を優先する加重平均です。マネージャーがソフトフォーカスのレンズを通して需要履歴を見返す様子を想像してください。最新の観測値は鮮明に映り、直前の観測値もまだ見えており、それより古い観測値は徐々に薄れていきますが、完全には消えません。

NIST Engineering Statistics Handbookは、この特徴的な性質を、古い観測値に対する**指数関数的に減少する重み**として説明しています。これにより、指定したウィンドウ内のすべての値に同じ影響力を与える等加重移動平均と比べて、指数平滑法は計算効率が高くなります。([NISTハンドブック](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc437.htm))

単純指数平滑法では、1期先予測は次のように表せます。

**Fₜ₊₁ = α × Yₜ + (1 − α) × Fₜ**

これと同等のフィット済みレベル形式は次の通りです。

**Lₜ = α × Yₜ + (1 − α) × Lₜ₋₁**

ここで、**Yₜ**は直近の観測値、**Fₜ**は前回の予測値、**Lₜ**は更新後のレベル、**α**は0から1の間の平滑化パラメータです。

### アルファが実務上意味すること

アルファが高いと、直近の観測値が大きな影響力を持ちます。これは需要が急速に変化する場合には有効ですが、予測がランダムなノイズを追いかけてしまうこともあります。アルファが低いと、個別の変動に左右されにくい安定した推定値が得られますが、実際の需要シフトが発生した後の反応が遅くなる可能性があります。

> **実務上のルール:** アルファの選択は、統計的パラメータの姿を借りたビジネス上の意思決定です。需要ショック、プロモーション、解約の急増に対して、予測をどれだけ速く反応させるかを決めているのです。

以下の表は、重みをαと(1-α)のべき乗の積として計算した場合に、観測値の影響がどのように減衰していくかを示しています。この数値は平滑化ルールに基づく例示的な計算であり、実際のビジネスデータではありません。

経過期間数α = 0.2α = 0.5α = 0.800.20000.50000.800010.16000.25000.160020.12800.12500.032030.10240.06250.006440.08190.03130.001350.06550.01560.0003

アルファが0.8の場合、直近の観測値が支配的となり、過去の観測値は急速に薄れていきます。アルファが0.2の場合、モデルはより長い記憶を保持し、安定した系列には適していますが、構造的な変化の後の適応が遅れる可能性があります。

## SES、Holt、Holt-Wintersバリアントの比較

アルゴリズムの名前ではなく、データの形状から始めましょう。単純指数平滑法、すなわち**SES**は、現在のレベルのみを推定します。Holt法はトレンド成分を追加します。Holt-Winters法は、レベルとトレンドに加えて季節性を追加します。

SESは、繰り返し発生するサポートチケットや、明確な上昇傾向や繰り返しの周期を持たない成熟製品の需要など、比較的安定した系列に適しています。その予測は通常、ある方向へ継続するのではなく、直近の平滑化されたレベル付近に落ち着きます。

Holt法はトレンド推定を導入します。このモデルは、2つ目の平滑化パラメータである**ベータ**を使用して、現在のベースラインとそのベースラインが動いている方向を分離します。これにより、繰り返しの季節パターンを持たずに着実に上昇または下降している収益系列により適したものとなります。

Holt-Winters法は、**ガンマ**と季節周期(しばしば**m**で表される)によって制御される季節成分を追加します。その加法形式は、変動の大きさがおおむね安定している季節変動に適しています。その乗法形式は、小売業や観光需要でよく見られるパターンである、季節変動が全体のレベルとともに拡大または縮小する場合に適しています。([Datarekhaによる指数平滑法の解説](https://datarekha.com/time-series/exponential-smoothing/))

### モデルをシグナルに合わせる

バリアント構成要素追加パラメータ最適な用途ユースケース例SESレベルアルファトレンドや季節性のない安定した系列成熟製品の需要Holtレベルとトレンドアルファ、ベータ持続的な方向性を持つ系列緩やかに変化する売上Holt-Wintersレベル、トレンド、季節性アルファ、ベータ、ガンマ、シーズン長トレンドと周期的な循環を持つ系列季節性のある小売需要

コンポーネントが増えるほど、ノイズに適合してしまう機会も増える。小売業者は、より高度に聞こえるという理由だけでHolt-Wintersを選ぶべきではない。系列に信頼できる季節性が欠けている場合、季節状態は有用な情報を追加することなく不安定さを増すだけになりかねない。

有用な思考テストはシンプルだ。ベースラインが変動するか、その変動が繰り返されるか、そしてベースラインが変化しても季節変動の大きさが一定に保たれるかを問う。これらの答えが、SES、Holt法、加法的Holt-Winters、乗法的Holt-Wintersのいずれかを指し示す。

## 販売、在庫、リスクにおける実際のビジネス事例

モデルは、ビジネスシグナルと合致することで初めてその存在意義を得る。3つの異なる運用環境を考えてみよう。

ある地域の小売業者は、週次のSKU需要を追跡している。この系列は時間とともに上昇し、祝日期間には繰り返しピークが見られ、全体の需要水準が高いときには季節変動の振れ幅も大きくなる。**乗法的Holt-Winters**は自然な候補となる。なぜなら、これは水準・トレンド・季節性を表現し、その振幅が系列に応じてスケールするためだ。主要なパラメータはalpha、beta、gamma、そして観測された季節周期である。予測期間は、一般的な期間をデフォルトで採用するのではなく、その小売業者の補充計画・計画サイクルに合わせるべきだ。

ある倉庫マネージャーは生鮮品を扱っている。ベースラインの消費量は徐々に上昇しているが、単発のプロモーションによって異常に高い週が発生する。**Holt法**は、そのプロモーションを恒久的な季節パターンとして扱うことなく、緩やかな変動を表現できる。マネージャーは、再発注量を決めるために予測を使う前に、フィット値と残差を確認すべきだ。特にリード時間の関係で過大推定がコストにつながる場合はなおさらである。

ある信用リスクチームは、月次のデフォルト率を監視している。この系列は短く、トレンドは弱く、最近はマクロ経済状況の影響を受けている。**SES**は、最新の観測値が長期の履歴平均よりも重視されるべき場合に、応答性の高いベースラインを提供できる。比較的高いalphaは素早く反応する可能性があるが、アナリストはすべての最近の変動が持続的だと決めつけるのではなく、その選択を検証すべきである。

実践的な在庫管理のワークフローについては、[Shopify向け在庫予測ガイド](https://hello.quikly.com/blog/inventory-forecasting-methods)が、モデル選定と補充判断、そしてプラットフォームデータとを結びつける助けとなる。統計モデルは予測を生み出すが、ビジネスプロセスにはさらにリード時間、プロモーション、製品変更、サービス目標が必要となる。

シナリオ最適なバリアント主要パラメータ予測期間季節性のある小売SKU需要乗法的ホルト・ウィンタース法アルファ、ベータ、ガンマ、季節長補充または計画サイクル緩やかなドリフトのある生鮮在庫ホルト法アルファとベータ再発注リードタイムのウィンドウ短期でトレンドの弱いデフォルト率系列SES(単純指数平滑法)アルファ次のモニタリングサイクル

こうした選択肢をより自動化されたワークフローと比較したいチームは、[AIによる売上予測](https://tools.electe.net/previsione-vendite)を検討するとよいでしょう。その際も、モデルの診断結果や運用コンテキストを意思決定者に見える状態に保ちます。

## RとPythonにおける指数平滑法の実装

数値系列、予測期間、モデルの選択があれば、予測のプロトタイプを作成できます。実装は将来の予測値の一本の線以上のものを返すべきです。後で結果を評価できるように、フィッティング値、推定された状態、パラメータ、残差を保存してください。

### コンパクトな擬似コードのプラン

1. 数値の時系列データを読み込み、検証する。
2. 予測ホライズンと、alpha、beta、gamma、季節長の候補値を設定する。
3. 観測データの形状に応じて、SES、Holt、またはHolt-Wintersをフィッティングする。
4. レベル、トレンド、季節指数、フィット値、ポイント予測を保存する。
5. フィッティングに使用しなかった観測データで予測を評価する。
6. 検証プロセスでモデルが適切であることが確認されたら、再フィッティングする。

Rでは、`forecast`パッケージが誤差・トレンド・季節性の自動選択のための`ets()`と、明示的なHolt-Wintersフィッティングのための`HoltWinters()`を提供します:

library(forecast)

series <- ts(data$units, frequency = seasonal\_length)

ets\_fit <- ets(series)
ets\_forecast <- forecast(ets\_fit, h = horizon)

hw\_fit <- HoltWinters(
series,
alpha = NULL,
beta = NULL,
gamma = NULL
)
hw\_forecast <- predict(hw\_fit, n.ahead = horizon)

plot(hw\_forecast)

Pythonでは、`statsmodels`が`ExponentialSmoothing`を通じて同じモデルファミリーを提供しています。`fit()`と`forecast()`の呼び出しにより、コンパクトなワークフローが作成されます:

from statsmodels.tsa.holtwinters import ExponentialSmoothing

series = data\["units"\]

model = ExponentialSmoothing(
series,
trend="add",
seasonal="mul",
seasonal\_periods=seasonal\_length
)

fit = model.fit(optimized=True)
forecast = fit.forecast(horizon)

print(forecast)

自動最適化により手動でのパラメータ調整は減りますが、レビューの必要性がなくなるわけではありません。選択されたモデルの形式がデータを反映していること、予測が非現実的な形状を生み出していないことを確認してください。異常な観測値に関する監視も構築している場合は、この[異常検知ソフトウェアの選び方に関するガイド](https://supercenter.app/blog/anomaly-detection-software)が、隣接するツールを評価するための有用な基準を提供します。

結果を共有する前に、係数を確認し、分散推定値が非負であることを確認し、フィット値と観測値を比較し、予測が履歴に見られる季節的な形状を尊重していることを検証してください。

## MAE、RMSE、MAPE、交差検証によるモデル評価

過去のデータに忠実に従うモデルであっても、予測精度が低い場合があります。信頼できるテストはアウトオブサンプル性能、つまりフィッティングから除外した観測値と予測を比較することです。

**平均絶対誤差(MAE)**は、元の単位での平均絶対的なずれを表します。販売数量を予測する場合、MAEも販売数量の単位で測定されるため、マネージャーにとって解釈しやすくなります。

**二乗平均平方根誤差(RMSE)**も平方根を取った後の元の単位を使用しますが、大きな誤差により大きな影響を与えます。深刻な在庫切れや異常に大きな人員配置のギャップなど、単一の重大な誤差が不均衡な運用コストを伴う場合に使用してください。

**平均絶対パーセント誤差(MAPE)**は、誤差をパーセンテージで表します。これにより製品間の比較は容易になりますが、実際の値がゼロに近い場合、計算が不安定になったり誤解を招いたりします。そのため、低ボリュームのSKUは、絶対的なビジネスへの影響が小さい場合でも、MAPEでは実際より悪く見えることがあります。

### 簡単な比較例

3つの候補が、同一の保留観測データに対して以下の絶対誤差を出したと仮定します。

モデル絶対誤差MAERMSEMAPESES2, 4, 64.004.3220.00%Holt1, 5, 74.334.6921.67%Holt-Winters3, 3, 53.673.8318.33%

これらの数値は指標の仕組みを示すために作成した例であり、業界基準ではありません。ここではHolt-Wintersが3つの指標すべてで優れていますが、誤差パターンが異なれば順位が変わることもあります。例えば、小さな誤差が大半で1つだけ大きな見逃しがあるモデルは、MAEでは許容範囲に見えても、RMSEでは運用上のリスクが露呈することがあります。

### ローリングオリジン検証を使う

1回だけの学習・テスト分割では弱点が見えないことがあります。ローリングオリジン評価では、拡張していく学習期間でモデルを繰り返し当てはめ、次の予測期間または複数の将来期間についてスコアを算出します。このプロセスは、新しい実績値が入ってきたときにモデルがどう動作するかをより正確にシミュレートします。

季節性が重要な場合は、少なくとも1つの完全な季節周期をカバーする検証期間を使用してください。そうしないと、テストが繰り返し発生するピークや谷を一度も検出できない可能性があります。候補モデルは、同じ起点、予測期間、観測値で比較してください。

### 判断を手放さずにパラメータを調整する

まずはアルファ、ベータ、ガンマについて最適化ツールの出力から始め、その結果がビジネス的に妥当かどうかを確認します。最適化ツールは定義された誤差目的関数を最小化するだけで、在庫コストや顧客サービス方針、リスク許容度は考慮していません。

ノイズの多い中小企業データの場合、初期アルファ範囲として**0.1から0.4**を実務上の検討範囲とすることはできますが、これを普遍的なルールにすべきではありません。提供されている技術ガイダンスでは、境界値にあるパラメータは無条件で受け入れず、必ず検証するよう推奨しています。

以下の点を確認してください。

- **残差を確認する:**残っているトレンド、季節性、自己相関がないか確認します。構造を持つ残差系列は、モデルが説明しきれていない情報が残っていることを示します。
- **季節性の形を検証する:**加法的季節性は変動幅が一定の場合に適合します。乗法的季節性は水準の上昇とともに変動幅が拡大する場合に適合します。
- **過学習に注意する:**柔軟性の高い季節モデルは過去のデータには見事に追随しますが、将来の期間ではうまく機能しないことがあります。
- **データの長さを尊重する:**Holt-Wintersが繰り返される季節パターンを特定するには、十分な履歴が必要です。完全な季節周期が2回未満のデータで当てはめると、季節推定が不安定になるリスクがあります。
- **構造的な変化を見極める:**新製品の発売、パンデミックによる衝撃、政策変更、価格体系の見直しなどは、それまでの水準を無効にすることがあります。モデルに変化をゆっくり吸収させるより、水準をリセットまたは再初期化した方がよい場合があります。

最良のモデルとは、構成要素が最も多いモデルではありません。有用な将来推定値を生み出し、現実的な検証に耐え、予測をもとに行動する人々にとって説明可能であり続けるモデルです。

## スプレッドシート予測から自動化されたAI分析へ

多くの中小企業は、おなじみの手順から始めます。誰かが月次売上をエクスポートし、スプレッドシート上でアルファを調整し、予測結果を計画ファイルにコピーして、静的なバージョンを関係者にメールで送ります。このプロセスは少数の系列であればうまく機能しますが、データが更新されたり、製品ラインナップが拡大したり、実際の結果を過去の予測と比較する必要が生じたりすると、脆さが露呈します。

プラットフォームのワークフローは、指数平滑法の透明性を維持しながら、繰り返し作業の手間を取り除くことができます。ELECTEは、中小企業向けのAI搭載データ分析プラットフォームであり、business dataを取り込み、分析用に準備し、予測候補をフィットさせ、自動レポート作成をサポートします。マネージャーは、切り離されたスプレッドシートの数値に頼るのではなく、過去の系列と並べて予測を確認できます。

### 自動化がもたらす変化

- **反復性:** 新しい観測値が到着するたびに、同じ準備・評価ロジックが実行されます。
- **モデル比較:** 手作業で調整した一つの数式に頼るのではなく、複数のETS候補を評価できます。
- **モニタリング:** 過去の予測を実績と並べて保存できるため、劣化が可視化されます。
- **コミュニケーション:** レポートは、予測、前提条件、例外事項を、ビジネスユーザーが理解できる形で提示できます。

だからといって、古典的な統計学が時代遅れになるわけではありません。指数平滑法は、AIレイヤーが監視、上書き、または説明できる透明性の高いベースラインであり続けます。プラットフォームの**Smooth Forecaster**は、短期的な変動を減らし、ユーザーが根底にあるトレンドに集中できるようにする方法として説明されています。

手作業のファイルを置き換えるチームにとって、[ELECTE guida fogli calcolo](https://www.electe.net/post/fogli-di-calcolo)は、スプレッドシートのワークフローをより連携された分析プロセスへ移行する上で参考になる情報を提供しています。

## 指数平滑法を実践に活かすための重要ポイント

次の予測サイクルに向けた実践的な出発点として、このチェックリストをご活用ください。

1. **まず系列を描く:** SES、Holt、またはHolt-Wintersを選択する前に、データをプロットし、安定したレベルなのか、トレンドがあるのか、繰り返す季節性があるのか、あるいは構造的な断絶があるのかを見極めましょう。
2. **最適化してから検証する:** フィッティング手続きにアルファ、ベータ、ガンマを推定させつつ、結果として得られる反応性がビジネスが新しい情報にどう反応するかと一致しているかを確認しましょう。
3. **ホールドアウトデータで検証する:** MAEまたはRMSEを用いて予測を将来の観測値と比較し、実際の数量がゼロに近づく場合はMAPEのみに頼らないようにしましょう。
4. **定期的に再フィットする:** 顧客行動、製品構成、運用状況の変化にモデルが適応できるよう、四半期ごとに再フィットしましょう。
5. **パイプラインを監視する:** 予測と実績を一緒に保存することで、ELECTEのようなプラットフォームが劣化を検知し、代替モデルとの比較をサポートできるようにしましょう。

### 最初のモデルの後によくある質問

**どれくらいのデータが必要ですか?** Holt-Wintersの場合、モデルが繰り返しの動きをノイズと区別できるよう、少なくとも**2つの完全な季節サイクル**を見込んでおきましょう。安定したSESは一般に、おおよそ**30件以上の観測値**があると効果的ですが、系列が短いと不安定なパラメータ推定になる可能性があります。

**欠損値にはどう対応すべきでしょうか?** 指数平滑法は利用可能な系列を前提とするため、適切な補間または前方補完（キャリーフォワード）の手順によって、フィッティングを行う前にギャップに対処してください。補完処理はレベルやその後の評価に影響を与える可能性があるため、その処理内容を記録しておく必要があります。

**外れ値にはどう対処すべきでしょうか?** 値を変更する前に、その原因を確認してください。ウィンザー化、極端な値に強い前処理、または明示的な外れ値処理を備えたモデルを用いることで、一つの異常な観測値がアルファ主導のレベルを歪めるのを防ぐことができますが、実際に発生した事象については、ビジネス上のシグナルとして可視化したままにする必要がある場合もあります。

**指数平滑法を避けるべきなのはどのような場合でしょうか?** 系列が高度に非線形である場合、複数の外部変数に依存する場合、大きな構造的breakを含む場合、あるいは指数平滑法では確実に表現できない長期予測が求められる場合には、別のアプローチを選択してください。そうした状況では、ARIMA、Prophet、回帰分析、または機械学習アンサンブルの方が適している場合があります。

予測は財務やコンプライアンスに関する意思決定を支える手段でもありますが、財務またはコンプライアンスに関する助言ではありません。リスク管理チームは、モデルの出力結果を、承認されたガバナンス、人間によるレビュー、文書化されたポリシーと組み合わせる必要があります。顧客、従業員、または取引データを処理する際には、組織および適用される法律で求められるプライバシー管理と保持ルールを適用してください。

---

ELECTEは、データ準備、予測、自動レポート、AIを活用したモニタリングを連携させることで、中小企業が手作業で更新するスプレッドシートから脱却できるようにします。[ELECTE](https://www.electe.net)にアクセスして、指数平滑法をはじめとする予測手法を、より明確で継続的にレビューされるビジネスインサイトへと変える方法をご覧ください。
