SYLLABUS ECONOMIC FORECASTING (3)
Giai đoạn 4 - Macroeconomic Forecasting (Ngày 376–495, 120 ngày)
PHẦN A: DYNAMIC FACTOR MODELS (Ngày 376–400)
Ngày 376: Giới thiệu Dynamic Factor Models
Mục tiêu: Hiểu động lực ra đời của DFM trong forecasting kinh tế.
Lý thuyết: Vấn đề "curse of dimensionality" khi có hàng trăm chỉ báo kinh tế; DFM giải quyết bằng cách nén thông tin.
Thực hành: Đọc tổng quan về việc FED, ECB sử dụng DFM trong nowcasting.
Ngày 377: Nhân tố tiềm ẩn (Latent Factors)
Mục tiêu: Hiểu khái niệm latent factor.
Lý thuyết: Latent factor, common component vs idiosyncratic component.
Thực hành: Minh họa bằng ví dụ: một "chu kỳ kinh tế chung" ẩn đằng sau nhiều chỉ báo quan sát được.
Ngày 378: Cấu trúc toán học của Factor Model
Mục tiêu: Viết được phương trình factor model tổng quát.
Lý thuyết: X_t = ΛF_t + e_t, factor loadings Λ, common factors F_t.
Thực hành: Viết lại phương trình cho trường hợp cụ thể 5 chỉ báo, 1 factor chung.
Ngày 379: Static vs Dynamic Factor Model
Mục tiêu: Phân biệt hai loại factor model.
Lý thuyết: Static factor model (factor không có động lực thời gian) vs dynamic factor model (factor tuân theo VAR).
Thực hành: So sánh giả định của hai loại mô hình qua ví dụ minh họa.
Ngày 380: Ước lượng Factor bằng PCA
Mục tiêu: Kết nối lại kiến thức PCA từ Giai đoạn 0 vào bài toán factor.
Lý thuyết: PCA như một phương pháp ước lượng static factor đơn giản.
Thực hành: Áp dụng PCA (đã viết từ scratch) lên bộ dữ liệu nhiều chỉ báo kinh tế Việt Nam để trích xuất factor đầu tiên.
Ngày 381: Số lượng Factor tối ưu
Mục tiêu: Biết cách chọn số lượng factor phù hợp.
Lý thuyết: Scree plot, eigenvalue > 1 criterion, Bai-Ng information criteria.
Thực hành: Áp dụng scree plot và Bai-Ng criteria để chọn số factor cho bộ dữ liệu đã có.
Ngày 382: Diễn giải Factor Loadings
Mục tiêu: Diễn giải ý nghĩa kinh tế của factor loadings.
Lý thuyết: Factor loadings thể hiện mức độ mỗi chỉ báo phản ánh factor chung.
Thực hành: Lập bảng factor loadings cho các chỉ báo, xếp hạng chỉ báo nào "đại diện" tốt nhất cho chu kỳ kinh tế.
Ngày 383: Biểu diễn State Space của DFM
Mục tiêu: Hiểu DFM có thể viết dưới dạng state space (chuẩn bị cho Phần B).
Lý thuyết: DFM như một trường hợp đặc biệt của state space model.
Thực hành: Viết lại phương trình DFM dưới dạng state equation + observation equation.
Ngày 384: Ước lượng DFM bằng thuật toán EM - Lý thuyết
Mục tiêu: Hiểu ý tưởng thuật toán EM áp dụng cho DFM.
Lý thuyết: Expectation-Maximization algorithm, E-step và M-step.
Thực hành: Vẽ sơ đồ minh họa quy trình lặp EM.
Ngày 385: Ước lượng DFM bằng thuật toán EM - Thực hành
Mục tiêu: Áp dụng EM để ước lượng DFM trên dữ liệu thực.
Lý thuyết: Ôn lại các bước lặp E-step/M-step.
Thực hành: Sử dụng
statsmodels.tsa.statespace.dynamic_factorđể ước lượng DFM.
Ngày 386: Phương pháp ước lượng hai bước (Doz-Giannone-Reichlin)
Mục tiêu: Biết phương pháp ước lượng nhanh, phổ biến trong thực hành nowcasting.
Lý thuyết: Two-step estimation, kết hợp PCA và Kalman filter.
Thực hành: Đọc tóm tắt paper gốc, so sánh ưu điểm tốc độ với phương pháp EM đầy đủ.
Ngày 387: Dữ liệu đa tần suất trong DFM
Mục tiêu: Hiểu DFM cho phép trộn dữ liệu tháng/quý (chuẩn bị cho MIDAS, Giai đoạn 6).
Lý thuyết: Mixed-frequency data trong factor model, cách xử lý biến quý như biến tháng có missing values.
Thực hành: Thiết lập cấu trúc dữ liệu mixed-frequency (GDP quý, CPI/PMI tháng) cho project sắp tới.
Ngày 388: Xử lý dữ liệu thiếu trong DFM
Mục tiêu: Biết cách DFM xử lý missing data một cách tự nhiên.
Lý thuyết: Kalman filter cho phép ước lượng ngay cả khi có missing observations - ưu điểm lớn so với PCA thuần.
Thực hành: Tạo dữ liệu có missing values ngẫu nhiên, so sánh kết quả ước lượng DFM với PCA thuần.
Ngày 389: Đánh giá Factor Model
Mục tiêu: Đánh giá chất lượng factor đã trích xuất.
Lý thuyết: Variance explained by factor, so sánh với các chỉ báo gốc.
Thực hành: Tính % variance explained bởi factor chung cho bộ dữ liệu Việt Nam.
Ngày 390: Case study - Chỉ số kiểu Stock-Watson
Mục tiêu: Học từ các chỉ số factor nổi tiếng trong thực tế.
Lý thuyết: Đọc tổng quan về ADS Index (FED Philadelphia) hoặc chỉ số coincident index kiểu Stock-Watson.
Thực hành: Tóm tắt cách các chỉ số này được xây dựng và sử dụng trong thực tế.
Ngày 391: Project Nowcasting GDP - Chọn bộ chỉ báo
Mục tiêu: Xác định tập chỉ báo phù hợp cho nowcasting GDP Việt Nam.
Lý thuyết: Tiêu chí chọn chỉ báo: tần suất cao, công bố sớm, tương quan với GDP.
Thực hành: Lập danh sách 8-10 chỉ báo (PMI, xuất khẩu, nhập khẩu, sản lượng công nghiệp, bán lẻ...).
Ngày 392: Project Nowcasting GDP - Thu thập dữ liệu đa tần suất
Mục tiêu: Có bộ dữ liệu hoàn chỉnh cho project.
Lý thuyết: Ôn lại nguồn dữ liệu đã học ở Giai đoạn 1 (GSO, PMI Vietnam).
Thực hành: Thu thập dữ liệu cho toàn bộ chỉ báo đã chọn, tổ chức theo tần suất gốc (tháng/quý).
Ngày 393: Project Nowcasting GDP - Chuẩn hóa dữ liệu
Mục tiêu: Chuẩn bị dữ liệu sẵn sàng cho ước lượng factor.
Lý thuyết: Standardization (mean 0, variance 1) bắt buộc trước khi trích factor.
Thực hành: Chuẩn hóa toàn bộ chỉ báo, xử lý stationarity nếu cần.
Ngày 394: Project Nowcasting GDP - Ước lượng Factor
Mục tiêu: Trích xuất factor chung từ bộ chỉ báo.
Lý thuyết: Ôn lại quy trình ước lượng DFM (Ngày 385).
Thực hành: Ước lượng DFM, trích xuất factor chung theo tháng.
Ngày 395: Project Nowcasting GDP - Liên kết Factor với GDP
Mục tiêu: Xây cầu nối từ factor tần suất tháng sang GDP tần suất quý (bridge equation).
Lý thuyết: Bridge equation, hồi quy GDP quý theo factor tháng (trung bình factor trong quý).
Thực hành: Ước lượng bridge equation bằng OLS.
Ngày 396: Project Nowcasting GDP - Dự báo Nowcast
Mục tiêu: Tạo ra nowcast GDP quý hiện tại.
Lý thuyết: Ôn lại cách cập nhật factor khi có dữ liệu tháng mới nhất trong quý.
Thực hành: Tính nowcast GDP quý hiện tại dựa trên dữ liệu tháng đã có.
Ngày 397: Project Nowcasting GDP - Đánh giá độ chính xác
Mục tiêu: Đánh giá chất lượng nowcast một cách nghiêm túc.
Lý thuyết: Pseudo out-of-sample evaluation cho nowcasting (giả lập từng thời điểm trong quá khứ).
Thực hành: Chạy pseudo-real-time evaluation, tính RMSE của nowcast so với GDP thực tế công bố sau đó.
Ngày 398: Project Nowcasting GDP - Viết báo cáo
Mục tiêu: Trình bày kết quả chuyên nghiệp.
Lý thuyết: Cấu trúc báo cáo nowcasting (Data, Factor extraction, Bridge equation, Evaluation).
Thực hành: Viết báo cáo hoàn chỉnh cho project Nowcasting GDP.
Ngày 399: So sánh DFM với VAR
Mục tiêu: Hiểu khi nào chọn DFM thay vì VAR.
Lý thuyết: DFM xử lý được nhiều biến (hàng chục-hàng trăm), VAR bị giới hạn bởi số tham số khi số biến tăng.
Thực hành: Lập bảng so sánh ưu/nhược điểm DFM vs VAR vs VECM đã học.
Ngày 400: Tổng kết Dynamic Factor Models
Mục tiêu: Củng cố toàn bộ Phần A.
Lý thuyết: Ôn tập Ngày 376–399.
Thực hành: Làm bài kiểm tra tổng hợp về quy trình xây dựng DFM từ đầu đến cuối.
PHẦN B: STATE SPACE MODELS (Ngày 401–430)
Ngày 401: Giới thiệu State Space Models
Mục tiêu: Hiểu vì sao state space là khung tổng quát cho nhiều mô hình đã học.
Lý thuyết: State space model như một framework thống nhất (ARIMA, DFM đều là trường hợp đặc biệt).
Thực hành: Vẽ sơ đồ minh họa mối quan hệ giữa state space và các mô hình đã học trước đó.
Ngày 402: Phương trình trạng thái (State Equation)
Mục tiêu: Hiểu thành phần mô tả động lực trạng thái ẩn.
Lý thuyết: State equation, α_t = Tα_{t-1} + Rη_t.
Thực hành: Viết phương trình trạng thái cho một ví dụ đơn giản (random walk trạng thái).
Ngày 403: Phương trình quan sát (Observation Equation)
Mục tiêu: Hiểu thành phần liên kết trạng thái ẩn với dữ liệu quan sát được.
Lý thuyết: Observation equation, y_t = Zα_t + ε_t.
Thực hành: Viết phương trình quan sát cho ví dụ GDP quan sát được với nhiễu đo lường.
Ngày 404: Mô hình Local Level
Mục tiêu: Áp dụng state space cho mô hình đơn giản nhất - local level.
Lý thuyết: Local level model, mức (level) thay đổi theo random walk.
Thực hành: Viết state space đầy đủ cho local level model.
Ngày 405: Mô hình Local Linear Trend
Mục tiêu: Mở rộng sang mô hình có cả level và slope thay đổi.
Lý thuyết: Local linear trend model.
Thực hành: Viết state space đầy đủ cho local linear trend model.
Ngày 406: Biểu diễn ARIMA dưới dạng State Space
Mục tiêu: Thấy được ARIMA (đã học Giai đoạn 3) là trường hợp đặc biệt của state space.
Lý thuyết: ARIMA state space representation (companion form).
Thực hành: Viết lại một mô hình ARIMA(2,0,1) dưới dạng state space.
Ngày 407: Kalman Filter - Trực giác
Mục tiêu: Hiểu ý tưởng cốt lõi của Kalman Filter trước khi vào công thức.
Lý thuyết: Kalman Filter như một cách kết hợp tối ưu giữa dự đoán và quan sát mới (giống trọng số Bayesian).
Thực hành: Minh họa bằng ví dụ đơn giản: kết hợp một dự đoán và một phép đo có nhiễu để có ước lượng tốt hơn.
Ngày 408: Kalman Filter - Bước dự đoán (Prediction)
Mục tiêu: Hiểu và tính được bước prediction.
Lý thuyết: Prediction step: dự đoán trạng thái và phương sai trước khi có quan sát mới.
Thực hành: Tính tay bước prediction cho local level model với tham số cụ thể.
Ngày 409: Kalman Filter - Bước cập nhật (Update)
Mục tiêu: Hiểu và tính được bước update.
Lý thuyết: Update step: kết hợp prediction với quan sát mới qua Kalman Gain.
Thực hành: Tính tay bước update tiếp theo cho ví dụ ở Ngày 408.
Ngày 410: Công thức Kalman Filter đầy đủ
Mục tiêu: Nắm vững toàn bộ công thức Kalman Filter.
Lý thuyết: Tổng hợp đầy đủ 5 phương trình Kalman Filter.
Thực hành: Viết lại toàn bộ công thức từ trí nhớ, đối chiếu với tài liệu.
Ngày 411: Cài đặt Kalman Filter từ scratch (Phần 1)
Mục tiêu: Bắt đầu tự viết Kalman Filter bằng NumPy.
Lý thuyết: Ôn lại cấu trúc ma trận cần thiết (T, R, Z, Q, H).
Thực hành: Viết hàm
predict_step()vàupdate_step().
Ngày 412: Cài đặt Kalman Filter từ scratch (Phần 2)
Mục tiêu: Hoàn thiện Kalman Filter chạy trên chuỗi dữ liệu đầy đủ.
Lý thuyết: Ôn lại vòng lặp filter qua toàn bộ chuỗi thời gian.
Thực hành: Chạy Kalman Filter tự viết trên chuỗi GDP Việt Nam (local level model), so sánh với
statsmodels.
Ngày 413: Kalman Gain - Ý nghĩa
Mục tiêu: Hiểu sâu vai trò của Kalman Gain.
Lý thuyết: Kalman Gain quyết định "tin" quan sát mới hay dự đoán cũ nhiều hơn, phụ thuộc tỷ lệ nhiễu.
Thực hành: Mô phỏng với các mức nhiễu quan sát khác nhau, quan sát Kalman Gain thay đổi thế nào.
Ngày 414: Kalman Smoother - Lý thuyết
Mục tiêu: Hiểu khác biệt giữa filtering và smoothing.
Lý thuyết: Kalman Smoother sử dụng toàn bộ dữ liệu (kể cả tương lai) để ước lượng trạng thái quá khứ tốt hơn.
Thực hành: Vẽ sơ đồ minh họa khác biệt giữa filtered estimate và smoothed estimate.
Ngày 415: Kalman Smoother - Thực hành
Mục tiêu: Áp dụng Kalman Smoother trên dữ liệu thực.
Lý thuyết: Ôn lại thuật toán RTS smoother (Rauch-Tung-Striebel).
Thực hành: Chạy Kalman Smoother cho chuỗi GDP, so sánh trực quan với kết quả filter.
Ngày 416: Ước lượng tham số State Space bằng MLE
Mục tiêu: Biết cách ước lượng các tham số chưa biết (Q, H) của mô hình.
Lý thuyết: Maximum likelihood qua prediction error decomposition.
Thực hành: Ước lượng tham số phương sai cho local level model bằng
statsmodels.
Ngày 417: Xử lý dữ liệu thiếu bằng Kalman Filter
Mục tiêu: Thấy được ưu điểm lớn của Kalman Filter với missing data.
Lý thuyết: Kalman Filter tự động "bỏ qua" bước update khi thiếu quan sát, vẫn dự đoán được.
Thực hành: Tạo chuỗi GDP có missing values, chạy Kalman Filter để nội suy giá trị thiếu.
Ngày 418: Mô hình tham số thay đổi theo thời gian
Mục tiêu: Hiểu ứng dụng state space cho time-varying parameter models.
Lý thuyết: Time-varying parameter regression, hệ số hồi quy thay đổi theo thời gian dưới dạng random walk.
Thực hành: Ước lượng một mô hình TVP đơn giản cho hệ số Phillips curve theo thời gian.
Ngày 419: Local Level Model cho Trend GDP
Mục tiêu: Áp dụng thực tế local level model.
Lý thuyết: Ôn lại ứng dụng tách trend "mềm" khỏi GDP (khác với trend tuyến tính cứng ở Giai đoạn 3).
Thực hành: Ước lượng local level model cho log GDP Việt Nam.
Ngày 420: Local Linear Trend Model cho GDP
Mục tiêu: So sánh với mô hình có cả slope thay đổi.
Lý thuyết: Ôn lại local linear trend, ứng dụng ước lượng potential GDP thay đổi theo thời gian.
Thực hành: Ước lượng local linear trend model cho GDP Việt Nam, so sánh output gap với HP filter đã học ở Giai đoạn 1 (Ngày 65).
Ngày 421: Project Nowcasting Inflation - Thiết lập State Space
Mục tiêu: Bắt đầu project nowcasting lạm phát bằng Kalman Filter.
Lý thuyết: Ôn lại cách thiết lập state space cho một biến quan sát nhiễu (CPI có nhiễu đo lường/mùa vụ).
Thực hành: Thiết lập state space model cho CPI Việt Nam (kết hợp trend + seasonal component).
Ngày 422: Project Nowcasting Inflation - Chạy Kalman Filter
Mục tiêu: Ước lượng trạng thái ẩn của lạm phát theo thời gian thực.
Lý thuyết: Ôn lại thuật toán filter.
Thực hành: Chạy Kalman Filter, trích xuất "lạm phát lõi ẩn" (unobserved core inflation).
Ngày 423: Project Nowcasting Inflation - Chạy Kalman Smoother
Mục tiêu: Có ước lượng lạm phát lõi mượt hơn cho phân tích lịch sử.
Lý thuyết: Ôn lại smoother.
Thực hành: Chạy Kalman Smoother, so sánh với chỉ số lạm phát lõi chính thức đã học ở Giai đoạn 1.
Ngày 424: Project Nowcasting Inflation - Ước lượng tham số
Mục tiêu: Tối ưu tham số mô hình bằng dữ liệu thực.
Lý thuyết: Ôn lại MLE cho state space.
Thực hành: Ước lượng tham số phương sai bằng MLE, kiểm tra hội tụ.
Ngày 425: Project Nowcasting Inflation - Dự báo Nowcast
Mục tiêu: Tạo nowcast lạm phát tháng hiện tại.
Lý thuyết: Ôn lại bước prediction để dự báo tháng tiếp theo.
Thực hành: Tính nowcast lạm phát cho tháng gần nhất chưa có dữ liệu chính thức.
Ngày 426: Project Nowcasting Inflation - Đánh giá độ chính xác
Mục tiêu: Đánh giá chất lượng nowcast.
Lý thuyết: Ôn lại pseudo real-time evaluation.
Thực hành: Đánh giá RMSE của nowcast lạm phát so với thực tế công bố sau đó.
Ngày 427: Project Nowcasting Inflation - Viết báo cáo
Mục tiêu: Hoàn thiện báo cáo project.
Lý thuyết: Ôn lại cấu trúc báo cáo nowcasting.
Thực hành: Viết báo cáo hoàn chỉnh cho project Nowcasting Inflation.
Ngày 428: So sánh Kalman Filter với DFM
Mục tiêu: Hiểu mối liên hệ và khác biệt thực dụng giữa hai công cụ.
Lý thuyết: DFM thường dùng Kalman Filter bên trong; khác biệt là DFM tập trung nén nhiều biến, state space đơn biến tập trung tách latent state.
Thực hành: Lập bảng so sánh use-case phù hợp cho từng công cụ.
Ngày 429: Ứng dụng State Space trong thực tế NHTW
Mục tiêu: Hiểu bối cảnh sử dụng thực tế.
Lý thuyết: Đọc tổng quan cách NHTW dùng state space cho ước lượng output gap, NAIRU theo thời gian thực.
Thực hành: Tóm tắt 1 case study cụ thể (VD: ước lượng NAIRU thời gian thực của FED).
Ngày 430: Tổng kết State Space Models
Mục tiêu: Củng cố toàn bộ Phần B.
Lý thuyết: Ôn tập Ngày 401–429.
Thực hành: Viết lại toàn bộ 5 phương trình Kalman Filter và giải thích ý nghĩa từng phương trình mà không nhìn tài liệu.
PHẦN C: BAYESIAN FORECASTING (Ngày 431–460)
Ngày 431: Ôn lại nền tảng Bayesian
Mục tiêu: Củng cố lại định lý Bayes trong bối cảnh ước lượng mô hình.
Lý thuyết: Ôn lại Bayes theorem (Giai đoạn 0), áp dụng cho ước lượng tham số: P(θ|data) ∝ P(data|θ)P(θ).
Thực hành: Viết lại công thức Bayes cho bài toán ước lượng một tham số đơn giản.
Ngày 432: Phân phối Prior
Mục tiêu: Hiểu vai trò và các loại prior distribution.
Lý thuyết: Informative prior, non-informative (flat) prior, weakly informative prior.
Thực hành: So sánh ảnh hưởng của 3 loại prior lên kết quả ước lượng cho cùng một bộ dữ liệu nhỏ.
Ngày 433: Phân phối Posterior
Mục tiêu: Hiểu cách tính và diễn giải posterior distribution.
Lý thuyết: Posterior distribution, posterior mean/mode/credible interval.
Thực hành: Tính posterior cho một bài toán conjugate đơn giản (Beta-Binomial).
Ngày 434: Conjugate Priors
Mục tiêu: Biết các cặp conjugate phổ biến để tính posterior đóng dạng.
Lý thuyết: Conjugate prior, ví dụ Normal-Normal, Beta-Binomial, Gamma-Poisson.
Thực hành: Suy ra công thức posterior cho trường hợp Normal-Normal bằng tay.
Ngày 435: Hồi quy Bayesian - Lý thuyết
Mục tiêu: Mở rộng OLS sang khung Bayesian.
Lý thuyết: Bayesian linear regression, prior cho hệ số hồi quy và phương sai sai số.
Thực hành: Viết lại mô hình hồi quy CPI (từ Giai đoạn 2) dưới dạng Bayesian với prior cụ thể.
Ngày 436: Giới thiệu MCMC
Mục tiêu: Hiểu vì sao cần phương pháp mô phỏng khi posterior không có dạng đóng.
Lý thuyết: Markov Chain Monte Carlo, ý tưởng lấy mẫu từ posterior.
Thực hành: Đọc và tóm tắt trực giác về cách MCMC hoạt động.
Ngày 437: Gibbs Sampling
Mục tiêu: Hiểu một thuật toán MCMC cụ thể.
Lý thuyết: Gibbs sampling, lấy mẫu tuần tự từ các phân phối điều kiện đầy đủ.
Thực hành: Cài đặt Gibbs sampler đơn giản cho bài toán Normal-Normal.
Ngày 438: Metropolis-Hastings
Mục tiêu: Hiểu thuật toán MCMC tổng quát hơn.
Lý thuyết: Metropolis-Hastings algorithm, acceptance probability.
Thực hành: Cài đặt Metropolis-Hastings đơn giản để lấy mẫu từ một phân phối tùy ý.
Ngày 439: Cài đặt Hồi quy Bayesian bằng PyMC
Mục tiêu: Thành thạo công cụ chuẩn cho Bayesian modeling.
Lý thuyết: Ôn lại cú pháp cơ bản của PyMC (model context, priors, sampling).
Thực hành: Ước lượng lại mô hình hồi quy CPI bằng PyMC, kiểm tra trace plots.
Ngày 440: Khoảng tin cậy Bayesian vs Tần suất
Mục tiêu: Diễn giải đúng credible interval khác gì confidence interval.
Lý thuyết: Credible interval (xác suất trực tiếp về tham số) vs confidence interval (tần suất lặp lại lấy mẫu).
Thực hành: So sánh khoảng tin cậy 95% (OLS) và credible interval 95% (Bayesian) cho cùng hệ số hồi quy CPI.
Ngày 441: Bayesian VAR - Động lực
Mục tiêu: Hiểu tại sao VAR thường (Giai đoạn 3) gặp vấn đề "overparameterization" và Bayesian giúp gì.
Lý thuyết: Overfitting trong VAR khi số biến/lag lớn, Bayesian shrinkage giải quyết vấn đề này.
Thực hành: Minh họa overfitting bằng cách tăng số biến/lag trong VAR thường ở Giai đoạn 3, quan sát dự báo xấu đi.
Ngày 442: BVAR - Minnesota Prior
Mục tiêu: Hiểu prior đặc thù phổ biến nhất cho BVAR.
Lý thuyết: Minnesota prior (Litterman prior), giả định random walk là prior hợp lý cho biến kinh tế vĩ mô.
Thực hành: Viết lại cấu trúc Minnesota prior cho hệ 3 biến (GDP, CPI, lãi suất).
Ngày 443: Cài đặt BVAR
Mục tiêu: Ước lượng BVAR trên dữ liệu thực.
Lý thuyết: Ôn lại thư viện có sẵn (VD:
bvartrong R, hoặc cài đặt thủ công bằng PyMC/NumPy trong Python).Thực hành: Ước lượng BVAR với Minnesota prior cho hệ GDP-CPI-lãi suất Việt Nam.
Ngày 444: So sánh BVAR với VAR thường
Mục tiêu: Đánh giá lợi ích thực tế của Bayesian shrinkage.
Lý thuyết: Ôn lại kết quả VAR thường từ Giai đoạn 3.
Thực hành: So sánh RMSE dự báo out-of-sample giữa BVAR và VAR thường trên cùng hệ dữ liệu.
Ngày 445: Bất định mô hình và Bayesian Model Averaging
Mục tiêu: Hiểu cách xử lý bất định về việc chọn mô hình nào đúng.
Lý thuyết: Model uncertainty, Bayesian Model Averaging (BMA).
Thực hành: Minh họa BMA bằng cách kết hợp dự báo từ 3 đặc tả BVAR khác nhau theo trọng số posterior.
Ngày 446: Phân tích độ nhạy với Prior
Mục tiêu: Đánh giá mức độ ảnh hưởng của lựa chọn prior lên kết quả.
Lý thuyết: Prior sensitivity analysis.
Thực hành: Chạy lại BVAR với 3 mức độ "tightness" khác nhau của Minnesota prior, so sánh kết quả dự báo.
Ngày 447: Phân phối dự báo hậu nghiệm
Mục tiêu: Hiểu cách Bayesian tự nhiên cho ra toàn bộ phân phối dự báo, không chỉ điểm.
Lý thuyết: Posterior predictive distribution.
Thực hành: Trích xuất và vẽ toàn bộ phân phối dự báo hậu nghiệm cho CPI quý tới.
Ngày 448: Dự báo mật độ từ mô hình Bayesian
Mục tiêu: Kết nối với khái niệm density forecasting sẽ học sâu ở Giai đoạn 6.
Lý thuyết: Density forecast tự nhiên có được từ Bayesian framework (khác với point forecast của OLS/ARIMA).
Thực hành: So sánh density forecast (Bayesian) với prediction interval (tần suất, từ ARIMA Giai đoạn 3) cho cùng một chuỗi.
Ngày 449: Case study - BVAR tại các NHTW
Mục tiêu: Hiểu ứng dụng thực tế của BVAR.
Lý thuyết: Đọc tổng quan cách FED, ECB, các NHTW khác sử dụng BVAR trong dự báo chính thức.
Thực hành: Tóm tắt 1 case study cụ thể về mô hình BVAR được công bố bởi một NHTW.
Ngày 450: Project BVAR - Thiết lập dữ liệu
Mục tiêu: Chuẩn bị dữ liệu cho project BVAR hoàn chỉnh.
Lý thuyết: Ôn lại dữ liệu GDP-CPI-lãi suất đã dùng ở VAR (Giai đoạn 3).
Thực hành: Chuẩn bị lại bộ dữ liệu, đảm bảo tính nhất quán với project VAR trước đó để so sánh công bằng.
Ngày 451: Project BVAR - Chọn Prior
Mục tiêu: Xác định prior phù hợp cho hệ dữ liệu Việt Nam.
Lý thuyết: Ôn lại Minnesota prior và các tham số tightness.
Thực hành: Chọn và justify tham số prior cho hệ GDP-CPI-lãi suất.
Ngày 452: Project BVAR - Ước lượng mô hình
Mục tiêu: Fit mô hình BVAR cuối cùng.
Lý thuyết: Ôn lại quy trình ước lượng bằng MCMC.
Thực hành: Ước lượng BVAR, kiểm tra hội tụ MCMC (trace plots, R-hat).
Ngày 453: Project BVAR - Dự báo và khoảng tin cậy
Mục tiêu: Tạo dự báo hoàn chỉnh với credible interval.
Lý thuyết: Ôn lại posterior predictive distribution.
Thực hành: Dự báo 4 quý tới cho cả 3 biến, vẽ credible interval 68%/95%.
Ngày 454: Project BVAR - So sánh với VAR thường
Mục tiêu: Đánh giá lợi ích của phương pháp Bayesian trong thực tế.
Lý thuyết: Ôn lại kết quả VAR từ Giai đoạn 3 (Ngày 358).
Thực hành: Lập bảng so sánh RMSE, độ rộng khoảng dự báo giữa BVAR và VAR.
Ngày 455: Project BVAR - Phân tích độ nhạy Prior
Mục tiêu: Kiểm tra độ vững của kết quả.
Lý thuyết: Ôn lại sensitivity analysis (Ngày 446).
Thực hành: Chạy lại với 2-3 mức prior khác nhau, đánh giá độ ổn định của dự báo.
Ngày 456: Project BVAR - Viết báo cáo
Mục tiêu: Hoàn thiện báo cáo project.
Lý thuyết: Ôn lại cấu trúc báo cáo Bayesian forecasting.
Thực hành: Viết báo cáo hoàn chỉnh cho project BVAR.
Ngày 457: Đọc chuyên sâu - Koop, Bayesian Econometrics
Mục tiêu: Củng cố lý thuyết bằng tài liệu chuẩn.
Lý thuyết: Đọc các chương liên quan trong sách Koop.
Thực hành: Tóm tắt 3 điểm quan trọng nhất, đối chiếu với phần đã tự học.
Ngày 458: Thảo luận Bayesian vs Frequentist
Mục tiêu: Có quan điểm rõ ràng về khi nào dùng cách tiếp cận nào.
Lý thuyết: Ôn tập so sánh triết lý và thực dụng giữa hai trường phái.
Thực hành: Viết bài luận ngắn (1 trang) về việc lựa chọn Bayesian hay Frequentist cho một hệ thống dự báo production cụ thể.
Ngày 459: Ôn tập Bayesian Forecasting
Mục tiêu: Củng cố kiến thức trước khi tổng kết.
Lý thuyết: Ôn tập Ngày 431–458.
Thực hành: Làm bộ câu hỏi ôn tập tổng hợp về MCMC, prior, posterior, BVAR.
Ngày 460: Tổng kết Bayesian Forecasting
Mục tiêu: Củng cố toàn bộ Phần C.
Lý thuyết: Tổng hợp toàn bộ quy trình Bayesian forecasting.
Thực hành: Viết sơ đồ quy trình đầy đủ từ chọn prior đến dự báo hậu nghiệm cho một bài toán mới.
PHẦN D: DSGE (Ngày 461–495)
Ngày 461: Giới thiệu DSGE
Mục tiêu: Hiểu vị trí của DSGE trong hệ sinh thái mô hình kinh tế.
Lý thuyết: Dynamic Stochastic General Equilibrium model, khác biệt căn bản so với VAR/factor model (có nền tảng vi mô).
Thực hành: Đọc tổng quan lý do các NHTW lớn (FED, ECB) phát triển và sử dụng DSGE.
Ngày 462: Nền tảng vi mô - Representative Agent
Mục tiêu: Hiểu giả định tác nhân đại diện trong DSGE.
Lý thuyết: Representative agent, microfoundations.
Thực hành: Thảo luận ưu/nhược điểm của giả định này so với mô hình có tác nhân dị biệt (heterogeneous agents).
Ngày 463: Tối ưu hóa hữu dụng trong DSGE
Mục tiêu: Thiết lập bài toán tối ưu hóa của hộ gia đình.
Lý thuyết: Ôn lại utility maximization (Giai đoạn 1) mở rộng sang nhiều thời kỳ.
Thực hành: Viết hàm mục tiêu utility liên thời gian cho hộ gia đình đại diện.
Ngày 464: Ràng buộc ngân sách liên thời gian
Mục tiêu: Thiết lập ràng buộc cho bài toán tối ưu.
Lý thuyết: Intertemporal budget constraint.
Thực hành: Viết ràng buộc ngân sách đầy đủ, thiết lập Lagrangian cho bài toán hộ gia đình.
Ngày 465: Mô hình Real Business Cycle - Giới thiệu
Mục tiêu: Hiểu mô hình DSGE cổ điển nhất.
Lý thuyết: RBC model, vai trò của technology shock trong việc giải thích chu kỳ kinh tế.
Thực hành: Vẽ sơ đồ cấu trúc mô hình RBC (hộ gia đình, doanh nghiệp, thị trường).
Ngày 466: RBC - Hàm sản xuất và Shock công nghệ
Mục tiêu: Thiết lập phía cung của mô hình.
Lý thuyết: Cobb-Douglas production function, technology shock A_t (AR(1) process).
Thực hành: Viết hàm sản xuất và quá trình shock công nghệ.
Ngày 467: RBC - Phương trình Euler
Mục tiêu: Suy ra điều kiện tối ưu liên thời gian.
Lý thuyết: Euler equation, mô tả sự đánh đổi tiêu dùng hiện tại/tương lai.
Thực hành: Suy ra phương trình Euler từ bài toán tối ưu hóa hộ gia đình bằng tay.
Ngày 468: RBC - Cân bằng thị trường lao động
Mục tiêu: Thiết lập điều kiện cân bằng lao động.
Lý thuyết: Labor market equilibrium condition, đánh đổi giữa tiêu dùng và nghỉ ngơi (leisure).
Thực hành: Suy ra điều kiện cận biên cho lựa chọn lao động.
Ngày 469: RBC - Trạng thái dừng (Steady State)
Mục tiêu: Tìm điểm cân bằng dài hạn của mô hình.
Lý thuyết: Steady state, các biến không đổi theo thời gian khi không có shock.
Thực hành: Giải hệ phương trình steady state cho mô hình RBC cơ bản.
Ngày 470: Log-linearization - Giới thiệu
Mục tiêu: Hiểu vì sao cần tuyến tính hóa mô hình phi tuyến.
Lý thuyết: Log-linearization, xấp xỉ Taylor bậc 1 quanh steady state.
Thực hành: Log-linearize một phương trình đơn giản (hàm sản xuất Cobb-Douglas) làm ví dụ.
Ngày 471: RBC - Giải mô hình bằng tuyến tính hóa
Mục tiêu: Hoàn thiện việc tuyến tính hóa toàn bộ hệ phương trình RBC.
Lý thuyết: Ôn lại quy trình log-linearize từng phương trình của mô hình.
Thực hành: Log-linearize toàn bộ hệ RBC (Euler equation, production function, labor condition).
Ngày 472: RBC - Mô phỏng phản ứng với Shock công nghệ
Mục tiêu: Quan sát động lực học của mô hình sau cú sốc.
Lý thuyết: Impulse response trong DSGE, tương tự IRF đã học ở VAR nhưng có nền tảng cấu trúc.
Thực hành: Giải hệ phương trình tuyến tính hóa bằng phương pháp số (VD:
linearsolvetrong Python), vẽ IRF cho shock công nghệ.
Ngày 473: Hạn chế của RBC
Mục tiêu: Hiểu tại sao RBC không đủ để giải thích vai trò chính sách tiền tệ.
Lý thuyết: RBC không có giá cứng nhắc → tiền tệ trung lập (money neutrality), không khớp với thực tế.
Thực hành: Thảo luận và liệt kê các hiện tượng thực tế RBC không giải thích được (VD: tác động của chính sách tiền tệ lên sản lượng).
Ngày 474: New Keynesian Model - Giới thiệu
Mục tiêu: Hiểu động lực phát triển NK model để khắc phục hạn chế của RBC.
Lý thuyết: New Keynesian model, thêm nominal rigidities (giá cứng nhắc) vào khung DSGE.
Thực hành: So sánh cấu trúc NK model với RBC model qua sơ đồ.
Ngày 475: NK - Cạnh tranh độc quyền và giá cứng nhắc
Mục tiêu: Hiểu nền tảng vi mô cho phép giá cứng nhắc tồn tại.
Lý thuyết: Monopolistic competition, nominal price rigidity.
Thực hành: Giải thích vì sao cần cạnh tranh độc quyền (không phải cạnh tranh hoàn hảo) để giá cứng nhắc có ý nghĩa.
Ngày 476: NK - Định giá kiểu Calvo
Mục tiêu: Hiểu cơ chế phổ biến nhất mô tả giá cứng nhắc.
Lý thuyết: Calvo pricing, xác suất cố định doanh nghiệp được điều chỉnh giá mỗi kỳ.
Thực hành: Viết lại giả định Calvo pricing và ý nghĩa tham số xác suất điều chỉnh giá.
Ngày 477: NK - Đường IS động (Dynamic IS)
Mục tiêu: Suy ra phương trình đầu tiên trong hệ 3 phương trình NK.
Lý thuyết: Dynamic IS curve, suy ra từ Euler equation với lãi suất thực.
Thực hành: Viết lại phương trình dynamic IS và diễn giải từng thành phần.
Ngày 478: NK - Đường Phillips mới
Mục tiêu: Suy ra phương trình thứ hai - liên kết lạm phát và output gap.
Lý thuyết: New Keynesian Phillips Curve (NKPC), vai trò kỳ vọng lạm phát tương lai.
Thực hành: Viết lại NKPC và so sánh với đường Phillips truyền thống đã học ở Giai đoạn 1.
Ngày 479: NK - Quy tắc Taylor
Mục tiêu: Suy ra phương trình thứ ba - quy tắc phản ứng chính sách tiền tệ.
Lý thuyết: Taylor rule, NHTW điều chỉnh lãi suất theo lạm phát và output gap.
Thực hành: Viết lại Taylor rule, tính lãi suất gợi ý theo công thức Taylor cho dữ liệu Việt Nam gần nhất.
Ngày 480: NK - Cân bằng tổng thể 3 phương trình
Mục tiêu: Hoàn thiện hệ mô hình NK cơ bản.
Lý thuyết: Hệ 3 phương trình: dynamic IS, NKPC, Taylor rule.
Thực hành: Viết lại toàn bộ hệ 3 phương trình dưới dạng ma trận.
Ngày 481: Giải mô hình NK bằng phương pháp số
Mục tiêu: Tìm nghiệm cho hệ phương trình động NK.
Lý thuyết: Phương pháp giải rational expectations model (Blanchard-Kahn conditions - giới thiệu sơ lược).
Thực hành: Giải hệ 3 phương trình NK bằng công cụ số trong Python.
Ngày 482: Mô phỏng phản ứng NK với Shock chính sách tiền tệ
Mục tiêu: Quan sát động lực học mô hình NK sau cú sốc chính sách.
Lý thuyết: Ôn lại IRF áp dụng cho NK model.
Thực hành: Vẽ IRF của output gap và lạm phát sau một cú sốc tăng lãi suất bất ngờ.
Ngày 483: So sánh RBC và NK
Mục tiêu: Tổng hợp hiểu biết về hai mô hình DSGE nền tảng.
Lý thuyết: Ôn lại khác biệt cốt lõi: vai trò tiền tệ, nguồn gốc biến động kinh tế.
Thực hành: Lập bảng so sánh giả định, hệ quả chính sách của RBC vs NK.
Ngày 484: Ước lượng DSGE bằng phương pháp Bayesian
Mục tiêu: Kết nối Phần C (Bayesian) với Phần D (DSGE) - cách ước lượng DSGE trong thực tế.
Lý thuyết: Bayesian estimation of DSGE models, phổ biến nhất trong thực hành hiện đại (VD: Smets-Wouters model).
Thực hành: Đọc tổng quan quy trình ước lượng Bayesian DSGE (prior cho tham số cấu trúc → MCMC → posterior).
Ngày 485: Calibration vs Estimation
Mục tiêu: Hiểu hai cách tiếp cận để xác định tham số DSGE.
Lý thuyết: Calibration (gán giá trị từ nghiên cứu khác/steady state ratios) vs formal estimation.
Thực hành: Thử calibrate các tham số cơ bản (β, α, δ) cho mô hình RBC dùng dữ liệu kinh tế Việt Nam.
Ngày 486: Đọc chuyên sâu - Galí, New Keynesian
Mục tiêu: Củng cố lý thuyết bằng tài liệu chuẩn.
Lý thuyết: Đọc các chương liên quan trong sách Galí.
Thực hành: Tóm tắt 3 điểm quan trọng nhất, đối chiếu với phần đã tự học.
Ngày 487: Project Mini DSGE - Thiết lập mô hình đơn giản
Mục tiêu: Bắt đầu xây dựng mô hình DSGE hoàn chỉnh của riêng mình.
Lý thuyết: Ôn lại toàn bộ cấu trúc NK model 3 phương trình.
Thực hành: Viết lại đầy đủ hệ phương trình cho mô hình mini DSGE sẽ xây dựng.
Ngày 488: Project Mini DSGE - Log-linearization
Mục tiêu: Tuyến tính hóa mô hình đã thiết lập.
Lý thuyết: Ôn lại quy trình log-linearization.
Thực hành: Log-linearize toàn bộ hệ phương trình của mini DSGE.
Ngày 489: Project Mini DSGE - Giải mô hình bằng Python
Mục tiêu: Tìm nghiệm số cho mô hình.
Lý thuyết: Ôn lại phương pháp giải rational expectations.
Thực hành: Cài đặt và giải hệ phương trình bằng Python (thủ công hoặc dùng thư viện hỗ trợ).
Ngày 490: Project Mini DSGE - Mô phỏng Shock công nghệ
Mục tiêu: Kiểm tra hành vi mô hình với cú sốc cung.
Lý thuyết: Ôn lại IRF cho technology shock.
Thực hành: Vẽ IRF của các biến chính sau shock công nghệ.
Ngày 491: Project Mini DSGE - Mô phỏng Shock chính sách tiền tệ
Mục tiêu: Kiểm tra hành vi mô hình với cú sốc cầu/chính sách.
Lý thuyết: Ôn lại IRF cho monetary policy shock.
Thực hành: Vẽ IRF của các biến chính sau shock lãi suất.
Ngày 492: Project Mini DSGE - So sánh với dữ liệu Việt Nam
Mục tiêu: Đánh giá tính hợp lý của mô hình so với thực tế.
Lý thuyết: So sánh định tính hình dạng IRF mô phỏng với phản ứng thực tế quan sát được (VAR đã học ở Giai đoạn 3).
Thực hành: So sánh IRF từ mini DSGE với IRF từ VAR (Ngày 357) cho cùng loại shock.
Ngày 493: Project Mini DSGE - Viết báo cáo
Mục tiêu: Hoàn thiện báo cáo project.
Lý thuyết: Ôn lại cấu trúc báo cáo cho mô hình cấu trúc (structural model).
Thực hành: Viết báo cáo hoàn chỉnh cho project Mini DSGE.
Ngày 494: Vai trò DSGE trong Forecasting thực tế
Mục tiêu: Có cái nhìn thực dụng về việc dùng DSGE trong dự báo.
Lý thuyết: Thảo luận: DSGE thường không phải công cụ dự báo chính xác nhất, nhưng quan trọng cho phân tích kịch bản chính sách (scenario analysis - sẽ gặp lại ở Capstone 3).
Thực hành: Viết bài luận ngắn về vai trò bổ sung của DSGE bên cạnh các mô hình thống kê (ARIMA, VAR, DFM) đã học.
Ngày 495: Tổng kết Giai đoạn 4 - Macroeconomic Forecasting
Mục tiêu: Củng cố toàn diện trước khi bước vào Machine Learning Forecasting.
Lý thuyết: Ôn tập tổng hợp cả 4 phần: Dynamic Factor Models, State Space Models, Bayesian Forecasting, DSGE.
Thực hành: Viết báo cáo tổng kết cá nhân: so sánh 4 nhóm phương pháp đã học ở giai đoạn này về mục đích sử dụng (nowcasting, dự báo, phân tích chính sách), độ phức tạp, và yêu cầu dữ liệu.
Giai đoạn 5 - Machine Learning Forecasting (Ngày 496–615, 120 ngày)
PHẦN A: TREE MODELS (Ngày 496–520)
Ngày 496: Giới thiệu Tree-based Models cho Forecasting
Mục tiêu: Hiểu vì sao mô hình cây trở nên phổ biến trong forecasting hiện đại.
Lý thuyết: Ưu điểm của tree-based models: bắt được non-linearity, ít cần tiền xử lý, xử lý tốt tương tác giữa biến.
Thực hành: So sánh khái niệm giữa tree-based models và các mô hình tuyến tính đã học (OLS, ARIMA, VAR).
Ngày 497: Decision Tree - Lý thuyết cơ bản
Mục tiêu: Hiểu cơ chế hoạt động của cây quyết định.
Lý thuyết: Decision tree, recursive binary splitting.
Thực hành: Vẽ tay một cây quyết định đơn giản cho bài toán dự báo CPI tăng/giảm dựa trên 2 biến.
Ngày 498: Tiêu chí phân chia (Splitting Criteria)
Mục tiêu: Hiểu cách cây chọn điểm chia tối ưu.
Lý thuyết: MSE reduction cho regression tree, information gain (tham khảo cho classification).
Thực hành: Tính tay MSE reduction cho một điểm chia cụ thể trên dữ liệu mẫu.
Ngày 499: Overfitting và Pruning
Mục tiêu: Hiểu vấn đề overfitting của cây đơn lẻ và cách khắc phục.
Lý thuyết: Overfitting trong decision tree, pre-pruning (max_depth) vs post-pruning.
Thực hành: Fit decision tree với các độ sâu khác nhau, quan sát train/test error.
Ngày 500: Cài đặt Decision Tree từ scratch
Mục tiêu: Hiểu sâu cơ chế bằng cách tự lập trình.
Lý thuyết: Ôn lại thuật toán recursive splitting.
Thực hành: Viết class
DecisionTreeRegressorđơn giản bằng Python, test trên dữ liệu giả lập.
Ngày 501: Random Forest - Lý thuyết (Bagging)
Mục tiêu: Hiểu cách kết hợp nhiều cây để giảm variance.
Lý thuyết: Bootstrap aggregating (bagging), random feature selection tại mỗi split.
Thực hành: Mô phỏng bagging đơn giản: fit nhiều decision tree trên các bootstrap sample, lấy trung bình dự báo.
Ngày 502: Random Forest - Feature Importance
Mục tiêu: Diễn giải được mức độ quan trọng của từng biến.
Lý thuyết: Feature importance dựa trên mean decrease in impurity.
Thực hành: Tính và vẽ feature importance cho một mô hình Random Forest dự báo CPI thử nghiệm.
Ngày 503: Random Forest - Điều chỉnh Hyperparameter
Mục tiêu: Biết tinh chỉnh các tham số quan trọng của Random Forest.
Lý thuyết: n_estimators, max_depth, min_samples_split, max_features.
Thực hành: Chạy grid search cho Random Forest trên dữ liệu CPI.
Ngày 504: Áp dụng Random Forest cho Dự báo CPI
Mục tiêu: Fit mô hình Random Forest hoàn chỉnh trên dữ liệu kinh tế thực.
Lý thuyết: Ôn lại yêu cầu chuyển đổi bài toán time series thành supervised learning (dùng lag features).
Thực hành: Fit Random Forest dự báo CPI với các lag features cơ bản, đánh giá RMSE.
Ngày 505: Gradient Boosting - Lý thuyết cơ bản
Mục tiêu: Hiểu ý tưởng boosting khác biệt với bagging.
Lý thuyết: Gradient boosting, học tuần tự để sửa lỗi của các cây trước.
Thực hành: Minh họa từng bước boosting: fit cây đầu tiên, tính residual, fit cây tiếp theo trên residual.
Ngày 506: Gradient Boosting - Thuật toán chi tiết
Mục tiêu: Hiểu công thức toán học đầy đủ của gradient boosting.
Lý thuyết: Gradient descent trong không gian hàm số, learning rate, loss function.
Thực hành: Cài đặt gradient boosting đơn giản từ scratch cho bài toán regression 1 biến.
Ngày 507: XGBoost - Giới thiệu và Ưu điểm
Mục tiêu: Hiểu vì sao XGBoost trở thành công cụ phổ biến nhất.
Lý thuyết: XGBoost, cải tiến so với gradient boosting truyền thống (regularization, xử lý song song, xử lý missing values).
Thực hành: Cài đặt XGBoost cơ bản cho dữ liệu CPI, so sánh tốc độ với Random Forest.
Ngày 508: XGBoost - Hyperparameters Quan Trọng
Mục tiêu: Nắm vững các tham số cần tinh chỉnh.
Lý thuyết: learning_rate, max_depth, n_estimators, subsample, colsample_bytree.
Thực hành: Chạy random search cho các hyperparameter chính trên dữ liệu CPI.
Ngày 509: XGBoost - Regularization
Mục tiêu: Hiểu cơ chế chống overfitting của XGBoost.
Lý thuyết: L1/L2 regularization trong XGBoost (alpha, lambda), early stopping.
Thực hành: So sánh mô hình có/không có regularization, quan sát tác động đến overfitting.
Ngày 510: Áp dụng XGBoost cho Dự báo CPI
Mục tiêu: Fit mô hình XGBoost hoàn chỉnh, đã tune.
Lý thuyết: Ôn lại toàn bộ quy trình từ feature đến tuning.
Thực hành: Fit XGBoost cuối cùng cho CPI, đánh giá RMSE out-of-sample.
Ngày 511: LightGBM - Giới thiệu
Mục tiêu: Hiểu điểm khác biệt của LightGBM so với XGBoost.
Lý thuyết: LightGBM, tốc độ và hiệu quả bộ nhớ vượt trội cho dữ liệu lớn.
Thực hành: Cài đặt LightGBM cơ bản cho dữ liệu CPI, so sánh tốc độ training với XGBoost.
Ngày 512: LightGBM - Leaf-wise vs Level-wise Growth
Mục tiêu: Hiểu chiến lược tăng trưởng cây khác biệt.
Lý thuyết: Leaf-wise growth (LightGBM) vs level-wise growth (XGBoost truyền thống), trade-off tốc độ/overfitting.
Thực hành: Minh họa sự khác biệt bằng sơ đồ cây được tạo ra từ hai chiến lược.
Ngày 513: Áp dụng LightGBM cho Dự báo CPI
Mục tiêu: Fit mô hình LightGBM hoàn chỉnh.
Lý thuyết: Ôn lại hyperparameters đặc trưng của LightGBM (num_leaves).
Thực hành: Fit và tune LightGBM cho CPI.
Ngày 514: So sánh XGBoost và LightGBM
Mục tiêu: Có cơ sở lựa chọn giữa hai công cụ trong thực tế.
Lý thuyết: Ôn tập so sánh tốc độ, độ chính xác, dễ sử dụng.
Thực hành: Lập bảng so sánh RMSE, thời gian training giữa XGBoost và LightGBM trên cùng dữ liệu CPI.
Ngày 515: SHAP Values - Diễn giải mô hình Tree-based
Mục tiêu: Biết công cụ diễn giải mô hình hiện đại nhất cho tree-based models.
Lý thuyết: SHAP (SHapley Additive exPlanations), dựa trên lý thuyết game Shapley value.
Thực hành: Đọc và diễn giải một SHAP summary plot mẫu.
Ngày 516: Áp dụng SHAP cho mô hình CPI
Mục tiêu: Diễn giải mô hình XGBoost/LightGBM đã xây dựng.
Lý thuyết: Ôn lại cách đọc SHAP force plot cho một dự báo cụ thể.
Thực hành: Tính SHAP values cho mô hình XGBoost dự báo CPI, vẽ summary plot và force plot cho một tháng cụ thể.
Ngày 517: Project Forecast CPI - Chuẩn bị dữ liệu
Mục tiêu: Chuẩn bị bộ dữ liệu đầy đủ cho project so sánh 3 mô hình tree.
Lý thuyết: Ôn lại lag features cơ bản (sẽ đi sâu ở Phần B).
Thực hành: Tạo bộ dữ liệu với lag features cho CPI, chia train/test theo thời gian.
Ngày 518: Project Forecast CPI - Fit và Tune 3 mô hình Tree
Mục tiêu: Xây dựng 3 mô hình hoàn chỉnh để so sánh.
Lý thuyết: Ôn lại quy trình tuning cho Random Forest, XGBoost, LightGBM.
Thực hành: Fit và tune cả 3 mô hình bằng cùng một bộ dữ liệu và cùng quy trình CV.
Ngày 519: Project Forecast CPI - Đánh giá và So sánh
Mục tiêu: Đưa ra kết luận về mô hình tốt nhất.
Lý thuyết: Ôn lại các metric đánh giá (RMSE, MAE, MAPE).
Thực hành: Lập bảng so sánh toàn diện, vẽ biểu đồ actual vs predicted cho cả 3 mô hình.
Ngày 520: Tổng kết Tree Models
Mục tiêu: Củng cố toàn bộ Phần A.
Lý thuyết: Ôn tập Ngày 496–519.
Thực hành: Viết báo cáo tổng kết so sánh Random Forest, XGBoost, LightGBM cho bài toán dự báo CPI.
PHẦN B: FEATURE ENGINEERING (Ngày 521–535)
Ngày 521: Giới thiệu Feature Engineering cho Time Series
Mục tiêu: Hiểu vì sao ML models cần feature engineering thủ công (khác với ARIMA tự động dùng lag).
Lý thuyết: Chuyển bài toán time series thành supervised learning problem.
Thực hành: Vẽ sơ đồ minh họa chuyển đổi từ chuỗi thời gian sang bảng feature-target.
Ngày 522: Lag Features
Mục tiêu: Tạo được các đặc trưng trễ cơ bản.
Lý thuyết: Lag features, chọn số lag phù hợp (liên hệ lại ACF/PACF từ Giai đoạn 3).
Thực hành: Tạo lag 1-12 tháng cho CPI, kiểm tra tương quan với target.
Ngày 523: Rolling Window Features
Mục tiêu: Tạo đặc trưng thống kê trên cửa sổ trượt.
Lý thuyết: Rolling mean, rolling std, rolling min/max.
Thực hành: Tạo rolling mean 3/6/12 tháng cho CPI và các biến liên quan.
Ngày 524: Expanding Window Features
Mục tiêu: Tạo đặc trưng dựa trên toàn bộ lịch sử tính đến thời điểm hiện tại.
Lý thuyết: Expanding window statistics, khác biệt với rolling window.
Thực hành: Tạo expanding mean/std cho một biến kinh tế, so sánh với rolling window.
Ngày 525: Diff Features và Pct Change Features
Mục tiêu: Tạo đặc trưng biến động.
Lý thuyết: First difference, percentage change, YoY/MoM growth rate.
Thực hành: Tạo các đặc trưng biến động cho toàn bộ chuỗi kinh tế đã có.
Ngày 526: Đặc trưng Ngày/Tháng
Mục tiêu: Trích xuất thông tin thời gian hữu ích.
Lý thuyết: Month, quarter, is_tet (đặc thù Việt Nam), day_of_year.
Thực hành: Tạo các đặc trưng lịch cho dữ liệu CPI, đặc biệt đánh dấu các tháng Tết.
Ngày 527: Fourier Features cho Tính Mùa Vụ
Mục tiêu: Biểu diễn tính mùa vụ dưới dạng liên tục cho ML models.
Lý thuyết: Fourier terms (sin/cos) để mã hóa chu kỳ mùa vụ, thay thế cho dummy variables mùa vụ.
Thực hành: Tạo Fourier features bậc 1-3 cho chu kỳ 12 tháng, trực quan hóa.
Ngày 528: Target Encoding cho Biến Phân Loại
Mục tiêu: Biết cách xử lý biến phân loại nếu có (VD: ngành kinh tế, khu vực).
Lý thuyết: Target encoding, one-hot encoding, rủi ro leakage khi target encoding sai cách.
Thực hành: Áp dụng target encoding đúng cách (dùng CV) cho một biến phân loại giả định.
Ngày 529: Đặc trưng Chéo giữa Nhiều Chuỗi
Mục tiêu: Tạo đặc trưng kết hợp thông tin từ nhiều chuỗi kinh tế.
Lý thuyết: Cross-series features, spread (chênh lệch giữa hai lãi suất), ratio.
Thực hành: Tạo đặc trưng chênh lệch lãi suất trong nước/quốc tế, tỷ giá thực.
Ngày 530: Chuẩn hóa Đặc trưng cho ML Models
Mục tiêu: Biết khi nào và cách chuẩn hóa dữ liệu phù hợp.
Lý thuyết: StandardScaler, MinMaxScaler - tree models không cần nhưng neural network (Phần D) cần.
Thực hành: So sánh hiệu năng XGBoost với/không chuẩn hóa (nên không đổi), chuẩn bị pipeline scaling cho phần sau.
Ngày 531: Lựa chọn Đặc trưng - Tương quan và Mutual Information
Mục tiêu: Lọc bớt đặc trưng không hữu ích.
Lý thuyết: Correlation filter, mutual information (bắt được quan hệ phi tuyến).
Thực hành: Tính mutual information giữa từng feature và target CPI, xếp hạng.
Ngày 532: Lựa chọn Đặc trưng - Recursive Feature Elimination
Mục tiêu: Áp dụng phương pháp chọn đặc trưng dựa trên mô hình.
Lý thuyết: Recursive Feature Elimination (RFE), sử dụng feature importance để loại dần.
Thực hành: Chạy RFE với XGBoost làm base estimator trên bộ feature CPI đầy đủ.
Ngày 533: Xử lý Data Leakage trong Feature Engineering
Mục tiêu: Nhận diện và tránh lỗi rò rỉ dữ liệu tương lai - lỗi phổ biến nhất trong ML forecasting.
Lý thuyết: Data leakage, ví dụ điển hình (dùng rolling statistics tính cả điểm hiện tại/tương lai).
Thực hành: Rà soát lại toàn bộ feature đã tạo, sửa các trường hợp có nguy cơ leakage (VD: đảm bảo rolling window chỉ dùng dữ liệu quá khứ - shift trước khi rolling).
Ngày 534: Project - Xây dựng bộ Feature đầy đủ cho CPI
Mục tiêu: Tổng hợp toàn bộ kỹ thuật đã học thành một pipeline hoàn chỉnh.
Lý thuyết: Ôn lại toàn bộ các loại feature đã học.
Thực hành: Viết pipeline Python tạo đầy đủ lag, rolling, diff, calendar, Fourier features cho CPI, kiểm tra không có leakage.
Ngày 535: Tổng kết Feature Engineering
Mục tiêu: Củng cố toàn bộ Phần B.
Lý thuyết: Ôn tập Ngày 521–534.
Thực hành: Đánh giá lại hiệu năng mô hình XGBoost (Phần A) với bộ feature đầy đủ mới, so sánh với bộ feature cơ bản ban đầu.
PHẦN C: FORECAST VALIDATION (Ngày 536–545)
Ngày 536: Vì sao không dùng Random Split cho Time Series
Mục tiêu: Hiểu sâu lý do phải đánh giá đặc thù cho time series.
Lý thuyết: Ôn lại data leakage khi random shuffle (dùng tương lai để dự đoán quá khứ).
Thực hành: Minh họa bằng thực nghiệm: so sánh RMSE khi dùng random split (giả tạo tốt) vs time-based split (thực tế hơn).
Ngày 537: Walk-forward Validation - Ôn lại và Mở rộng
Mục tiêu: Củng cố và mở rộng khái niệm đã học ở Giai đoạn 3 cho ML models.
Lý thuyết: Ôn lại walk-forward validation, áp dụng cho ML thay vì chỉ ARIMA.
Thực hành: Cài đặt walk-forward validation cho mô hình XGBoost.
Ngày 538: Time Series Cross-Validation
Mục tiêu: Sử dụng công cụ chuẩn có sẵn trong sklearn.
Lý thuyết:
sklearn.model_selection.TimeSeriesSplit.Thực hành: Áp dụng TimeSeriesSplit cho việc đánh giá XGBoost trên dữ liệu CPI.
Ngày 539: Expanding Window vs Sliding Window CV
Mục tiêu: Hiểu và lựa chọn giữa hai chiến lược CV.
Lý thuyết: Ôn lại từ Giai đoạn 3 (Ngày 324), áp dụng sâu hơn cho ML.
Thực hành: So sánh kết quả CV giữa hai chiến lược cho mô hình XGBoost.
Ngày 540: Nested Cross-Validation cho Hyperparameter Tuning
Mục tiêu: Tránh overfitting khi tune hyperparameter trên time series.
Lý thuyết: Nested CV, vòng ngoài đánh giá, vòng trong tuning.
Thực hành: Cài đặt nested CV cho việc tune và đánh giá XGBoost đồng thời.
Ngày 541: Đánh giá Metric - MAE, RMSE, MAPE, SMAPE
Mục tiêu: Hiểu ưu nhược điểm của từng metric.
Lý thuyết: MAE (robust với outlier), RMSE (phạt nặng lỗi lớn), MAPE (theo %, có vấn đề khi giá trị gần 0), SMAPE (symmetric MAPE).
Thực hành: Tính cả 4 metric cho cùng một dự báo, thảo luận khi nào metric nào phù hợp cho dữ liệu kinh tế.
Ngày 542: Đánh giá so với Baseline
Mục tiêu: Biết cách đặt kết quả mô hình vào ngữ cảnh so sánh hợp lý.
Lý thuyết: Naive forecast (random walk), seasonal naive, làm baseline tối thiểu.
Thực hành: Tính RMSE của naive forecast cho CPI, so sánh với XGBoost - nếu ML không thắng baseline thì cần xem lại.
Ngày 543: Kiểm định Diebold-Mariano
Mục tiêu: Biết cách kiểm định ý nghĩa thống kê khi so sánh 2 mô hình dự báo.
Lý thuyết: Diebold-Mariano test, kiểm tra liệu sự khác biệt về độ chính xác có ý nghĩa thống kê không.
Thực hành: Chạy Diebold-Mariano test so sánh ARIMA (Giai đoạn 3) và XGBoost (Phần A) cho dự báo CPI.
Ngày 544: Project - Xây Pipeline Validation Chuẩn
Mục tiêu: Có một pipeline đánh giá tái sử dụng được cho mọi mô hình ML forecasting sau này.
Lý thuyết: Ôn lại toàn bộ các thành phần: walk-forward split, multiple metrics, baseline comparison, DM test.
Thực hành: Viết hàm/class Python
ForecastEvaluatortổng hợp toàn bộ quy trình đánh giá.
Ngày 545: Tổng kết Forecast Validation
Mục tiêu: Củng cố toàn bộ Phần C.
Lý thuyết: Ôn tập Ngày 536–544.
Thực hành: Áp dụng pipeline
ForecastEvaluatorđã xây để đánh giá lại toàn bộ 3 mô hình tree từ Phần A một cách chuẩn hóa.
PHẦN D: DEEP LEARNING (Ngày 546–585)
Ngày 546: Giới thiệu Deep Learning cho Time Series
Mục tiêu: Hiểu vị trí của deep learning trong bức tranh forecasting.
Lý thuyết: Khi nào deep learning vượt trội hơn tree-based/statistical models (dữ liệu lớn, quan hệ phức tạp, chuỗi dài).
Thực hành: Thảo luận: dữ liệu kinh tế vĩ mô Việt Nam (thường ngắn, theo tháng/quý) có đủ lớn cho deep learning không?
Ngày 547: Ôn lại Neural Network cơ bản
Mục tiêu: Củng cố nền tảng trước khi vào kiến trúc chuyên biệt.
Lý thuyết: Feedforward neural network, activation functions.
Thực hành: Cài đặt một feedforward network đơn giản bằng NumPy để dự báo CPI (không dùng thời gian tuần tự).
Ngày 548: Ôn lại Backpropagation
Mục tiêu: Củng cố cơ chế học của neural network.
Lý thuyết: Backpropagation, chain rule, gradient descent.
Thực hành: Tính tay backpropagation cho một mạng 2 lớp đơn giản.
Ngày 549: Vì sao Feedforward Network không phù hợp cho Sequence
Mục tiêu: Hiểu hạn chế dẫn đến sự cần thiết của kiến trúc mới.
Lý thuyết: Feedforward network không có "bộ nhớ", không tận dụng được thứ tự thời gian một cách tự nhiên.
Thực hành: Thảo luận ví dụ cụ thể: vì sao thứ tự các tháng trong chuỗi CPI quan trọng mà feedforward network bỏ qua.
Ngày 550: RNN - Kiến trúc cơ bản
Mục tiêu: Hiểu ý tưởng cốt lõi của Recurrent Neural Network.
Lý thuyết: RNN, hidden state truyền qua các bước thời gian.
Thực hành: Vẽ sơ đồ RNN unrolled qua 5 bước thời gian.
Ngày 551: RNN - Forward Pass qua Thời gian
Mục tiêu: Hiểu công thức tính toán qua từng bước.
Lý thuyết: h_t = tanh(W_h h_{t-1} + W_x x_t + b).
Thực hành: Tính tay forward pass cho RNN 3 bước thời gian với tham số cụ thể.
Ngày 552: RNN - Backpropagation Through Time
Mục tiêu: Hiểu cách RNN học qua nhiều bước thời gian.
Lý thuyết: BPTT, gradient được tính ngược qua toàn bộ chuỗi.
Thực hành: Vẽ sơ đồ minh họa luồng gradient ngược qua các bước thời gian.
Ngày 553: Vấn đề Vanishing/Exploding Gradient
Mục tiêu: Hiểu hạn chế lớn nhất của RNN thuần.
Lý thuyết: Vanishing gradient, exploding gradient, nguyên nhân toán học (lũy thừa của ma trận trọng số).
Thực hành: Mô phỏng minh họa gradient biến mất khi chuỗi dài dần trong RNN đơn giản.
Ngày 554: Cài đặt RNN đơn giản bằng NumPy
Mục tiêu: Hiểu sâu cơ chế bằng cách tự lập trình.
Lý thuyết: Ôn lại forward pass và BPTT.
Thực hành: Viết RNN cell từ scratch, test trên chuỗi giả lập ngắn.
Ngày 555: LSTM - Động lực Ra đời
Mục tiêu: Hiểu vì sao cần kiến trúc phức tạp hơn RNN.
Lý thuyết: LSTM giải quyết vanishing gradient bằng cơ chế gate.
Thực hành: Đọc tổng quan lịch sử phát triển LSTM (Hochreiter & Schmidhuber 1997).
Ngày 556: LSTM - Cấu trúc Cell
Mục tiêu: Hiểu chi tiết 3 gate của LSTM.
Lý thuyết: Forget gate, input gate, output gate.
Thực hành: Vẽ sơ đồ chi tiết một LSTM cell, đánh dấu luồng thông tin qua từng gate.
Ngày 557: LSTM - Luồng thông tin qua Cell State
Mục tiêu: Hiểu vì sao cell state giúp LSTM nhớ thông tin dài hạn.
Lý thuyết: Cell state như một "băng chuyền" thông tin, gate kiểm soát thêm/bớt thông tin.
Thực hành: Tính tay một bước cập nhật LSTM cell state với tham số cụ thể.
Ngày 558: Cài đặt LSTM (Phần 1 - Setup)
Mục tiêu: Chuẩn bị dữ liệu và kiến trúc mô hình.
Lý thuyết: Ôn lại API PyTorch/TensorFlow cho LSTM layer.
Thực hành: Chuẩn bị dữ liệu sequence (windowing) và xây dựng kiến trúc LSTM cơ bản.
Ngày 559: Cài đặt LSTM (Phần 2 - Training)
Mục tiêu: Huấn luyện mô hình LSTM hoàn chỉnh.
Lý thuyết: Ôn lại loss function (MSE), optimizer (Adam).
Thực hành: Training LSTM trên chuỗi CPI, vẽ training/validation loss curve.
Ngày 560: GRU - Kiến trúc và So sánh với LSTM
Mục tiêu: Hiểu kiến trúc đơn giản hóa của GRU.
Lý thuyết: Gated Recurrent Unit, update gate và reset gate (ít gate hơn LSTM).
Thực hành: Vẽ sơ đồ so sánh trực quan giữa LSTM cell và GRU cell.
Ngày 561: Cài đặt GRU
Mục tiêu: Thực hành với kiến trúc thay thế cho LSTM.
Lý thuyết: Ôn lại API GRU layer.
Thực hành: Training GRU trên cùng dữ liệu CPI, so sánh thời gian training với LSTM.
Ngày 562: So sánh RNN, LSTM, GRU
Mục tiêu: Tổng hợp hiểu biết để lựa chọn kiến trúc phù hợp.
Lý thuyết: Ôn tập trade-off về độ phức tạp, tốc độ, khả năng nhớ dài hạn.
Thực hành: Lập bảng so sánh RMSE và thời gian training giữa 3 kiến trúc trên dữ liệu CPI.
Ngày 563: Chuẩn bị Dữ liệu Sequence (Windowing)
Mục tiêu: Thành thạo kỹ thuật biến chuỗi thời gian thành input cho RNN/LSTM.
Lý thuyết: Sliding window để tạo (X, y) pairs cho sequence models.
Thực hành: Viết hàm tổng quát tạo windowed dataset với window size tùy chỉnh.
Ngày 564: Chuẩn hóa Dữ liệu cho Neural Network
Mục tiêu: Đảm bảo dữ liệu phù hợp cho việc training ổn định.
Lý thuyết: Ôn lại StandardScaler/MinMaxScaler (Ngày 530), quan trọng hơn nhiều với neural network so với tree models.
Thực hành: Chuẩn hóa dữ liệu CPI đúng cách (fit scaler trên tập train, transform cả train/test).
Ngày 565: Thiết kế Kiến trúc Mạng cho Time Series Forecasting
Mục tiêu: Biết cách thiết kế kiến trúc phù hợp với bài toán.
Lý thuyết: Số lớp LSTM, số units, thêm dense layer sau LSTM để ra output.
Thực hành: Thử 2-3 kiến trúc khác nhau (1 lớp LSTM vs 2 lớp LSTM stacked), so sánh hiệu năng.
Ngày 566: Tinh chỉnh Hyperparameter cho LSTM
Mục tiêu: Tối ưu hiệu năng mô hình.
Lý thuyết: Units, number of layers, dropout rate, learning rate.
Thực hành: Chạy grid/random search cho các hyperparameter chính của LSTM.
Ngày 567: Regularization - Dropout cho RNN/LSTM
Mục tiêu: Biết cách chống overfitting cho deep learning.
Lý thuyết: Dropout, recurrent dropout đặc thù cho RNN/LSTM.
Thực hành: So sánh mô hình có/không có dropout, quan sát validation loss.
Ngày 568: Early Stopping và Learning Rate Scheduling
Mục tiêu: Áp dụng các kỹ thuật huấn luyện hiệu quả.
Lý thuyết: Early stopping dựa trên validation loss, learning rate decay/scheduling.
Thực hành: Thêm callback early stopping và learning rate scheduler vào quy trình training LSTM.
Ngày 569: Dự báo Nhiều bước - Chiến lược Recursive
Mục tiêu: Hiểu và áp dụng chiến lược dự báo multi-step đơn giản nhất.
Lý thuyết: Recursive strategy, dùng dự báo 1 bước làm input cho bước tiếp theo.
Thực hành: Cài đặt recursive multi-step forecasting cho LSTM, dự báo 6 bước tới.
Ngày 570: Dự báo Nhiều bước - Chiến lược Direct/Multi-output
Mục tiêu: Hiểu chiến lược thay thế tránh tích lũy lỗi.
Lý thuyết: Direct strategy (mô hình riêng cho mỗi horizon) vs multi-output strategy (một mô hình ra nhiều output cùng lúc).
Thực hành: Cài đặt multi-output LSTM (output layer có 6 units cho 6 bước dự báo), so sánh với recursive.
Ngày 571: Multivariate LSTM
Mục tiêu: Mở rộng sang dự báo nhiều biến đồng thời, tương tự VAR nhưng phi tuyến.
Lý thuyết: Multivariate input/output LSTM, kết hợp GDP, CPI, lãi suất.
Thực hành: Xây dựng LSTM multivariate cho 3 biến kinh tế Việt Nam.
Ngày 572: Giới thiệu Attention Mechanism
Mục tiêu: Chuẩn bị nền tảng cho Transformer (Phần E).
Lý thuyết: Attention mechanism, giải quyết hạn chế "quên" thông tin xa của LSTM.
Thực hành: Đọc và tóm tắt trực giác về cách attention "nhìn lại" các bước thời gian quan trọng.
Ngày 573: Project LSTM GDP - Chuẩn bị Dữ liệu
Mục tiêu: Chuẩn bị dữ liệu cho project LSTM hoàn chỉnh.
Lý thuyết: Ôn lại toàn bộ quy trình windowing, scaling.
Thực hành: Chuẩn bị dữ liệu GDP Việt Nam sẵn sàng cho training LSTM.
Ngày 574: Project LSTM GDP - Thiết kế Kiến trúc
Mục tiêu: Chọn kiến trúc phù hợp cho bài toán GDP.
Lý thuyết: Ôn lại các lựa chọn kiến trúc đã thử nghiệm.
Thực hành: Thiết kế kiến trúc LSTM cuối cùng cho GDP (số lớp, units, dropout).
Ngày 575: Project LSTM GDP - Training và Tuning
Mục tiêu: Huấn luyện mô hình cuối cùng.
Lý thuyết: Ôn lại early stopping, learning rate scheduling.
Thực hành: Training LSTM với đầy đủ callback, lưu lại mô hình tốt nhất.
Ngày 576: Project LSTM GDP - Đánh giá và Dự báo
Mục tiêu: Tạo dự báo và đánh giá chất lượng.
Lý thuyết: Ôn lại pipeline
ForecastEvaluatortừ Phần C.Thực hành: Đánh giá LSTM bằng walk-forward validation, dự báo 4 quý tới.
Ngày 577: Project LSTM GDP - So sánh với ARIMA/SARIMA
Mục tiêu: Đặt LSTM vào ngữ cảnh so sánh với mô hình cổ điển.
Lý thuyết: Ôn lại kết quả ARIMA/SARIMA từ Giai đoạn 3.
Thực hành: So sánh RMSE, chạy Diebold-Mariano test giữa LSTM và ARIMA cho GDP.
Ngày 578: Project LSTM GDP - Viết Báo cáo
Mục tiêu: Hoàn thiện báo cáo project.
Lý thuyết: Ôn lại cấu trúc báo cáo deep learning forecasting.
Thực hành: Viết báo cáo hoàn chỉnh cho project LSTM GDP.
Ngày 579: Hạn chế của RNN/LSTM cho Chuỗi Dài
Mục tiêu: Hiểu giới hạn còn lại để chuẩn bị học Transformer.
Lý thuyết: LSTM vẫn xử lý tuần tự (chậm), khó song song hóa, vẫn có giới hạn "nhớ" thực tế dù đã cải thiện.
Thực hành: Thảo luận: với dữ liệu kinh tế vĩ mô tần suất thấp (theo tháng/quý), hạn chế này có thực sự quan trọng không?
Ngày 580: CNN cho Time Series
Mục tiêu: Biết một hướng tiếp cận thay thế khác cho sequence modeling.
Lý thuyết: 1D convolution áp dụng cho time series, học pattern cục bộ.
Thực hành: Cài đặt một mạng CNN 1D đơn giản cho dự báo CPI, so sánh với LSTM.
Ngày 581: Temporal Convolutional Network (TCN)
Mục tiêu: Hiểu kiến trúc CNN chuyên biệt cho time series dài.
Lý thuyết: TCN, dilated convolution, causal convolution.
Thực hành: Đọc tổng quan kiến trúc TCN, vẽ sơ đồ minh họa dilated convolution.
Ngày 582: So sánh TCN với LSTM
Mục tiêu: Đánh giá ưu nhược điểm giữa hai hướng tiếp cận.
Lý thuyết: TCN có thể song song hóa tốt hơn LSTM, receptive field có thể kiểm soát rõ ràng.
Thực hành: Lập bảng so sánh tốc độ training và RMSE giữa TCN và LSTM cho CPI.
Ngày 583: Ensemble Deep Learning Models
Mục tiêu: Biết cách kết hợp nhiều mô hình deep learning để cải thiện độ chính xác.
Lý thuyết: Model averaging, weighted ensemble của LSTM/GRU/TCN.
Thực hành: Xây dựng ensemble đơn giản kết hợp dự báo từ LSTM, GRU, TCN cho CPI.
Ngày 584: Ôn tập Deep Learning
Mục tiêu: Củng cố kiến thức trước khi tổng kết.
Lý thuyết: Ôn tập Ngày 546–583.
Thực hành: Làm bộ câu hỏi ôn tập tổng hợp về RNN, LSTM, GRU, CNN/TCN.
Ngày 585: Tổng kết Deep Learning
Mục tiêu: Củng cố toàn bộ Phần D.
Lý thuyết: Tổng hợp toàn bộ các kiến trúc đã học và use-case phù hợp.
Thực hành: Viết báo cáo tổng kết cá nhân về khi nào nên/không nên dùng deep learning cho forecasting kinh tế Việt Nam (xét về độ dài dữ liệu, tần suất, độ phức tạp bài toán).
PHẦN E: TRANSFORMERS (Ngày 586–615)
Ngày 586: Giới thiệu Transformer
Mục tiêu: Hiểu bối cảnh Transformer chuyển từ NLP sang time series.
Lý thuyết: Transformer architecture (Vaswani et al. 2017), lý do thành công vượt trội trong NLP và tiềm năng cho time series.
Thực hành: Đọc tổng quan lịch sử phát triển Transformer và ứng dụng mở rộng sang forecasting.
Ngày 587: Self-Attention - Lý thuyết
Mục tiêu: Hiểu ý tưởng cốt lõi thay thế cho recurrence.
Lý thuyết: Self-attention mechanism, mỗi vị trí "chú ý" đến mọi vị trí khác trong chuỗi.
Thực hành: Vẽ sơ đồ minh họa self-attention cho một chuỗi 5 bước thời gian.
Ngày 588: Self-Attention - Công thức Query, Key, Value
Mục tiêu: Hiểu công thức toán học đầy đủ.
Lý thuyết: Attention(Q,K,V) = softmax(QK^T/√d)V.
Thực hành: Tính tay self-attention cho một ví dụ nhỏ (3 bước thời gian, vector 2 chiều).
Ngày 589: Multi-Head Attention
Mục tiêu: Hiểu cách mở rộng attention để bắt nhiều loại quan hệ.
Lý thuyết: Multi-head attention, mỗi head học một "khía cạnh" quan hệ khác nhau.
Thực hành: Vẽ sơ đồ multi-head attention với 4 head, giải thích ý nghĩa việc concatenate kết quả.
Ngày 590: Positional Encoding
Mục tiêu: Hiểu cách Transformer đưa thông tin thứ tự vào mô hình (vì attention vốn không có khái niệm thứ tự).
Lý thuyết: Positional encoding, sinusoidal encoding.
Thực hành: Cài đặt và trực quan hóa positional encoding cho chuỗi 50 bước thời gian.
Ngày 591: Kiến trúc Transformer - Encoder
Mục tiêu: Hiểu cấu trúc đầy đủ của encoder block.
Lý thuyết: Encoder block: multi-head attention + feedforward + residual connection + layer normalization.
Thực hành: Vẽ sơ đồ chi tiết một encoder block.
Ngày 592: Kiến trúc Transformer - Decoder
Mục tiêu: Hiểu cấu trúc đầy đủ của decoder block.
Lý thuyết: Decoder block, masked self-attention, cross-attention với encoder output.
Thực hành: Vẽ sơ đồ chi tiết một decoder block.
Ngày 593: Vì sao Transformer phù hợp cho Chuỗi Dài
Mục tiêu: Hiểu lợi thế cốt lõi so với RNN/LSTM.
Lý thuyết: Song song hóa hoàn toàn (không tuần tự như RNN), đường dẫn gradient ngắn hơn giữa các vị trí xa nhau.
Thực hành: Lập bảng so sánh path length giữa vị trí đầu/cuối chuỗi trong RNN vs Transformer.
Ngày 594: Temporal Fusion Transformer (TFT) - Giới thiệu
Mục tiêu: Biết kiến trúc Transformer chuyên biệt cho forecasting phổ biến nhất hiện nay.
Lý thuyết: TFT (Lim et al. 2021), thiết kế riêng cho multi-horizon time series forecasting.
Thực hành: Đọc tổng quan paper TFT, tóm tắt động lực thiết kế.
Ngày 595: TFT - Kiến trúc Chi tiết
Mục tiêu: Hiểu các thành phần đặc trưng của TFT.
Lý thuyết: Variable selection network, gating mechanisms, static covariate encoders.
Thực hành: Vẽ sơ đồ tổng thể kiến trúc TFT với các thành phần chính.
Ngày 596: TFT - Tính năng Diễn giải (Interpretability)
Mục tiêu: Hiểu ưu điểm lớn của TFT so với các Transformer khác.
Lý thuyết: Attention weights của TFT có thể diễn giải được biến nào quan trọng tại thời điểm nào.
Thực hành: Đọc ví dụ về cách diễn giải attention weights của TFT trong một ứng dụng thực tế.
Ngày 597: Cài đặt TFT bằng Thư viện
Mục tiêu: Thực hành với công cụ có sẵn.
Lý thuyết: Ôn lại API của
pytorch-forecastingcho TFT.Thực hành: Cài đặt TFT cơ bản cho dữ liệu CPI bằng
pytorch-forecasting.
Ngày 598: PatchTST - Giới thiệu Ý tưởng Patching
Mục tiêu: Biết một hướng tiếp cận Transformer khác, đơn giản và hiệu quả.
Lý thuyết: PatchTST (Nie et al. 2023), chia chuỗi thành các "patch" giống như Vision Transformer chia ảnh.
Thực hành: Vẽ sơ đồ minh họa việc chia chuỗi thời gian thành các patch.
Ngày 599: PatchTST - Kiến trúc Chi tiết
Mục tiêu: Hiểu cơ chế hoạt động đầy đủ.
Lý thuyết: Channel-independence, patch embedding, chỉ dùng encoder (đơn giản hơn TFT).
Thực hành: Đọc tổng quan paper PatchTST, tóm tắt lý do đạt hiệu năng tốt dù đơn giản.
Ngày 600: So sánh PatchTST với TFT
Mục tiêu: Có cơ sở lựa chọn giữa hai kiến trúc.
Lý thuyết: Ôn tập trade-off: TFT có interpretability tốt hơn, PatchTST đơn giản và hiệu quả hơn cho pure forecasting.
Thực hành: Lập bảng so sánh đặc điểm, use-case phù hợp cho mỗi kiến trúc.
Ngày 601: TimeGPT và Foundation Models cho Time Series
Mục tiêu: Biết xu hướng mới nhất trong lĩnh vực.
Lý thuyết: Khái niệm foundation models cho time series (TimeGPT, Chronos, Moirai...), pretrained trên dữ liệu khổng lồ.
Thực hành: Đọc tổng quan về khái niệm và tiềm năng ứng dụng của các mô hình này.
Ngày 602: Zero-shot Forecasting
Mục tiêu: Hiểu khả năng đặc biệt của foundation models.
Lý thuyết: Zero-shot forecasting, dự báo trên chuỗi mới hoàn toàn không cần training riêng.
Thực hành: Nếu có thể truy cập, thử zero-shot forecast một chuỗi kinh tế Việt Nam bằng một foundation model có sẵn (qua API/thư viện mở), so sánh với LSTM đã tự train.
Ngày 603: Ưu nhược điểm Transformer cho Forecasting Kinh tế
Mục tiêu: Có cái nhìn thực dụng về việc áp dụng Transformer cho bài toán kinh tế vĩ mô.
Lý thuyết: Transformer cần nhiều dữ liệu hơn LSTM để phát huy hiệu quả - vấn đề với dữ liệu kinh tế vĩ mô thường ngắn.
Thực hành: Viết bài luận ngắn thảo luận: liệu Transformer có thực sự phù hợp cho dữ liệu GDP/CPI Việt Nam (thường chỉ vài trăm quan sát) hay không.
Ngày 604: Project Transformer - Chuẩn bị Dữ liệu
Mục tiêu: Chuẩn bị dữ liệu cho project Transformer hoàn chỉnh.
Lý thuyết: Ôn lại định dạng dữ liệu cần thiết cho
pytorch-forecasting.Thực hành: Chuẩn bị dữ liệu GDP Việt Nam theo định dạng TimeSeriesDataSet.
Ngày 605: Project Transformer - Cài đặt TFT cho GDP
Mục tiêu: Xây dựng mô hình TFT hoàn chỉnh.
Lý thuyết: Ôn lại cấu hình TFT (hidden size, attention heads, dropout).
Thực hành: Cài đặt TFT cho dữ liệu GDP Việt Nam.
Ngày 606: Project Transformer - Training và Tuning
Mục tiêu: Huấn luyện mô hình cuối cùng.
Lý thuyết: Ôn lại early stopping, learning rate finder (đặc thù cho
pytorch-forecasting).Thực hành: Training TFT, tinh chỉnh hyperparameter cơ bản.
Ngày 607: Project Transformer - Đánh giá và Dự báo
Mục tiêu: Tạo dự báo và đánh giá chất lượng.
Lý thuyết: Ôn lại pipeline
ForecastEvaluator.Thực hành: Đánh giá TFT bằng walk-forward validation, dự báo 4 quý tới, trích xuất attention weights để diễn giải.
Ngày 608: Project Benchmark - So sánh ARIMA vs LSTM vs Transformer
Mục tiêu: Có cái nhìn tổng thể về hiệu năng các họ mô hình đã học.
Lý thuyết: Ôn lại toàn bộ kết quả từ Giai đoạn 3 (ARIMA/SARIMA), Phần D (LSTM), Phần E (TFT).
Thực hành: Lập bảng benchmark tổng hợp RMSE/MAE/MAPE cho GDP giữa 3 họ mô hình.
Ngày 609: Project Benchmark - Phân tích Trade-off
Mục tiêu: Hiểu sâu đánh đổi giữa độ chính xác và độ phức tạp.
Lý thuyết: Ôn lại chi phí triển khai, thời gian training, khả năng diễn giải của từng họ mô hình.
Thực hành: Vẽ biểu đồ scatter (độ chính xác vs độ phức tạp/thời gian training) cho toàn bộ mô hình đã benchmark.
Ngày 610: Project Benchmark - Khi nào Deep Learning không đáng dùng
Mục tiêu: Có quan điểm thực dụng, tránh over-engineering.
Lý thuyết: Với dữ liệu ít (như GDP quý Việt Nam ~100 quan sát), mô hình đơn giản (ARIMA, Random Forest) thường thắng deep learning.
Thực hành: Phân tích cụ thể trên kết quả benchmark: mô hình nào thắng cho GDP (dữ liệu ít) và liệu kết luận có khác cho CPI (dữ liệu nhiều hơn, theo tháng).
Ngày 611: Project Benchmark - Viết Báo cáo So sánh Tổng hợp
Mục tiêu: Hoàn thiện báo cáo benchmark toàn diện.
Lý thuyết: Ôn lại cấu trúc báo cáo so sánh mô hình.
Thực hành: Viết báo cáo hoàn chỉnh so sánh ARIMA, Tree models, LSTM, TFT cho cả GDP và CPI.
Ngày 612: Đọc Paper gần đây về Forecasting Kinh tế bằng Transformer
Mục tiêu: Cập nhật xu hướng nghiên cứu mới nhất.
Lý thuyết: Tìm và đọc 1 paper ứng dụng Transformer cho dự báo kinh tế vĩ mô.
Thực hành: Tóm tắt phương pháp và kết quả chính của paper.
Ngày 613: Thảo luận Xu hướng Tương lai của ML Forecasting
Mục tiêu: Có cái nhìn dài hạn về lĩnh vực.
Lý thuyết: Xu hướng: foundation models, kết hợp causal inference với ML, hybrid statistical-ML models.
Thực hành: Viết bài luận ngắn về hướng phát triển bạn quan tâm nhất cho hệ thống dự báo kinh tế Việt Nam.
Ngày 614: Ôn tập Transformers
Mục tiêu: Củng cố kiến thức Phần E trước khi tổng kết.
Lý thuyết: Ôn tập Ngày 586–613.
Thực hành: Làm bộ câu hỏi ôn tập tổng hợp về self-attention, TFT, PatchTST.
Ngày 615: Tổng kết Giai đoạn 5 - Machine Learning Forecasting
Mục tiêu: Củng cố toàn diện trước khi bước vào Advanced Economic Forecasting.
Lý thuyết: Ôn tập tổng hợp cả 5 phần: Tree Models, Feature Engineering, Forecast Validation, Deep Learning, Transformers.
Thực hành: Viết báo cáo tổng kết cá nhân: xây dựng "quyết định tree" hướng dẫn chọn mô hình (thống kê cổ điển/tree/deep learning/transformer) dựa trên đặc điểm dữ liệu (độ dài, tần suất, số biến, mục tiêu diễn giải).