ひとりマーケティングのためのデータ分析

TOOLS / FORECASTING

過去より「直近の変化」を重く見て追従する、
Excelで実践する指数平滑法の予測モデル。

平滑定数αが高いほど、直近の変化に鋭く反応する。

2026/4/26

綾子

AYAKO

移動平均は"過去 n 期を対等に扱う"。指数平滑はそれを崩して、直近に重きを置く。α ひとつで、その"重さの傾け方"が変わる。

指数平滑法とは

ナイーブ予測(直前の実測値をそのまま次期の予測値に充てる方法)の単純さを踏襲しつつ、指数平滑法による平滑化を加えた予測手法です。

vs. 移動平均
移動平均は n 期を等ウエイトで扱う。指数平滑は直近ほど重く、過去ほど指数関数的に軽くなる
少ないデータで動く
移動平均と異なり、直前 1 期の実測値と予測値があれば計算できる。データが少ない状況での予測に向く
移動平均法との比較と ここでの制限

移動平均法では先行する各期のデータを対等に扱いますが、指数平滑法では直近のデータほど重く、過去に向かってウエイトが指数関数的に減少します(「指数」平滑法という名前の由来はここにあります)。

なお、最初の予測値として 1 期目の実測値を流用する場合、次の制限があります。

  • 計算に使う実測値の最大・最小を超える予測値は出せない

どのような予測法も、この環境で有効かどうかは他の手法との比較検討なしに断ずることは難しいです。

このページでは、ある販売担当部員の直近 12 か月の売上データから 13 期目(9 月)の売上予測値を求めます。平滑定数 α を 0.1〜0.9 の 9 パターンで総当たりし、最適値を探します。

01

元データ

ある販売担当部員の直近 12 か月の月別売上を集計したデータです。「期」列はデータ数を把握しやすくするための補助列で、処理上は必須ではありません。

このデータから 13 期目(9 月)の売上予測値を求めるのが目的です。なお、直後のステップで表の上部に行を追加するため、1 行分の空白行を残しておいてください。

元データ:12か月分の月別売上(指数平滑法)
02

α を 9 個のパターンで考える

見出し α と初期値 0.1 を入力し(ここでは順にセル D1, E1)、その下の行に 予測値絶対誤差 の見出しを作ります(セル D2, E2)。完成したらこれらを右に 1 ブロック分(2 列)コピーします。

αと予測値・絶対誤差の見出しを作成

コピーされたブロックの α 値セルを、前のブロックの α に 0.1 を加える式に書き換えます。

  • =E1+0.1
[セルG1]=E1+0.1(αの値を連続生成)

α=0.2 のブロック(4 セル)を選択し、α=0.9 のブロックができるまで右方に 7 ブロック分コピーします。この例では U 列まで展開します。

α=0.2のブロックをU列(α=0.9)までコピー
03

予測式にあてはめてみる

指数平滑法の予測式は次のとおりです(Ft:t 期の予測値、Xt:t 期の実測値)。

ことばで示すと
t+1期の予測値=α×t期の実測値+(1-α)×t期の予測値
数式に直すと
F_(t+1)=αX_t+(1-α)F_t

α(平滑定数)はこの手法のキモで、0 < α < 1 の範囲をとるウエイトです。α が 2 か所登場することから、片方に掛かるウエイトが増えればもう片方が減る関係にあります。

  • α = 1 のとき:(次期の)予測値 = (直前の)実測値 ← 真のナイーブ予測
  • α = 0 のとき:(次期の)予測値 = (直前の)予測値 ← 変化を無視した予測

つまり α の大小は「当期の実測値(変化への敏感さ)」と「連綿とした予測の流れ」のどちらに重きを置くかを決定づけます。

αの大小と予測の性質(α大=敏感、α小=なだらか)

この式変形(α でくくりなおす)を図示すると次のようになります。誤差にウエイト α を掛けて修正していく構造が見えます。α が大きいほど変化への反応が速く、小さいほど過去からの流れが支配的になります。

綾子

Ft+1 = αXt + (1-α)Ft を変形すると Ft+1 = α(Xt - Ft) + Ft。α は「誤差をどれだけ次の予測に組み込むか」の割合——これが「フットワークの良さ」の正体。

式変形による誤差修正の解釈

Ft を繰り返し展開して遡っていくと、予測値は実のところすべての結果を取り込むかたちで計算がおこなわれていることがわかります。

またXについては,直前の期のそれのみが参照される構造ゆえ、ある程度のサイズを揃えられなくても計算そのものは可能であることがわかります。

Ft+1期の予測値
Ftを展開した構造
遡っていくと……
すべての期を展開した式
連綿とした流れがあることがわかる
ウエイトの連鎖構造

図の中段までを確認すると、次期の予測値は、「当期から過去の各期にウエイトを乗せた実測値の合成」と考えることができます。

さらに図の後段のように、X に掛かるウエイト α(1-α)k は、過去に向かうにつれ指数関数的に減少することがわかります——これが「指数平滑法」という名の由来です。

Ft+1=αXt+(1-α)Ft に Ft=αXt-1+(1-α)Ft-1を代入
ウエイトが指数関数的に減衰する式
これと同じことを、遡って延々とつづけていくと下式に
ウエイトが指数関数的に減衰する式
当期のαを仮に0.5とすると、その前は0.25、さらにその前は0.125と言った具合にαが減少していく
α=0.5のときのウエイト値
この構造をプロットすると下図のようになる
ウエイトが指数関数的に減衰するグラフ

以上を踏まえて実装に移ります。2 期目の予測値の初期値として、1 期目の実測値を絶対参照で参照します。

  • =$C$3
[セルD4]=$C$3(2期目の初期値として1期目の実測値を参照)

3 期目以降は予測式をそのまま適用します。実測値の列(C 列)と α の行(1 行目)は複合参照で固定します

実測値の「列」と α の「行」のみを固定します。

  • =E$1*$C4+(1-E$1)*D4

この式を最下行より 1 行はみ出るところまでコピーします。

予測式をD15までコピー(最下行より1行はみ出る)
04

誤差を計算する

絶対誤差を求めます。

(実測値 − 予測値)の絶対値

実測値の列(C 列)は複合参照で固定します。

  • =ABS($C4-D4)

最下行までコピーします。

絶対誤差の計算(ABS関数)

計算した領域(予測値・絶対誤差の 2 列)を選択し、α=0.9 のブロック(U 列)まで一気にコピーします。

9ブロック分をU列までコピー
05

予測値として採用する値を絞り込む

13 期(9 月)の行見出しを追加します。各ブロックの 13 期行(青色の 9 個のセル)がそれぞれの α に対応する次期の予測値候補です。

13期(9月)の行見出しを追加

絞り込みのしくみを整えます。「区間」(誤差の平均[MAE]を求める際の対象期数)と「誤差の平均」の見出し・値を下図のように入力します。ここでは区間の初期値として 3 を入力します。

「区間」と「誤差の平均」の枠を作成(初期値3)

α=0.1 のときの誤差の平均を計算します(OFFSET 関数の使い方は移動平均法のページを参照)。

  • =AVERAGE(OFFSET(E14, 0, 0, $B$17*-1, 1))
OFFSET関数でα=0.1の直近n期の誤差平均を計算

計算式とその右隣の空白セルを選択し、α=0.9 のブロックまでコピーします。

誤差平均をU列(α=0.9)までコピー

9 つの α に対する予測値と誤差の平均が揃いました。表としてはこれで完成です。

指数平滑法による予測表の完成(9パターンの予測値と誤差平均)
綾子

区間のセルを変えるだけで誤差の平均が再計算される。直近 6 期で見るか全期間で見るかは状況次第——ただし指数平滑法では遠い過去のウエイトはほぼゼロなので、半数程度を加味すれば十分なことが多い。

たとえば直近 6 期(区間 6)で最も小さい誤差の平均は α=0.3 のブロックにあります。このとき 13 期目の予測値(緑色の着色部分)を採用する、という判断ができます。

直近6期の誤差平均が最小のα=0.3を採用した場合の予測値
06

グラフを作る場合 / ソルバーによる α の精緻化

グラフが必要な場合は、B・C の 2 列と目的の α の「予測値」列を選択し、移動平均法と同様に折れ線グラフで描画します。

グラフ化する列の選択(B・C列と対象αの予測値列)

異なる α による予測値を並べたグラフです。α の値が小さいほどより平滑化されていること(「連綿とした流れ」に重きが置かれる)が視覚的に確認できます。

α=0.3と0.6の場合の指数平滑移動平均線の比較

α の決定にはソルバーを使う方法もあります。誤差の平均[MAE]が最小となる α を 0 < α < 1 の範囲でソルバーに探索させ、9 段階の総当たりより精緻な値を得られます。

ただし、アドインが稼働している環境が前提であること、複数アウトプットが必要な場合は都度ソルバーを走らせる手間が生じることから、シートの再計算の利便性を重視するなら適用が難しい場面もあります。

ソルバーの利用
ソルバーによるαの設定
ソルバーによって導いた最適解
ソルバーによるαの最適解

綾子