Skip to main content

Command Palette

Search for a command to run...

SYLLABUS ECONOMIC FORECASTING (3)

Updated
65 min readView as Markdown

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()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: bvar trong 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: linearsolve trong 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 ForecastEvaluator tổ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 ForecastEvaluator từ 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-forecasting cho 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).

Knowledge

Part 1 of 50