Hình dung sai phổ biến về forecasting project: "mô hình càng phức tạp càng được điểm cao, chạy ARIMA ra con số là xong". Thật ra người chấm cho điểm quyết định của bạn: vì sao chọn mô hình này, bằng chứng nào cho thấy nó tốt hơn mô hình đơn giản, và con số dự báo có nghĩa gì với người ra quyết định.
Bài này là quy trình tám bước cho một forecasting project dạng so sánh mô hình, dùng được cho các môn forecasting, business analytics hay operations management.
Lưu ý: brief và marking guide của môn bạn là căn cứ duy nhất về số mô hình phải so sánh, phần mềm được dùng và độ dài. Các con số trong ví dụ dưới đây là giả định để minh họa.
1. Đọc chuỗi dữ liệu trước khi chọn mô hình
Vẽ biểu đồ đường của toàn bộ chuỗi và gọi tên bốn thành phần: level, trend, seasonality và biến động ngẫu nhiên. Ghi lại các điểm bất thường (một cú sốc, một thay đổi cách đo). Viết thành một câu:
The series shows [trend pattern] and [seasonal pattern] over [period], with [notable events], so the candidate models are [A], [B] and [C].
Ví dụ: "Monthly sales of a hypothetical café chain show a steady upward trend and a clear December peak over 2019-2025, with a sharp drop in 2021, so the candidate models are seasonal naive, Holt-Winters and a regression with trend and monthly dummies." Tiêu chí được hưởng lợi: Data description, cho thấy bạn hiểu chuỗi trước khi chạy mô hình.
2. Chia train và test theo thời gian, không xáo trộn
Với chuỗi thời gian, tập test luôn là phần cuối của chuỗi. Giáo trình Forecasting: Principles and Practice (Hyndman và Athanasopoulos) ghi tập test thường khoảng 20% mẫu, nhưng tùy độ dài chuỗi và tầm dự báo; lý tưởng là tập test ít nhất dài bằng tầm dự báo bạn cần.
Models were estimated on [start-end] ([n] observations) and evaluated on [start-end] ([m] observations), matching the [h]-period forecast horizon.
Ví dụ: "Models were estimated on January 2019 to December 2024 (72 observations) and evaluated on January to December 2025 (12 observations), matching the 12-month forecast horizon." Tiêu chí được hưởng lợi: Methodology, vì so sánh trên dữ liệu mô hình chưa thấy mới là so sánh công bằng.
3. Bậc thang mô hình: luôn có một mô hình đơn giản làm mốc
Một mô hình phức tạp chỉ đáng dùng khi nó thắng mô hình đơn giản trên tập test. Vì vậy bảng so sánh nên bắt đầu từ naive:
| Mô hình | Ý tưởng | Hợp khi | Excel | R hoặc Python |
|---|---|---|---|---|
| Naive | Dự báo = giá trị kỳ gần nhất | Chuỗi như bước ngẫu nhiên, làm mốc | Tham chiếu ô | fable NAIVE(), tự viết trong pandas |
| Seasonal naive | Dự báo = cùng kỳ năm trước | Mùa vụ rõ | Tham chiếu ô lùi 12 tháng | fable SNAIVE() |
| Moving average (k kỳ) | Trung bình k kỳ gần nhất | Không có trend, muốn làm mượt | AVERAGE, ToolPak Moving Average | pandas rolling().mean() |
| Simple exponential smoothing | Dự báo mới = α × thực tế + (1 - α) × dự báo cũ | Không trend, không mùa vụ | ToolPak Exponential Smoothing | fable ETS(), statsmodels SimpleExpSmoothing |
| Holt, Holt-Winters | Thêm thành phần trend, mùa vụ | Có trend và/hoặc mùa vụ | FORECAST.ETS | fable ETS(), statsmodels ExponentialSmoothing |
| ARIMA(p,d,q) | Mô hình hóa tự tương quan sau khi lấy sai phân | Chuỗi dài, cần mô hình hóa tự tương quan | Không có sẵn | fable ARIMA(), statsmodels ARIMA |
| Regression với trend và biến giả mùa vụ | y = b0 + b1 × t + hệ số cho từng tháng | Muốn giải thích được từng thành phần | LINEST, ToolPak Regression | lm(), statsmodels OLS |
Hai lưu ý Excel: FORECAST.ETS dùng phiên bản AAA của thuật toán exponential smoothing theo tài liệu của Microsoft; còn ô "Damping factor" trong ToolPak thường được mô tả là 1 - α, nên hãy bấm vào một ô kết quả và đọc công thức Excel tạo ra để chắc trọng số nào đang đặt lên giá trị thực tế. Nếu bạn cần ôn lại regression, bài hướng dẫn regression report ECON1313 đi từng bước.
4. Ba thước đo sai số và cách tính tay
Gọi y(t) là giá trị thực, ŷ(t) là dự báo, e(t) = y(t) - ŷ(t), n là số kỳ trong tập test:
- MAE = (1/n) × tổng |e(t)|. Cùng đơn vị với dữ liệu, dễ giải thích.
- RMSE = căn bậc hai của (1/n) × tổng e(t)². Phạt nặng sai số lớn.
- MAPE = (100/n) × tổng |e(t) / y(t)|. Không đơn vị, dễ so giữa chuỗi, nhưng không xác định khi y(t) = 0 và cho giá trị cực lớn khi y(t) gần 0.
Ví dụ ba kỳ test: thực tế 100, 110, 120; dự báo 105, 108, 126. Sai số -5, 2, -6. MAE = 13/3 ≈ 4,33. RMSE = căn của 65/3 ≈ 4,65. MAPE = (5% + 1,82% + 5%)/3 ≈ 3,94%. Báo cáo cả ba cho mọi mô hình trong một bảng, và nói rõ bạn dùng thước đo nào làm tiêu chí chính và vì sao. Tiêu chí được hưởng lợi: Accuracy of calculations và Evaluation.
5. Kiểm tra phần dư trước khi tuyên bố mô hình thắng
Mô hình tốt để lại phần dư trông như nhiễu trắng: không còn trend, không còn mùa vụ, tự tương quan nhỏ. Vẽ phần dư theo thời gian và biểu đồ ACF; nếu môn dạy kiểm định Ljung-Box, báo cáo kết quả. Nếu phần dư còn mẫu hình, mô hình đang bỏ sót thông tin, kể cả khi sai số tập test thấp.
6. Trình bày lựa chọn mô hình như một quyết định
[Model] is preferred because it achieves the lowest [metric] on the test set ([value] vs [value] for [runner-up]) and its residuals show [no remaining pattern]. Although [alternative] is [simpler / more flexible], [reason it was not chosen].
Ví dụ trước và sau:
Trước: "ARIMA was used because it is the most advanced model. The forecast for 2026 is shown in Figure 3."
Sau: "Holt-Winters is preferred because it achieves the lowest RMSE on the 2025 test set (4.1 vs 5.3 for seasonal naive and 4.4 for ARIMA) and its residuals show no remaining seasonality. Although ARIMA is close on RMSE, its advantage disappears on MAE, and Holt-Winters is easier for the client to update monthly."
Bản trước chỉ nói mô hình "hiện đại"; bản sau so bằng số trên cùng tập test, có phần dư, và cân nhắc người dùng. Tiêu chí được hưởng lợi: Justification of model selection.
7. Viết đoạn diễn giải cho người ra quyết định
Nhiều brief chấm phần diễn giải nặng hơn phần tính, và nói thẳng rằng điểm phụ thuộc vào lựa chọn được bảo vệ tốt hay kém, vì đề không có đáp án đúng duy nhất. Đoạn diễn giải theo khuôn:
Over the next [horizon], [variable] is forecast to [direction] from [value] to [value], with a [80/95]% prediction interval of [low-high]. This implies [decision: order quantity, staffing, budget]. The forecast assumes [assumption] and should be revised if [trigger].
Ví dụ: "Over the next 12 months, monthly sales are forecast to rise from about 820 to 900 units, with a 95% prediction interval of 760-1,040 units in December. This implies ordering for the upper-mid range in Q4 to protect service level. The forecast assumes no new competitor opens nearby and should be revised if two consecutive months fall outside the interval." Tiêu chí được hưởng lợi: Interpretation và Communication. Bài OMGT2199 demand forecasting có thêm ví dụ nối dự báo với quyết định vận hành.
8. Excel hay R, Python: chọn theo brief, trình bày cho người đọc
Nếu brief yêu cầu Excel và dán ảnh chụp phần tính, hãy để công thức hiển thị được và đặt tên sheet theo mô hình. Nếu được dùng R hoặc Python, đưa code vào appendix, còn thân bài chỉ giữ bảng sai số, biểu đồ dự báo và lập luận. Dù dùng công cụ gì, người đọc phải lần lại được từ con số trong bảng về đúng ô hay đúng dòng code. Bài BAFI1026 Excel modeling có mẹo trình bày workbook, và bài cấu trúc business report chuẩn giúp bạn đặt dự báo vào executive summary.
Chị hiểu cảm giác nhìn màn hình đầy số mà không biết viết gì. Cứ đi đúng thứ tự: đọc chuỗi, chia tập, so mô hình, rồi mới viết. Phần viết sẽ dễ hơn bạn nghĩ.
Lỗi hay gặp
- Xáo trộn dữ liệu hoặc lấy tập test ở giữa chuỗi.
- Tính sai số trên chính tập train rồi so mô hình.
- Không có mô hình naive làm mốc.
- Dùng MAPE cho chuỗi có giá trị bằng hoặc gần 0.
- Nhập nhầm damping factor thành α trong ToolPak.
- Chỉ đưa một con số dự báo, không có khoảng dự báo, không có giả định.
- Kết luận "ARIMA tốt nhất" mà không có bảng so sánh.
Checklist
- Có biểu đồ toàn chuỗi và một câu mô tả trend, mùa vụ, điểm bất thường.
- Train và test chia theo thời gian, có ghi rõ số quan sát.
- Có ít nhất một mô hình mốc đơn giản.
- Bảng MAE, RMSE, MAPE trên tập test cho mọi mô hình.
- Có kiểm tra phần dư của mô hình được chọn.
- Đoạn lựa chọn mô hình theo khuôn ở mục 6.
- Đoạn diễn giải có khoảng dự báo, hàm ý quyết định, giả định và điều kiện xem lại.
Nguồn đối chiếu
Hyndman, R.J. và Athanasopoulos, G., Forecasting: Principles and Practice (3rd ed.), mục Evaluating point forecast accuracy. Microsoft Support: FORECAST.ETS function.
Đừng hỏi "mô hình nào xịn nhất". Hãy hỏi "mô hình nào thắng mô hình đơn giản trên dữ liệu nó chưa thấy, và con số đó giúp người đọc quyết định việc gì".
Cần hỗ trợ assignment / luận văn? Nhắn Facebook của 7