跳轉到

2.3 指數平滑與需求預測#

本章導言#

第二章前兩節關注的是「成長與效率提升」(複利、學習曲線)。本節則轉向最貼近日常管理的問題:如何根據歷史銷售數據預測未來需求?

無論是原料採購、庫存補充、人力排班或生產計畫,都必須預測未來一段時間的需求量。若預測過低,將面臨缺貨、交期延誤甚至失去客戶;若預測過高,則會造成過剩庫存、資金積壓與倉儲成本上升。尤其在多品項、週轉快速的零售與製造業中,準確而簡便的短期預測往往比複雜的長期模型更具實用價值。

需求數據很少是完全平穩的。它可能同時包含:趨勢(trend)(長期上升或下降)、季節性(seasonality)(週、月、季節循環)、週期性(cycle)(較長的經濟循環)以及隨機波動(random fluctuation)。預測的任務就是從這些混雜的成分中,盡可能提取出「可預期」的部分,並對未來做出合理估計。

早期的預測多用移動平均(moving average),但它對舊數據的權重一視同仁,且對新趨勢的反應較慢。二十世紀五十年代,Robert G. Brown(羅伯特·布朗) 與 Charles C. Holt(查爾斯·霍爾特) 等人提出指數平滑(exponential smoothing),用「指數遞減」的權重給近期觀測值較大權重,舊觀測值權重逐漸減弱。這套方法計算簡單、只需少量歷史資料、適合電腦普及前的實務,也很適合大量品項同時預測,至今仍廣泛應用於企業需求規劃。

簡單移動平均(簡要對比)#

為理解指數平滑的優點,先簡單回顧移動平均。以 \(n\) 期移動平均預測下一期需求 \(F_{t+1}\) :

\[ F_{t+1} = \frac{D_t + D_{t-1} + \cdots + D_{t-n+1}}{n} \]

其中 \(D_t\) 為第 \(t\) 期實際需求。移動平均的缺點:每次都要保留最近 \(n\) 期全部資料、對所有 \(n\) 期給予相同權重 \(1/n\) 、對結構改變(如需求突然轉向上升)反應遲緩。

簡單指數平滑(Simple Exponential Smoothing)#

對於無明顯趨勢也無明顯季節性的水平型需求(level series),最常用的是簡單指數平滑。

定義平滑值(預測值) \(S_t\) 為對目前水平的估計。更新公式為:

\[ S_t = \alpha D_t + (1 - \alpha) S_{t-1}, \qquad 0 < \alpha < 1 \]

其中 \(D_t\) 為第 \(t\) 期實際需求, \(S_{t-1}\) 為前一期的平滑值。下一期的預測值即為當前平滑值:

\[ F_{t+1} = S_t \]

權重的指數遞減性質#

將公式不斷遞迴代換,可看出 \(S_t\) 實際上是所有過去實際需求的加權平均:

\[ S_t = \alpha \sum_{j=0}^{t-2} (1-\alpha)^j D_{t-j} + (1-\alpha)^{t-1} S_0 \]

權重依次為 \(\alpha, \alpha (1-\alpha), \alpha (1-\alpha)^2, \ldots\) ,呈幾何遞減。最近一期 \(D_t\) 權重最大 ( \(\alpha\) ), 較舊的需求權重按 \((1-\alpha)\) 指數衰減。因此稱為「指數平滑」。

  • 平滑常數 \(\alpha\) 選擇: \(\alpha\) 較大(如 0.8)表示較重視近期數據,對新資訊反應快速,但預測較易受隨機波動影響(不夠平滑)。 \(\alpha\) 輾小 (如 0.2) 表示較多地參考長期趨勢,預測較平穩,但對需求轉向的反應較慢。
  • **初始值 \(S_0\) **:實務上常用前幾期平均值作為初始平滑值,或直接用第一期實際需求。

例題 2.3.1:某產品連續 \(5\) 期需求為 \(D_1=100, D_2=110, D_3=105, D_4=115, D_5=112\) (單位:件)。設 \(S_0 = 100\) (或用 \(D_1\) 當初始), \(\alpha = 0.3\) 。計算 \(S_1\) 至 \(S_5\) 並預測第 \(6\) 期需求。

解: \(F_{t+1}=S_t\) 。

\(S_0 = 100\) \(S_1 = \alpha D_1 + (1-\alpha) S_0 = 0.3 \times 100 + 0.7 \times 100 = 100\) \(S_2 = 0.3 \times 10.108100 + 0.7 \times 100 = 30 + 70 = 100\) ? 等待: \(D_1=100 \Rightarrow S_1=100\) , \(D_2=110 \Rightarrow S_2 = 0.3 \times 110 + 0.7 \times 100 = 33 + 70 = 103\) , \(D_3=105 \Rightarrow S_3 = 0.3 \times 105 + 0.7 \times 103 = 35 + 71.7 = 106.7\) , \(D_4=115 \rightar{} S_4 = 0.3 \times 115 + 0.7 \times 106.7 = 35.5 + 74.13 = 109.63\) , \(D_5=112 \rightar{} S_5 = 0.3 \times 112 + 0.7 \times 109.9? 109.63 \times 0.7 = 76.741, 0.3 \times 112 = 42? 36,共 112.741?\) 正確計算: \(S_1 = 0.3\times100 + 0.7\times100 = 100\) \(S_2 = 0.3\times110 + 0.7\t.tS_1 = 33 + 70 = 103\) \(S_3 = 0.3\times105 + 0.7\timesS_2 = 33.5 + 72 = 105.5? 0.3×105=35, 0.7×103=71.7,\) S_3 = 106.7$ \(S_4 = 0.3 \times 115 + 0.7 \times S_3 = 35.5 + 74.7 106.7 = 110.19? 0.7×106.7=74.69,\) S_4 = 110.19$ \(S_5 = 0.3 × 112 + 0.7 × S_4 = 36 + 77.133 = 113.133\) 第 \(6\) 期預測 \(F_6 = S_5 \approx 113.13\) 件。

可以看出,隨著平滑,預測值逐漸趨近實際需求的水平,對近期上升趨勢也有一定反應。

趨勢型指數平滑(Holt 雙參數模型)#

當需求呈現明顯線性趨勢時(不斷上升或下降),簡單指數平滑會系統性地低估(上升趨勢)或高估 (下降趨勢)。Holt(1957) 提出的雙參數指數平滑同時平滑「水平」(level)和「趨勢」(trend)。

定義: - \(L_t\) :第 \(t\) 期水平估計值 - \(T_t\) :第 \(t\) 期趨勢估計值(每期平均增長量) - \(F_{t+m}\) :預測第 \(t+m\) 期需求

更新公式: $$ L_t = \alpha D_t + (1 - \alpha) (L_{t-1} + T_{t-1}) $$

\[ T_t = \beta (L_t - L_{t-1}) + (1 - \beta) T_{t-1}, \qquad 0 < \beta < 1 \]

預測公式: $$ F_{t+m = L_t + m\,T_t $$

其中 \(\alpha\) 用於平滑水平, \(\beta\) 用於平滑趨勢。第一個公式的 \((L_{t-1} + T_{t-1})\) 是「前一期水平加前一期趨勢」所預測的 \(D_t\) 的值,用實際需求的差異修正水平。

季節型指數平滑(Holt-Winters 三參數模型)#

對於同時有趨勢與季節性的需求,可以使用 Holt-Winters(1960) 模型。季節性有兩種常用形式:加法型(additive) 和乘法型(multiplicative)。

  • 乘法型(當季節波動幅度隨水平值大小成比例時較適用,最常見於零售): \(D_t = (L_t + b_t t) \times S_t + \epsilon_t\)
  • 加法型(季節波動幅度固定時): \(D_t = L_t + b_t t + S_t + \epsilon_t\)

這裡僅簡要說明乘法型的基本邏輯:水平與趨勢先用 Holt 方法估計,再計算季節指數 \(S_t\) (各季節相對於整體水平的比例),最終預測時將 \((L_t + m T_t)\) 乘以對應季節的季節指數。

由於篇幅限制,本節主要聚焦簡單指數平滑與 Holt 模型的數學原理與應用,季節型模型僅作概念介紹。

指數平滑的實務考量#

  • 資料需求少:只需前一期的平滑值、平滑常數、必要時趨勢與季節參數,不需儲存全部歷史資料。
  • 計算簡單:適合 Excel 或簡單系統就能埪實行。
  • 適合短期預測:一般用於 \(1 \sim 6\) 個月的短期需求預測。對長期預測(超過一年的趨勢外推),往往會低估不確定性。
  • 平滑常數的選擇方法:實務上可用「試誤法」或最小均方誤差(Mean Square Error, MSE)、平均絕對誤差(Mean Absolute Error, MAE) 等誤差指標,選擇使歷史預測誤差最小的 \(\alpha, \beta\) 值。
  • 預測誤差的監控:預測不可能百分百準確,管理者必須定期檢查**預測誤差 \(e_t = D_t - F_t\) ** 的走向,若誤差持續偏移或呈系統性模式,即表示模型已不再適用。
  • 與第1章的銜接:需求預測的數據來自工廠銷售記錄,這些記錄正是 1.3 節所強調「工廠數據的統計收集」的延伸產物。

預測誤差簡單衡量#

常用誤差指標(簡單介紹): $$ \text{MAD} = \frac{1}{n}\sum_{t=1}{n} |D_t - F_t| \quad (\text{平均絕對誤差}) $$ $$ \text{MSE} = \frac{1}{n} \sum_{t=1}{n (D_t - F_t)^2} \quad (\text{均方誤差}) $$ $$ \text{MAPE} = \frac{100\%}{n} \sum_{t:1}{n} \frac{|D_t - F_t|} |D_t| \quad (\text{平均絕對百分比誤差}) $$

MAD 用單位表示易於理解, MSE 放大大誤差的影響,MAPE 則可以跨產品比較準確率。

前因後果與驅動關係#

  • 管理問題驅動理理:戰後企業生產規模擴大、品項繁多,傳統「憑經驗訂購」難以應付多品項庫存管理。簡便有效的短期預測成為迫切需求,促使 Brown、Holt 等人在 1950 年代系統化指數平滑。
  • 理論如何改變實務:指數平滑讓中小企業也能實施系統性需求預測,不需專業計量團隊或龐大電腦。它被廣泛應用於 MRP(5.3 節)、庫存控制(5.1 篾)與配送規劃,成為現代供應鏈管理的基礎工具之一.
  • 對後續章節的影響:5.1 節 EOQ 模型假設「需求率恆定」,但實際需求往漱有波動。指數平滑的預測值可以替代 EOQ 中的「年需求量」等靜態假設。5.2 節報童模型則明確考慮隨機需求,與指數平滑「估計水平」的思路形成對比(前者估計「平均」,後者把握「分佈」)。
  • 與兄弟書的連結:《機率統計》中介紹的隨機變數、均方誤差與預測理論是指數平滑數學根源。《經濟的數學》第3章供給需求與均衡雖關注價格均衡,但企業層面的「需求預測」是供給安排的實際起點,兩者從不同角度銜接。</節>

練習#

  1. 某產品 \(D_1=50, D_2=52, D_3=48\) 。設 \(S_0=50, \alpha=0.4\) . 計算 \(S_1, S_2, S_3\) 並預測第 4 期需求。
  2. 當需求呈現上升趨勢時,簡單指數平滑的預測值會出現「落後於趨勢”的偏差。試說明原因並提出解決方案 (Holt 模型概念即可).
  3. 平滑常數 \(\alpha\) 選擇為 \(0.2\) 與 \(0.8\) 分別對預測值的「平穩性”和「反應速度」有何影響?
  4. 思考題:指數平滑只需少量資料卻能有效預測短期需求。試從「資料蒐集成本”、“計,非,一個管理角度分析其實用性。</節
  5. 思考題:預測誤差不斷監控的意義是什麼?如果某段時間預測誤差 \(e_t = D_t - F_t]都沒有正負交替,而是持續為\) +10$ 件以上,代表什麼問題?</節

年表速查#

  • 1956:Robert G. Brown 於 Smoothing, Forecasting and Prediction of Discrete Time Series 等早期研究中提出指數平滑概念。
  • 1957:Charles C. Holt 發表關於趨勢型指數平滑的研究 (Holt 雙參數模型)。
  • 1960:Peter R. Winters 擴展 Holt 模型加入季節性 (Holt-Winters 模型),用於商業預測。
  • 1960 年代以來:指數平滑廣泛應用於庫存管理系統,成為自動化需求預測的常用工具。
  • 1970 年代以來:隨著電腦普及,指數平滑被納入企業資源規劃 (ERP) 系統的預測模組.

名詞速查表#

  • 需求預測 (forecasting) : 根據歷史數據推測未來需求的過程.
  • 移動平均 (moving average) : 用最近 n 期平均值預測下一期的簡單方法.
  • 指數平滑 (exponential smoothing) : 用指數遞減權重對歷史數據加權平滑的預測方法.
  • **平滑常數 \(\alpha\) ** : 決定對最新實際需求的權重大小.
  • 水平 (level) : 需求數據的平均基準值.
  • 趨勢 (trend) : 需求隨時間呈線性上升或下降的變化.
  • 季節性 (seasonality) : 每年、每週或每月固定週期出現的規律性波動.
  • Holt 模型 : 同時平滑水平與趨勢的雙參數指數平滑.
  • Holt-Winters 模型 : 同時平滑水平、趨勢與季節性的三參數指數平滑.
  • **預測誤差 \(e_t = D_t - F_t\) ** : 實際需求與預測值的差異.