Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

คู่มือ Excel ทีละขั้นตอน: ใช้ Holt-Winters Exponential Smoothing ทำนายข้อมูลแม่นยำ

Excel เป็นเครื่องมือยอดนิยมสำหรับจัดการข้อมูลขนาดใหญ่ สามารถทำงานหลากหลายมิติได้ ในบทความนี้ จะอธิบายวิธีใช้ Holt-Winters Exponential Smoothing ใน Excel วิธีนี้เหมาะสำหรับ การทำนาย (Forecasting)

ดาวน์โหลดสมุดงาน

ดาวน์โหลดไฟล์นี้มาเปิดควบคู่กับการอ่าน

บทนำ: Holt-Winters Exponential Smoothing

Holt-Winters เป็นวิธีขั้นสูงสำหรับทำนายค่า พิจารณา ฤดูกาล (Seasonality) และ แนวโน้ม (Trend) ร่วมกัน ทำให้ค่าทำนายใกล้เคียงค่าจริง มากกว่าวิธีอื่นๆ

สูตรคำนวณค่าทำนาย (Forecast) ด้วย Holt-Winters ใน Excel:

Ft+k = (Lt + k×Tt) × St-m+k

โดยที่ F = ค่าทำนาย (Forecasted Value), L = ระดับ (Level), T = แนวโน้ม (Trend), M = 4 สำหรับรายไตรมาส, 12 สำหรับรายเดือน, S = ดัชนีฤดูกาล (Seasonality Index)

11 ขั้นตอน ทำ Holt-Winters Exponential Smoothing ใน Excel

ชุดข้อมูลวันนี้: ยอดขายรายไตรมาส จนถึงปี 2022 เราจะทำนายปี 2023

ขั้นตอนที่ 1: กำหนดค่า Alpha, Beta, Gamma เริ่มต้น (สุ่ม)

กำหนดค่าคงที่ alpha (α), beta (β), gamma (γ) เริ่มต้นแบบสุ่ม จะปรับค่าเหล่านี้ให้เหมาะสมในภายหลัง

ขั้นตอนที่ 2: คำนวณ Seasonal Index เริ่มต้น (Initial Seasonal Index)

หา Seasonal Index เริ่มต้นสำหรับ 4 ไตรมาสแรก โดย นำยอดขายแต่ละไตรมาส หารด้วย ค่าเฉลี่ยยอดขาย ของ 4 ไตรมาสแรก ใช้ AVERAGE

  • ในเซลล์ F11 ใส่สูตร: =C11/AVERAGE($C$11:$C$14)
  • กด ENTER ลาก Fill Handle ถึง F14

ขั้นตอนที่ 3: หา Level และ Trend เริ่มต้น (Initial Level and Trend)

Initial Level (L5) คือ Level ของไตรมาสที่ 5 (เพราะมี 4 ไตรมาสต่อปี) สูตร: L5 = Y5 / S1 (Y5 = ยอดขายไตรมาสที่ 5, S1 = Seasonal Index ไตรมาสที่ 1)

  • เซลล์ D15 ใส่: =C15/F11 > ENTER

Initial Trend (T5) สูตร: T5 = L5 - Y4/S4 (L5 = Level ไตรมาส 5, Y4 = ยอดขายไตรมาส 4, S4 = Seasonal Index ไตรมาส 4)

  • เซลล์ E15 ใส่: =D15-C14/F14 > ENTER

ขั้นตอนที่ 4: คำนวณ Seasonal Index ถัดไป (Next Seasonal Indexes)

สูตรทั่วไป: St = γ(Yt/Lt) + (1-γ)St-m

  • เซลล์ F15 ใส่: =$C$6*(C15/D15)+(1-$C$6)*F11 ($C$6 = gamma)
  • กด ENTER ลาก AutoFill ถึง F22 (ข้าม error ไปก่อน จะแก้ตัวเองเมื่อคำนวณ Level, Trend ถัดไป)

ขั้นตอนที่ 5: หา Level ถัดไป (Next Levels)

สูตร: Lt = α(Yt/St-m) + (1-α)(Lt-1 + Tt-1)

  • เซลล์ D16 ใส่: =$C$4*(C16/F12)+(1-$C$4)*(D15+E15) ($C$4 = alpha)
  • กด ENTER ลาก AutoFill ถึง D22

ขั้นตอนที่ 6: วัด Trend ถัดไป (Next Trends)

สูตร: Tt = β(Lt - Lt-1) + (1-β)Tt-1

  • เซลล์ E16 ใส่: =$C$5*(D16-D15)+(1-$C$5)*E15 ($C$5 = beta)
  • กด ENTER ลาก AutoFill ถึง E22

ขั้นตอนที่ 7: หาค่าทำนาย (Forecasted Values) เพื่อเปรียบเทียบกับยอดขายจริง

สูตรทำนาย (เพื่อเปรียบเทียบ): Ft = (Lt-1 + Tt-1) × St-M (เริ่มจากไตรมาสที่ 6)

  • เซลล์ G16 ใส่: =(D16+E16)*F12 > ENTER ลาก AutoFill ถึง G22

ขั้นตอนที่ 8: คำนวณ Forecasting Errors (ข้อผิดพลาดการทำนาย)

ลบค่าทำนายออกจากยอดขายจริง: Error = Actual - Forecast

  • เซลล์ H16 ใส่: =C16-G16 > ENTER ลาก AutoFill ถึง H22

ขั้นตอนที่ 9: กำหนดค่า K สำหรับไตรมาสที่จะทำนาย

K แทนช่วงเวลาอนาคตที่จะทำนาย เราจะทำนาย 4 ไตรมาสของปี 2023 ข้อมูลมีจนถึง 2022 ดังนั้น ไตรมาสแรกของ 2023 → k=1, ไตรมาสที่ 2 → k=2, ...

ขั้นตอนที่ 10: คำนวณค่าทำนายจริง (Forecasted Value)

ใช้ Level, Trend, Seasonality ล่าสุด คำนวณทำนาย 4 ไตรมาสถัดไป

  • เซลล์ G23 ใส่: =($D$22+F23*$E$22)*F19 > ENTER ลาก AutoFill ถึง G25

ขั้นตอนที่ 11: ปรับค่า Alpha, Beta, Gamma ให้เหมาะสม (Optimize)

เพื่อลดข้อผิดพลาด ใช้ Excel Solver หา α, β, γ ที่ทำให้ RMSE น้อยที่สุด

  • คำนวณ RMSE ใน C7: =SQRT(SUMSQ(H15:H21)/COUNT(H15:H21))
  • ไป Data > Solver > Set Objective: C7 (Min), By Changing Variable Cells: C4:C6 (α, β, γ)
  • เพิ่ม Constraints: 0 ≤ α,β,γ ≤ 1 > Solve
  • Solver จะปรับค่า α, β, γ ให้ RMSE ต่ำที่สุด

สิ่งที่ควรจำ

  • ต้องเปิดใช้งาน Solver Add-in ก่อน
  • ไม่ต้องกังวลค่า K สำหรับการทำนายที่เปรียบเทียบกับข้อมูลจริง (In-sample)

สรุป

บทความนี้อธิบายวิธีใช้ Holt-Winters Exponential Smoothing ใน Excel แบบทีละขั้นตอน หวังว่าจะเป็นประโยชน์ หากมีข้อสงสัย กรุณาคอมเมนต์