Syllabus Business Analytics (3)
PHASE 4 - MACHINE LEARNING FOR DECISION MAKING (Ngày 365 – 454)
Ngày 365-366: Nhập môn
Ngày 365: ML for Decision Making - Tư duy khác biệt
Mục tiêu: Định vị đúng cách tiếp cận ML trong roadmap này.
Lý thuyết: Khác biệt giữa ML Researcher (tối ưu accuracy) và Decision Scientist (dùng ML để hỗ trợ quyết định, coi trọng interpretability và business impact).
Thực hành: Viết 3 ví dụ nơi 1 model "kém chính xác hơn nhưng dễ giải thích hơn" lại tốt hơn cho ra quyết định kinh doanh.
Ngày 366: Bài toán Kinh doanh → Bài toán ML
Mục tiêu: Rèn kỹ năng framing quan trọng nhất, thường bị bỏ qua.
Lý thuyết: Quy trình chuyển 1 câu hỏi kinh doanh mơ hồ thành bài toán ML cụ thể (target variable, đơn vị phân tích, khung thời gian).
Thực hành: Chuyển đổi 3 câu hỏi kinh doanh mơ hồ (VD: "khách nào sắp rời bỏ?") thành bài toán ML cụ thể có target rõ ràng.
Tuần 1-2 - Regression (Ngày 367-378)
Ngày 367: Ôn lại Linear Regression từ góc nhìn ML
Mục tiêu: Kết nối kiến thức Phase 0 với ML pipeline thực tế.
Lý thuyết: Linear regression như 1 ML model, train/test split.
Thực hành: Train linear regression bằng scikit-learn trên dataset dự đoán giá nhà, đánh giá bằng train/test split.
Ngày 368: Ridge Regression
Mục tiêu: Hiểu regularization giải quyết overfitting.
Lý thuyết: L2 penalty, alpha hyperparameter, ý nghĩa hình học của ridge.
Thực hành: So sánh coefficient của linear regression vs ridge regression trên dataset có nhiều feature tương quan.
Ngày 369: Lasso Regression
Mục tiêu: Hiểu regularization giúp feature selection tự động.
Lý thuyết: L1 penalty, vì sao Lasso đưa 1 số coefficient về 0.
Thực hành: Dùng Lasso để tự động loại bỏ feature không quan trọng trên dataset nhiều chiều.
Ngày 370: Elastic Net & So sánh 3 loại Regression
Mục tiêu: Hiểu lựa chọn kết hợp.
Lý thuyết: Elastic Net kết hợp L1+L2, khi nào chọn loại nào.
Thực hành: Chạy cross-validation so sánh Linear/Ridge/Lasso/Elastic Net trên cùng dataset, chọn model tốt nhất.
Ngày 371: Polynomial Regression & Non-linearity
Mục tiêu: Xử lý quan hệ phi tuyến bằng linear model.
Lý thuyết: Polynomial features, trade-off bias-variance khi tăng bậc.
Thực hành: Fit polynomial regression bậc 2-3 trên dataset có quan hệ cong, quan sát overfitting khi bậc quá cao.
Ngày 372: Assumption Diagnostics cho Regression
Mục tiêu: Kiểm tra model có đáng tin không (liên hệ Phase 0).
Lý thuyết: Residual plot, Q-Q plot, kiểm tra heteroscedasticity.
Thực hành: Chạy đầy đủ diagnostic plot cho model đã train, đánh giá model có vi phạm assumption không.
Ngày 373: Interpretability của Regression - Hệ số hồi quy
Mục tiêu: Diễn giải model cho người không kỹ thuật.
Lý thuyết: Ý nghĩa coefficient, standardized coefficient để so sánh độ quan trọng.
Thực hành: Viết 1 đoạn giải thích bằng ngôn ngữ kinh doanh cho 3 coefficient quan trọng nhất của model.
Ngày 374: Quantile Regression
Mục tiêu: Vượt ra khỏi dự đoán trung bình, dự đoán cả phân phối.
Lý thuyết: Quantile regression dự đoán percentile (VD: P90 thời gian giao hàng thay vì trung bình).
Thực hành: Train quantile regression dự đoán P10/P50/P90 cho 1 dataset thời gian giao hàng.
Ngày 375: Tree-based Regression - Decision Tree
Mục tiêu: Hiểu model phi tuyến dễ diễn giải.
Lý thuyết: Cách decision tree split dữ liệu, overfitting nếu tree quá sâu.
Thực hành: Train decision tree regressor, visualize cây quyết định và giải thích 2 nhánh đầu tiên.
Ngày 376: Random Forest
Mục tiêu: Hiểu ensemble giảm variance.
Lý thuyết: Bagging, cách random forest kết hợp nhiều cây giảm overfitting.
Thực hành: So sánh performance decision tree đơn lẻ vs random forest trên cùng dataset.
Ngày 377: Feature Importance từ Tree-based Model
Mục tiêu: Diễn giải model phức tạp cho stakeholder.
Lý thuyết: Gini importance, permutation importance - khác biệt và hạn chế của từng loại.
Thực hành: Trích xuất và trực quan hóa feature importance từ random forest đã train ở Ngày 376.
Ngày 378: Dự án Regression tổng hợp
Mục tiêu: Tổng hợp tuần 1-2.
Lý thuyết: Checklist chọn loại regression phù hợp theo bài toán.
Thực hành: Giải 1 bài toán kinh doanh hoàn chỉnh bằng regression (VD: dự đoán doanh thu cửa hàng), so sánh 3+ model, chọn model cuối và giải thích lý do bằng ngôn ngữ business.
Tuần 3-4 - Classification (Ngày 379-390)
Ngày 379: Logistic Regression
Mục tiêu: Hiểu model phân loại cơ bản nhất.
Lý thuyết: Sigmoid function, log-odds, cách diễn giải coefficient khác regression tuyến tính.
Thực hành: Train logistic regression dự đoán churn khách hàng, diễn giải odds ratio của 2 feature quan trọng.
Ngày 380: Decision Boundary & Class Imbalance
Mục tiêu: Hiểu vấn đề dữ liệu mất cân bằng - cực kỳ phổ biến trong bài toán kinh doanh (fraud, churn).
Lý thuyết: Decision boundary, vấn đề khi 1 class chiếm 95%+ dữ liệu.
Thực hành: Train model trên dataset mất cân bằng, quan sát model "lười" dự đoán toàn class đa số.
Ngày 381: Xử lý Class Imbalance
Mục tiêu: Có công cụ xử lý vấn đề Ngày 380.
Lý thuyết: Oversampling (SMOTE), undersampling, class weight.
Thực hành: Áp dụng SMOTE và class_weight, so sánh performance trước/sau trên dataset churn.
Ngày 382: Decision Tree cho Classification
Mục tiêu: Áp dụng lại kiến thức tree sang bài toán phân loại.
Lý thuyết: Gini impurity, entropy - tiêu chí split cho classification.
Thực hành: Train decision tree classifier, visualize và giải thích logic phân loại.
Ngày 383: Random Forest cho Classification
Mục tiêu: Áp dụng ensemble cho phân loại.
Lý thuyết: Voting mechanism trong random forest classifier.
Thực hành: Train random forest classifier cho bài toán churn, so sánh với logistic regression.
Ngày 384: Gradient Boosting - Khái niệm
Mục tiêu: Hiểu ensemble mạnh nhất cho dữ liệu dạng bảng.
Lý thuyết: Boosting khác bagging thế nào, ý tưởng "học từ lỗi của model trước".
Thực hành: Đọc tài liệu giải thích trực quan gradient boosting, vẽ sơ đồ mô tả quy trình.
Ngày 385: XGBoost - Thực hành
Mục tiêu: Thành thạo thư viện boosting phổ biến nhất trong thực tế.
Lý thuyết: Hyperparameter chính của XGBoost (learning_rate, max_depth, n_estimators), early stopping.
Thực hành: Train XGBoost cho bài toán churn, dùng early stopping để tránh overfitting.
Ngày 386: XGBoost - Hyperparameter Tuning
Mục tiêu: Tối ưu model một cách có hệ thống.
Lý thuyết: Grid search vs random search vs Bayesian optimization (khái niệm).
Thực hành: Chạy
RandomizedSearchCVtìm bộ hyperparameter tốt nhất cho XGBoost.
Ngày 387: LightGBM & So sánh với XGBoost
Mục tiêu: Biết thêm lựa chọn thay thế nhanh hơn.
Lý thuyết: Leaf-wise growth (LightGBM) vs level-wise growth (XGBoost), khi nào chọn loại nào.
Thực hành: Train LightGBM trên cùng dataset, so sánh tốc độ training và performance với XGBoost.
Ngày 388: Multi-class Classification
Mục tiêu: Mở rộng ra bài toán nhiều hơn 2 class.
Lý thuyết: One-vs-Rest, One-vs-One, softmax.
Thực hành: Train model phân loại khách hàng vào 3+ phân khúc (thay vì churn/không churn nhị phân).
Ngày 389: Calibration của Probability
Mục tiêu: Đảm bảo xác suất model dự đoán ra có ý nghĩa thực sự - quan trọng khi dùng cho quyết định kinh doanh (VD: ưu tiên gọi khách theo xác suất churn).
Lý thuyết: Model có thể phân loại đúng nhưng xác suất không hiệu chỉnh (miscalibrated); calibration curve, Platt scaling.
Thực hành: Vẽ calibration curve cho model XGBoost đã train, áp dụng calibration nếu cần.
Ngày 390: Dự án Classification tổng hợp
Mục tiêu: Tổng hợp tuần 3-4.
Lý thuyết: Checklist chọn model classification theo bài toán kinh doanh.
Thực hành: Giải hoàn chỉnh bài toán churn prediction: xử lý imbalance, so sánh 4+ model, chọn model cuối dựa trên business cost của False Positive/False Negative.
Tuần 5 - Evaluation (Ngày 391-398)
Ngày 391: Confusion Matrix
Mục tiêu: Hiểu nền tảng đánh giá classification.
Lý thuyết: True Positive/False Positive/True Negative/False Negative, ý nghĩa kinh doanh của từng loại lỗi.
Thực hành: Tính confusion matrix cho model churn, diễn giải chi phí kinh doanh của False Negative (bỏ lỡ khách sắp rời bỏ).
Ngày 392: Precision, Recall, F1
Mục tiêu: Chọn đúng metric theo bài toán.
Lý thuyết: Trade-off precision-recall, khi nào ưu tiên precision (VD: spam filter) hay recall (VD: phát hiện gian lận).
Thực hành: Tính precision/recall/F1 cho model churn ở các threshold khác nhau, chọn threshold phù hợp business goal.
Ngày 393: ROC & AUC
Mục tiêu: Đánh giá model độc lập với threshold.
Lý thuyết: ROC curve, AUC - ý nghĩa và giới hạn (nhạy cảm với class imbalance).
Thực hành: Vẽ ROC curve so sánh 3 model đã train, chọn model có AUC cao nhất.
Ngày 394: Precision-Recall Curve
Mục tiêu: Đánh giá đúng hơn ROC khi dữ liệu mất cân bằng.
Lý thuyết: Vì sao PR curve tốt hơn ROC cho dataset imbalanced.
Thực hành: So sánh ROC vs PR curve trên dataset churn (imbalanced), giải thích khác biệt insight.
Ngày 395: Đánh giá Regression Model
Mục tiêu: Ôn lại và mở rộng metric cho regression.
Lý thuyết: MAE, RMSE, MAPE - ưu nhược của từng loại, khi nào MAPE gây hiểu lầm.
Thực hành: Tính đầy đủ 3 metric cho model regression đã train ở tuần 1-2, giải thích metric nào phù hợp báo cáo cho sếp.
Ngày 396: Cross-Validation
Mục tiêu: Đánh giá model đáng tin cậy hơn train/test split đơn giản.
Lý thuyết: K-fold CV, stratified K-fold cho classification imbalanced.
Thực hành: Chạy 5-fold cross-validation cho model churn, báo cáo mean ± std của AUC.
Ngày 397: Đánh giá qua lăng kính Business Cost
Mục tiêu: Kết nối metric kỹ thuật với quyết định kinh doanh - đây là khác biệt cốt lõi của Decision Scientist.
Lý thuyết: Cost matrix (gán chi phí cụ thể cho FP/FN), expected cost minimization.
Thực hành: Xây cost matrix cho bài toán churn (chi phí giữ chân nhầm vs bỏ lỡ khách rời bỏ), chọn threshold tối ưu chi phí thay vì tối ưu accuracy.
Ngày 398: Dự án Evaluation tổng hợp
Mục tiêu: Tổng hợp tuần 5.
Lý thuyết: Checklist báo cáo đánh giá model đầy đủ cho stakeholder phi kỹ thuật.
Thực hành: Viết báo cáo đánh giá model churn hoàn chỉnh: metric kỹ thuật + business cost + khuyến nghị threshold.
Tuần 6-7 - Feature Engineering (Ngày 399-410)
Ngày 399: Feature Engineering - Tổng quan
Mục tiêu: Hiểu vì sao feature engineering thường quan trọng hơn chọn model.
Lý thuyết: "Garbage in, garbage out", quy trình feature engineering trong pipeline.
Thực hành: Liệt kê 10 feature tiềm năng cho bài toán churn từ dữ liệu thô (transaction, support ticket, login log).
Ngày 400: Xử lý Missing Data
Mục tiêu: Xử lý dữ liệu thiếu đúng cách.
Lý thuyết: MCAR/MAR/MNAR, các chiến lược impute (mean/median/mode, model-based imputation).
Thực hành: Áp dụng 3 chiến lược impute khác nhau, so sánh ảnh hưởng đến performance model.
Ngày 401: Encoding Categorical Variables
Mục tiêu: Chuyển dữ liệu categorical thành dạng model hiểu được.
Lý thuyết: One-hot encoding, label encoding, target encoding - rủi ro leakage của target encoding.
Thực hành: Áp dụng 3 kỹ thuật encoding cho feature categorical có nhiều category, so sánh kết quả.
Ngày 402: Scaling & Normalization
Mục tiêu: Chuẩn hóa dữ liệu cho model nhạy cảm với scale.
Lý thuyết: StandardScaler vs MinMaxScaler, khi nào cần scale (linear model, KNN) và khi nào không cần (tree-based).
Thực hành: So sánh performance logistic regression có và không có scaling.
Ngày 403: Temporal Feature Engineering
Mục tiêu: Trích xuất đặc trưng từ dữ liệu thời gian - cực kỳ quan trọng cho bài toán kinh doanh.
Lý thuyết: Ngày trong tuần, giờ trong ngày, ngày lễ, seasonality features.
Thực hành: Tạo feature thời gian từ timestamp giao dịch, đánh giá tác động đến model.
Ngày 404: Aggregation Features (RFM-style)
Mục tiêu: Kết nối lại với kiến thức RFM ở Phase 1.
Lý thuyết: Rolling aggregation (tổng/trung bình 7/30/90 ngày gần nhất).
Thực hành: Tạo feature rolling aggregation từ lịch sử giao dịch khách hàng cho bài toán churn.
Ngày 405: Feature từ Text đơn giản
Mục tiêu: Trích xuất tín hiệu từ dữ liệu text (VD: nội dung support ticket).
Lý thuyết: TF-IDF cơ bản, độ dài text, keyword flag.
Thực hành: Tạo feature TF-IDF từ nội dung ticket hỗ trợ khách hàng, thêm vào model churn.
Ngày 406: Feature Selection
Mục tiêu: Loại bỏ feature thừa/gây nhiễu.
Lý thuyết: Filter methods (correlation), wrapper methods (RFE), embedded methods (Lasso, tree importance).
Thực hành: Áp dụng Recursive Feature Elimination (RFE) để chọn top 15 feature quan trọng nhất.
Ngày 407: Data Leakage - Nhận diện & Phòng tránh
Mục tiêu: Tránh lỗi nghiêm trọng nhất khiến model "tốt giả tạo" khi test nhưng fail khi triển khai.
Lý thuyết: Target leakage, train-test contamination, temporal leakage.
Thực hành: Tìm và sửa 1 trường hợp leakage cố ý cài trong dataset mẫu (VD: feature tính từ dữ liệu tương lai).
Ngày 408: Feature Store - Khái niệm
Mục tiêu: Hiểu vấn đề feature bị tính toán lặp lại giữa training và serving.
Lý thuyết: Train-serve skew, vai trò feature store trong việc đảm bảo tính nhất quán.
Thực hành: Đọc tài liệu giới thiệu khái niệm feature store, tóm tắt vấn đề nó giải quyết.
Ngày 409: Pipeline hóa Feature Engineering
Mục tiêu: Đảm bảo feature engineering tái lập được, không làm thủ công lặp lại.
Lý thuyết:
sklearn.Pipeline,ColumnTransformer.Thực hành: Đóng gói toàn bộ bước feature engineering (impute, encode, scale) đã làm thành 1 sklearn Pipeline duy nhất.
Ngày 410: Dự án Feature Engineering tổng hợp
Mục tiêu: Tổng hợp tuần 6-7.
Lý thuyết: Checklist feature engineering "an toàn" (không leakage, tái lập được).
Thực hành: Xây pipeline feature engineering hoàn chỉnh cho bài toán churn, train lại model với feature set mới, đo cải thiện so với model Ngày 390.
Tuần 8-10 - ML Pipelines: MLflow, Feast, Kubeflow (Ngày 411-425)
Ngày 411: Vì sao cần MLOps
Mục tiêu: Hiểu khoảng cách giữa "model chạy trong notebook" và "model chạy production".
Lý thuyết: Vòng đời model (train → track → deploy → monitor → retrain), vấn đề model drift.
Thực hành: Liệt kê 5 vấn đề sẽ gặp nếu chỉ chạy model churn trong notebook rồi gửi email kết quả 1 lần.
Ngày 412: MLflow - Tracking
Mục tiêu: Ghi lại toàn bộ thí nghiệm để tái lập và so sánh.
Lý thuyết: Experiment, run, params, metrics, artifacts trong MLflow.
Thực hành: Cài MLflow, log 5 lần train model churn với hyperparameter khác nhau, so sánh trên MLflow UI.
Ngày 413: MLflow - Model Registry
Mục tiêu: Quản lý vòng đời model có kiểm soát.
Lý thuyết: Model versioning, stage (Staging/Production/Archived).
Thực hành: Đăng ký model churn tốt nhất vào Model Registry, chuyển qua các stage.
Ngày 414: MLflow - Packaging & Serving
Mục tiêu: Đóng gói model để phục vụ dự đoán.
Lý thuyết: MLflow Model format,
mlflow models serve.Thực hành: Serve model churn qua REST API local bằng MLflow, gửi request test.
Ngày 415: MLflow - Tích hợp CI/CD
Mục tiêu: Tự động hóa quy trình training/deploy.
Lý thuyết: Vị trí MLflow trong pipeline CI/CD cho ML.
Thực hành: Viết script tự động: train → log MLflow → nếu metric tốt hơn model hiện tại thì tự động promote lên Production stage.
Ngày 416: Feast - Giới thiệu Feature Store
Mục tiêu: Thực hành khái niệm đã học Ngày 408.
Lý thuyết: Kiến trúc Feast: offline store, online store, feature view.
Thực hành: Cài Feast, định nghĩa 1 feature view từ dữ liệu đã có ở Phase 3 (warehouse).
Ngày 417: Feast - Offline vs Online Store
Mục tiêu: Hiểu cách phục vụ feature cho training vs real-time serving.
Lý thuyết: Offline store (dùng cho training, dữ liệu lịch sử) vs online store (dùng cho serving, độ trễ thấp).
Thực hành: Lấy feature từ offline store cho training, sau đó materialize sang online store (Redis) cho serving.
Ngày 418: Feast - Point-in-time Correctness
Mục tiêu: Tránh leakage khi lấy feature lịch sử (liên hệ Ngày 407).
Lý thuyết: Vấn đề "point-in-time join" - đảm bảo feature tại thời điểm training không dùng dữ liệu tương lai.
Thực hành: Dùng Feast
get_historical_featuresđể lấy feature đúng thời điểm cho tập training.
Ngày 419: Kubeflow - Giới thiệu
Mục tiêu: Làm quen nền tảng ML trên Kubernetes (biết ở mức khái niệm, không cần cluster K8s thật).
Lý thuyết: Kubeflow Pipelines - orchestrate ML workflow trên Kubernetes.
Thực hành: Đọc tài liệu Kubeflow, vẽ sơ đồ 1 pipeline ML điển hình (data prep → train → evaluate → deploy) theo mô hình Kubeflow.
Ngày 420: Kubeflow Pipelines - Component & DAG
Mục tiêu: Hiểu cách định nghĩa pipeline dạng component tái sử dụng.
Lý thuyết: Mỗi bước là 1 container độc lập, kết nối thành DAG (liên hệ Airflow đã học).
Thực hành: Viết pseudo-code định nghĩa 1 Kubeflow pipeline component cho bước feature engineering.
Ngày 421: So sánh Airflow vs Kubeflow cho ML Pipeline
Mục tiêu: Có tiêu chí chọn orchestrator cho ML workflow.
Lý thuyết: Airflow tổng quát cho mọi loại pipeline; Kubeflow chuyên biệt cho ML, tích hợp GPU/K8s tốt hơn.
Thực hành: Viết bảng so sánh, đề xuất công cụ cho 2 kịch bản (công ty đã có Airflow vs công ty ML-heavy dùng nhiều GPU).
Ngày 422: Model Monitoring
Mục tiêu: Phát hiện khi model xuống cấp sau khi deploy.
Lý thuyết: Data drift, concept drift, cách giám sát bằng thống kê (PSI - Population Stability Index).
Thực hành: Tính PSI giữa dữ liệu training và dữ liệu mới (giả lập), xác định feature nào bị drift.
Ngày 423: Retraining Strategy
Mục tiêu: Thiết kế chiến lược cập nhật model theo thời gian.
Lý thuyết: Retrain định kỳ vs retrain khi phát hiện drift, shadow deployment.
Thực hành: Thiết kế chiến lược retraining cho model churn (VD: retrain hàng tháng + trigger sớm nếu PSI vượt ngưỡng).
Ngày 424: Reading Log #10 - Đọc tài liệu MLflow/Feast Architecture
Mục tiêu: Đào sâu hiểu biết công cụ MLOps qua tài liệu chính thức.
Lý thuyết: Ghi lại vấn đề công cụ giải quyết, kiến trúc, pattern hay.
Thực hành: Đọc phần kiến trúc chính thức của Feast hoặc MLflow, viết reading log.
Ngày 425: Dự án MLOps tổng hợp
Mục tiêu: Tổng hợp tuần 8-10.
Lý thuyết: Checklist "ML pipeline production-ready".
Thực hành: Ghép toàn bộ: feature pipeline (Feast) → training tracked (MLflow) → model registry → serving API → monitoring drift cơ bản, cho bài toán churn.
Tuần 11-13 - Forecasting (Ngày 426-445)
Ngày 426: Time Series - Khái niệm cơ bản
Mục tiêu: Nắm nền tảng dữ liệu chuỗi thời gian.
Lý thuyết: Trend, seasonality, cyclic, residual - decomposition.
Thực hành: Decompose 1 chuỗi doanh thu theo tháng thành trend/seasonality/residual bằng
statsmodels.
Ngày 427: Stationarity
Mục tiêu: Hiểu điều kiện tiên quyết của nhiều model forecasting cổ điển.
Lý thuyết: Stationary series là gì, ADF test (Augmented Dickey-Fuller).
Thực hành: Kiểm tra stationarity của chuỗi doanh thu bằng ADF test, thực hiện differencing nếu cần.
Ngày 428: Autocorrelation & ACF/PACF
Mục tiêu: Đọc được biểu đồ chẩn đoán chuỗi thời gian.
Lý thuyết: ACF, PACF - cách dùng để xác định bậc AR/MA.
Thực hành: Vẽ ACF/PACF cho chuỗi đã differencing, xác định bậc p, q tiềm năng.
Ngày 429: ARIMA - Lý thuyết
Mục tiêu: Hiểu model forecasting cổ điển quan trọng nhất.
Lý thuyết: AR(p), I(d), MA(q) - ý nghĩa từng thành phần.
Thực hành: Fit ARIMA(p,d,q) thủ công với bậc xác định từ Ngày 428.
Ngày 430: ARIMA - Thực hành & Đánh giá
Mục tiêu: Đánh giá model forecasting đúng cách.
Lý thuyết: Backtesting cho time series (khác cross-validation thường vì phải giữ thứ tự thời gian).
Thực hành: Backtest model ARIMA trên 6 tháng gần nhất, tính MAPE.
Ngày 431: Auto-ARIMA
Mục tiêu: Tự động hóa việc chọn bậc model.
Lý thuyết:
auto_arima(pmdarima) tự tìm p,d,q tối ưu qua AIC/BIC.Thực hành: Chạy auto-ARIMA, so sánh kết quả với model chọn thủ công ở Ngày 429.
Ngày 432: SARIMA - Seasonal ARIMA
Mục tiêu: Mở rộng ARIMA cho dữ liệu có tính mùa vụ mạnh.
Lý thuyết: Thành phần seasonal (P,D,Q,s) thêm vào ARIMA.
Thực hành: Fit SARIMA cho dataset doanh thu có seasonality rõ (VD: theo quý/lễ Tết), so sánh với ARIMA thường.
Ngày 433: SARIMAX - Thêm biến ngoại sinh
Mục tiêu: Đưa thêm thông tin kinh doanh (marketing spend, ngày lễ) vào model.
Lý thuyết: Exogenous variables trong SARIMAX.
Thực hành: Thêm biến "có khuyến mãi hay không" làm exogenous variable, đánh giá cải thiện forecast.
Ngày 434: Exponential Smoothing (Holt-Winters)
Mục tiêu: Biết thêm họ model cổ điển thay thế ARIMA.
Lý thuyết: Simple/Double/Triple exponential smoothing, cách xử lý trend + seasonality.
Thực hành: Fit Holt-Winters cho cùng dataset, so sánh performance với SARIMA.
Ngày 435: Prophet - Giới thiệu
Mục tiêu: Làm quen công cụ forecasting hiện đại, dễ dùng của Meta.
Lý thuyết: Cấu trúc additive model của Prophet (trend + seasonality + holiday), ưu điểm dễ tinh chỉnh.
Thực hành: Fit Prophet cho dataset doanh thu, so sánh tốc độ setup so với ARIMA.
Ngày 436: Prophet - Holidays & Custom Seasonality
Mục tiêu: Khai thác tính năng đặc trưng của Prophet.
Lý thuyết: Thêm holiday effects, custom seasonality (VD: seasonality theo tuần).
Thực hành: Thêm danh sách ngày lễ Việt Nam vào Prophet model, đánh giá cải thiện forecast quanh dịp Tết.
Ngày 437: Prophet - Uncertainty Intervals
Mục tiêu: Diễn giải khoảng tin cậy của forecast cho stakeholder.
Lý thuyết: Cách Prophet ước lượng uncertainty interval, ý nghĩa cho ra quyết định (VD: lập kế hoạch tồn kho theo P90).
Thực hành: Trực quan hóa forecast với uncertainty interval, viết giải thích cho non-technical stakeholder.
Ngày 438: So sánh ARIMA/SARIMA vs Prophet
Mục tiêu: Có tiêu chí chọn công cụ forecasting.
Lý thuyết: Trade-off: ARIMA cần hiểu sâu thống kê nhưng linh hoạt hơn; Prophet dễ dùng nhưng "hộp đen" hơn.
Thực hành: Backtest cả 2 phương pháp trên cùng dataset, so sánh MAPE và thời gian setup.
Ngày 439: Machine Learning cho Forecasting
Mục tiêu: Hiểu cách dùng model ML thường (XGBoost) cho bài toán time series.
Lý thuyết: Chuyển time series thành bài toán supervised (lag features, rolling features).
Thực hành: Tạo lag feature (t-1, t-7, t-30) và train XGBoost dự đoán doanh thu, so sánh với Prophet.
Ngày 440: Giới thiệu Deep Learning cho Time Series - TFT
Mục tiêu: Biết ở mức khái niệm mô hình deep learning chuyên biệt cho forecasting.
Lý thuyết: Temporal Fusion Transformer (TFT) - kiến trúc tổng quan (attention cho time series, xử lý multi-horizon).
Thực hành: Đọc bài giới thiệu TFT, tóm tắt bằng reading log những gì nó cải tiến so với ARIMA/Prophet.
Ngày 441: TFT - Thực hành cơ bản
Mục tiêu: Trải nghiệm chạy 1 model TFT thực tế (dùng thư viện có sẵn).
Lý thuyết: Multi-horizon forecasting, dùng nhiều chuỗi cùng lúc (global model).
Thực hành: Dùng thư viện
pytorch-forecastingchạy TFT trên dataset mẫu có sẵn (tutorial), quan sát kết quả.
Ngày 442: Forecasting nhiều chuỗi cùng lúc (Hierarchical Forecasting)
Mục tiêu: Xử lý bài toán thực tế: dự báo doanh thu cho hàng trăm cửa hàng/SKU cùng lúc.
Lý thuyết: Global model vs local model, hierarchical reconciliation (đảm bảo tổng các dự báo con khớp với dự báo tổng).
Thực hành: Forecast doanh thu cho 5 cửa hàng riêng biệt, kiểm tra tổng có khớp với forecast tổng công ty không.
Ngày 443: Forecast Evaluation trong Bối cảnh Kinh doanh
Mục tiêu: Kết nối forecast với quyết định vận hành thực tế.
Lý thuyết: Chi phí của over-forecast (dư kho) vs under-forecast (hết hàng) - asymmetric loss.
Thực hành: Thiết kế custom loss function phạt nặng hơn cho under-forecast, áp dụng vào chọn model.
Ngày 444: Reading Log #11 + Ôn tập Forecasting
Mục tiêu: Củng cố tuần 11-13.
Lý thuyết: Reading log cho 1 case study forecasting thực tế của công ty lớn (VD: Uber/Amazon forecasting blog).
Thực hành: Viết reading log, ôn lại toàn bộ chuỗi ARIMA → SARIMA → Prophet → ML → TFT.
Ngày 445: Dự án Forecasting tổng hợp
Mục tiêu: Tổng hợp tuần 11-13.
Lý thuyết: Checklist chọn phương pháp forecasting theo đặc điểm dữ liệu và yêu cầu business.
Thực hành: So sánh 3+ phương pháp forecasting trên cùng 1 dataset thật, chọn phương pháp cuối và giải thích lựa chọn.
Tuần 14-15 - Capstone Phase 4: Demand Forecasting (Ngày 446-453)
Ngày 446: Capstone - Chọn dataset & Định nghĩa bài toán
Mục tiêu: Khởi động dự án demand forecasting hoàn chỉnh.
Lý thuyết: Cấu trúc 1 dự án forecasting end-to-end cho retail/e-commerce.
Thực hành: Chọn dataset demand forecasting công khai (VD: Walmart/Rossmann sales dataset trên Kaggle), viết đề cương.
Ngày 447: Capstone - EDA & Feature Engineering
Mục tiêu: Chuẩn bị dữ liệu cho forecasting.
Lý thuyết: Không có lý thuyết mới - áp dụng tuần 6-7.
Thực hành: Phân tích seasonality, tạo lag/rolling feature, xử lý ngày lễ/khuyến mãi.
Ngày 448: Capstone - Baseline Model
Mục tiêu: Có điểm so sánh trước khi làm model phức tạp.
Lý thuyết: Naive forecast (giá trị tuần trước) như baseline bắt buộc.
Thực hành: Tính MAPE của naive baseline, dùng làm mốc so sánh cho các model sau.
Ngày 449: Capstone - Model Cổ điển (ARIMA/Prophet)
Mục tiêu: Áp dụng model thống kê.
Lý thuyết: Không có lý thuyết mới.
Thực hành: Fit Prophet/SARIMA cho từng SKU/cửa hàng, backtest và so sánh với baseline.
Ngày 450: Capstone - Model ML/Boosting
Mục tiêu: Áp dụng model ML cho forecasting.
Lý thuyết: Không có lý thuyết mới.
Thực hành: Train XGBoost/LightGBM với lag feature, so sánh MAPE với model cổ điển.
Ngày 451: Capstone - Đóng gói Pipeline (MLflow + Feast)
Mục tiêu: Đưa dự án đạt chuẩn production, liên kết tuần 8-10.
Lý thuyết: Không có lý thuyết mới.
Thực hành: Log toàn bộ thí nghiệm vào MLflow, đăng ký model tốt nhất vào Model Registry.
Ngày 452: Capstone - Business Report
Mục tiêu: Trình bày kết quả theo hướng ra quyết định (liên hệ Phase 1 storytelling).
Lý thuyết: Không có lý thuyết mới.
Thực hành: Viết báo cáo: forecast kèm uncertainty interval, khuyến nghị mức tồn kho, ước tính chi phí nếu không forecast (so với baseline).
Ngày 453: Capstone - Hoàn thiện & Đưa lên Portfolio
Mục tiêu: Hoàn tất dự án Demand Forecasting.
Lý thuyết: Checklist dự án forecasting đạt chuẩn portfolio.
Thực hành: Hoàn thiện repo GitHub (code, MLflow tracking, báo cáo), viết README mô tả kết quả và cách chạy lại.
Ngày 454: Tổng kết Phase 4
Ngày 454: Tổng kết Phase 4 & Lên kế hoạch Phase 5
Mục tiêu: Chuyển giao sang Phase 5 có chủ đích.
Lý thuyết: Nhìn lại toàn bộ Phase 4 (Regression → Classification → Evaluation → Feature Engineering → MLOps → Forecasting), xem trước nội dung Phase 5 (Experimentation & Causal Inference) - nơi Business Analytics thực sự biến thành Decision Science.
Thực hành: Viết bài tổng kết Phase 4 (model nào tự hào nhất, kỹ năng nào còn yếu), cập nhật portfolio, đặt câu hỏi định hướng cho Phase 5: "Feature quan trọng nhất trong model churn có thực sự là NGUYÊN NHÂN gây churn, hay chỉ là correlation?"
PHASE 5 - EXPERIMENTATION & CAUSAL INFERENCE (Ngày 455 – 544)
Tuần 1-3 - A/B Testing (Ngày 455-472)
Ngày 455: Vì sao A/B Testing là "vàng" của ra quyết định
Mục tiêu: Hiểu vì sao randomized experiment giải quyết được vấn đề confounder mà correlation không giải quyết được.
Lý thuyết: Randomization loại bỏ confounder một cách hệ thống, khác biệt với quan sát dữ liệu thuần túy.
Thực hành: Viết lại ví dụ Simpson's Paradox đã học ở Phase 1, giải thích vì sao A/B test tránh được vấn đề đó.
Ngày 456: Thiết kế Thí nghiệm - Xác định Hypothesis
Mục tiêu: Rèn kỹ năng framing thí nghiệm đúng.
Lý thuyết: Null/alternative hypothesis cho A/B test, primary metric vs guardrail metric.
Thực hành: Viết hypothesis đầy đủ cho 1 thí nghiệm thay đổi nút "Mua ngay" (primary metric, guardrail metric, thời gian chạy dự kiến).
Ngày 457: Randomization Unit
Mục tiêu: Chọn đúng đơn vị chia nhóm - lỗi phổ biến gây sai kết quả.
Lý thuyết: User-level vs session-level vs request-level randomization, network effects khiến randomization sai.
Thực hành: Phân tích 3 tình huống và xác định randomization unit phù hợp cho từng loại (feature UI, pricing, matching algorithm marketplace).
Ngày 458: Sample Ratio Mismatch (SRM)
Mục tiêu: Học cách phát hiện lỗi kỹ thuật trong thí nghiệm trước khi tin kết quả.
Lý thuyết: SRM là gì, dùng chi-square test để phát hiện.
Thực hành: Chạy chi-square test kiểm tra SRM cho 1 dataset thí nghiệm giả lập có tỷ lệ chia nhóm lệch.
Ngày 459: Power Analysis - Khái niệm
Mục tiêu: Hiểu vì sao cần tính cỡ mẫu trước khi chạy thí nghiệm.
Lý thuyết: Statistical power, mối quan hệ giữa effect size, alpha, power, sample size.
Thực hành: Giải thích bằng ví dụ vì sao 1 thí nghiệm "không có ý nghĩa thống kê" có thể chỉ vì thiếu power, không phải vì không có effect.
Ngày 460: Power Analysis - Tính toán thực tế
Mục tiêu: Tính cỡ mẫu cần thiết trước khi chạy thí nghiệm.
Lý thuyết: Công thức tính sample size cho so sánh tỷ lệ (proportion) và trung bình (mean).
Thực hành: Dùng
statsmodels.stats.powertính cỡ mẫu cần thiết để phát hiện tăng conversion rate từ 5% lên 5.5%.
Ngày 461: Minimum Detectable Effect (MDE)
Mục tiêu: Hiểu ràng buộc thực tế giữa thời gian chạy và độ nhạy phát hiện effect.
Lý thuyết: MDE là gì, trade-off giữa traffic có sẵn, thời gian chạy, và MDE.
Thực hành: Tính MDE khả thi cho 1 sản phẩm có traffic giới hạn (VD: 10,000 user/tuần), đánh giá thí nghiệm có khả thi không.
Ngày 462: Chạy Thí nghiệm - Thực hành Setup
Mục tiêu: Mô phỏng toàn bộ quy trình chạy thí nghiệm.
Lý thuyết: Feature flag, kill switch cho thí nghiệm rủi ro.
Thực hành: Thiết kế 1 tài liệu "experiment design doc" hoàn chỉnh (hypothesis, metric, sample size, thời gian, kill switch criteria).
Ngày 463: Phân tích Kết quả - T-test cho A/B Test
Mục tiêu: Áp dụng lại kiến thức Phase 0 vào bối cảnh A/B testing.
Lý thuyết: Two-sample t-test cho continuous metric, z-test cho proportion metric.
Thực hành: Phân tích kết quả 1 thí nghiệm giả lập, tính p-value và confidence interval cho effect size.
Ngày 464: Multiple Testing Problem
Mục tiêu: Tránh false positive khi theo dõi nhiều metric cùng lúc.
Lý thuyết: Family-wise error rate, Bonferroni correction, False Discovery Rate (FDR).
Thực hành: Áp dụng Bonferroni correction cho thí nghiệm theo dõi 10 metric cùng lúc, so sánh kết luận trước/sau correction.
Ngày 465: Heterogeneous Treatment Effects
Mục tiêu: Hiểu effect trung bình có thể che giấu sự khác biệt giữa các nhóm.
Lý thuyết: Subgroup analysis, rủi ro "p-hacking" khi cắt lát dữ liệu quá nhiều.
Thực hành: Phân tích effect theo subgroup (mobile vs desktop) cho thí nghiệm giả lập, thảo luận rủi ro multiple comparison khi làm việc này.
Ngày 466: Novelty Effect & Primacy Effect
Mục tiêu: Nhận diện thiên lệch theo thời gian trong thí nghiệm.
Lý thuyết: Novelty effect (hiệu ứng mới lạ giảm dần), primacy effect (người dùng cũ phản ứng chậm với thay đổi).
Thực hành: Phân tích effect theo từng ngày trong suốt thí nghiệm, xác định có dấu hiệu novelty effect không.
Ngày 467: Network Effects & Interference
Mục tiêu: Hiểu giới hạn của randomization trong môi trường có tương tác giữa user (marketplace, social network).
Lý thuyết: SUTVA (Stable Unit Treatment Value Assumption) và khi nào nó bị vi phạm.
Thực hành: Phân tích 1 ví dụ marketplace nơi randomization user-level bị nhiễu vì cạnh tranh nguồn cung giữa nhóm test/control.
Ngày 468: Cluster Randomization
Mục tiêu: Có giải pháp cho vấn đề Ngày 467.
Lý thuyết: Randomize theo cluster (khu vực địa lý, cửa hàng) thay vì theo user.
Thực hành: Thiết kế lại thí nghiệm marketplace ở Ngày 467 dùng cluster randomization theo thành phố.
Ngày 469: Experiment Guardrails & Ramp-up
Mục tiêu: Triển khai thí nghiệm an toàn trong thực tế.
Lý thuyết: Ramp-up traffic dần (1% → 10% → 50%), guardrail metric để dừng sớm nếu có tác động xấu.
Thực hành: Thiết kế kế hoạch ramp-up 4 giai đoạn cho 1 thí nghiệm rủi ro cao (thay đổi pricing).
Ngày 470: Đọc & Diễn giải Kết quả cho Stakeholder
Mục tiêu: Trình bày kết quả thí nghiệm bằng ngôn ngữ kinh doanh (liên hệ Phase 1 storytelling).
Lý thuyết: Cách trình bày "không có ý nghĩa thống kê" mà không gây hiểu lầm là "không có effect".
Thực hành: Viết báo cáo kết quả 1 thí nghiệm cho ban lãnh đạo, kèm khuyến nghị triển khai/không triển khai.
Ngày 471: Reading Log #12 - Đọc case study A/B testing thực tế
Mục tiêu: Học từ thực tiễn công ty lớn.
Lý thuyết: Ghi lại vấn đề case study giải quyết, phương pháp áp dụng, bài học rút ra.
Thực hành: Đọc 1 bài blog kỹ thuật về A/B testing của công ty lớn (Netflix, Airbnb, Booking), viết reading log.
Ngày 472: Dự án A/B Testing tổng hợp
Mục tiêu: Tổng hợp tuần 1-3.
Lý thuyết: Checklist thiết kế và phân tích 1 A/B test đầy đủ, tránh các lỗi phổ biến đã học.
Thực hành: Thiết kế và phân tích trọn vẹn 1 thí nghiệm end-to-end (design doc → power analysis → phân tích kết quả giả lập → báo cáo khuyến nghị).
Tuần 4 - Sequential Testing (Ngày 473-479)
Ngày 473: Vấn đề "Peeking" trong A/B Testing
Mục tiêu: Hiểu lỗi phổ biến nhất khi người phân tích nhìn kết quả liên tục và dừng sớm khi thấy significant.
Lý thuyết: Vì sao peeking làm tăng false positive rate vượt quá alpha đã định.
Thực hành: Mô phỏng bằng simulation: chạy nhiều lần A/A test (không có effect thật) và "peek" liên tục, đo tỷ lệ false positive thực tế so với alpha=5% danh nghĩa.
Ngày 474: Sequential Testing - Khái niệm
Mục tiêu: Hiểu giải pháp thống kê cho vấn đề Ngày 473.
Lý thuyết: Sequential Probability Ratio Test (SPRT), alpha spending function.
Thực hành: Đọc tài liệu giới thiệu SPRT, tóm tắt ý tưởng cốt lõi bằng sơ đồ.
Ngày 475: Always Valid P-values
Mục tiêu: Hiểu công cụ hiện đại cho phép nhìn kết quả bất kỳ lúc nào mà vẫn hợp lệ.
Lý thuyết: Khái niệm "always valid inference", mixture sequential probability ratio test.
Thực hành: Đọc case study 1 công ty (VD: Optimizely/Statsig) áp dụng always-valid p-value, tóm tắt lợi ích thực tế.
Ngày 476: Group Sequential Design
Mục tiêu: Biết phương án thực tế đơn giản hơn cho sequential testing.
Lý thuyết: Chia thí nghiệm thành các "look" định trước (interim analysis) với alpha điều chỉnh ở mỗi look.
Thực hành: Thiết kế 1 group sequential test với 3 interim analysis, tính alpha điều chỉnh cho mỗi look bằng phương pháp Pocock hoặc O'Brien-Fleming (ở mức khái niệm).
Ngày 477: So sánh Fixed-horizon vs Sequential Testing
Mục tiêu: Có tiêu chí chọn phương pháp phù hợp.
Lý thuyết: Trade-off giữa tốc độ ra quyết định và độ phức tạp triển khai.
Thực hành: Viết bảng so sánh 2 phương pháp, đề xuất khi nào công ty nên đầu tư vào sequential testing.
Ngày 478: Triển khai Sequential Testing (thực hành công cụ)
Mục tiêu: Trải nghiệm công cụ có sẵn thay vì tự cài từ đầu.
Lý thuyết: Thư viện hỗ trợ sequential testing (VD:
sequentialpackage trong R, hoặc cách tiếp cận Bayesian sẽ học ở tuần sau).Thực hành: Nếu có thư viện Python phù hợp, thử áp dụng; nếu không, mô phỏng logic dừng sớm bằng code tự viết đơn giản.
Ngày 479: Dự án Sequential Testing tổng hợp
Mục tiêu: Tổng hợp tuần 4.
Lý thuyết: Checklist khi nào nên/không nên dùng sequential testing.
Thực hành: Viết đề xuất chính sách "monitoring thí nghiệm" cho 1 team analytics, cân bằng giữa tốc độ ra quyết định và độ chặt chẽ thống kê.
Tuần 5 - CUPED (Ngày 480-485)
Ngày 480: Vấn đề Variance cao trong A/B Testing
Mục tiêu: Hiểu vì sao nhiều thí nghiệm cần traffic khổng lồ hoặc chạy rất lâu.
Lý thuyết: Variance của metric quyết định sample size cần thiết; metric có variance cao (revenue) cần mẫu lớn hơn nhiều so với metric nhị phân.
Thực hành: Tính lại sample size cần thiết cho thí nghiệm đo revenue (variance cao) so với conversion rate, so sánh chênh lệch.
Ngày 481: CUPED - Ý tưởng cốt lõi
Mục tiêu: Hiểu kỹ thuật giảm variance dùng phổ biến tại Microsoft/Booking.
Lý thuyết: CUPED (Controlled-experiment Using Pre-Experiment Data) dùng dữ liệu trước thí nghiệm làm covariate để giảm variance của metric đo lường.
Thực hành: Đọc paper gốc CUPED (Microsoft, Deng et al.), tóm tắt công thức cốt lõi bằng reading log.
Ngày 482: CUPED - Công thức & Điều kiện
Mục tiêu: Hiểu cách tính toán cụ thể.
Lý thuyết: Công thức điều chỉnh Y' = Y - θ(X - E[X]), điều kiện để θ tối ưu giảm variance nhiều nhất.
Thực hành: Cài đặt công thức CUPED bằng Python cho 1 dataset giả lập, tính θ tối ưu bằng hồi quy.
Ngày 483: CUPED - Thực hành đo lường cải thiện
Mục tiêu: Định lượng lợi ích thực tế của CUPED.
Lý thuyết: Cách đo % giảm variance, tương đương với giảm bao nhiêu % sample size cần thiết.
Thực hành: So sánh variance của metric trước/sau áp dụng CUPED trên dataset thí nghiệm giả lập, tính % giảm sample size cần thiết.
Ngày 484: CUPED - Giới hạn & Khi nào không hiệu quả
Mục tiêu: Hiểu CUPED không phải "phép màu" cho mọi trường hợp.
Lý thuyết: CUPED hiệu quả nhất khi covariate tương quan mạnh với metric; không hiệu quả cho user mới (không có dữ liệu pre-experiment).
Thực hành: Phân tích 1 tình huống CUPED không cải thiện nhiều (metric mới, không có lịch sử), giải thích lý do.
Ngày 485: Dự án CUPED tổng hợp
Mục tiêu: Tổng hợp tuần 5.
Lý thuyết: Checklist áp dụng CUPED vào pipeline phân tích thí nghiệm thực tế.
Thực hành: Tích hợp CUPED vào quy trình phân tích A/B test đã xây ở tuần 1-3, viết báo cáo so sánh kết quả có/không có CUPED.
Tuần 6-7 - Bayesian Experimentation (Ngày 486-495)
Ngày 486: Frequentist vs Bayesian - Khác biệt tư duy
Mục tiêu: Hiểu 2 trường phái thống kê khác nhau thế nào khi áp dụng cho A/B testing.
Lý thuyết: Frequentist trả lời "dữ liệu này có khả năng xảy ra đến đâu nếu null hypothesis đúng"; Bayesian trả lời trực tiếp "xác suất B tốt hơn A là bao nhiêu".
Thực hành: Viết lại kết luận của 1 thí nghiệm đã phân tích (Ngày 463) theo cả 2 cách diễn giải, so sánh sự khác biệt trong cách truyền đạt cho stakeholder.
Ngày 487: Ôn lại Bayes' Theorem trong bối cảnh Experimentation
Mục tiêu: Kết nối lại Phase 0 với ứng dụng thực tế.
Lý thuyết: Prior, likelihood, posterior áp dụng cho conversion rate.
Thực hành: Cập nhật posterior distribution cho conversion rate của biến thể B qua từng ngày dữ liệu mới, vẽ biểu đồ posterior thay đổi theo thời gian.
Ngày 488: Chọn Prior
Mục tiêu: Hiểu cách chọn prior hợp lý, tránh áp đặt niềm tin sai.
Lý thuyết: Uninformative prior vs informative prior, Beta distribution làm conjugate prior cho conversion rate.
Thực hành: So sánh kết quả posterior khi dùng prior "không biết gì" (Beta(1,1)) vs prior dựa trên dữ liệu lịch sử.
Ngày 489: Beta-Binomial Model cho A/B Test
Mục tiêu: Cài đặt Bayesian A/B test hoàn chỉnh cho metric tỷ lệ.
Lý thuyết: Conjugate prior giúp tính posterior dạng closed-form, không cần MCMC.
Thực hành: Cài đặt Bayesian A/B test bằng Beta-Binomial cho dữ liệu conversion rate, tính P(B > A).
Ngày 490: Credible Interval vs Confidence Interval
Mục tiêu: Phân biệt 2 khái niệm hay bị nhầm lẫn.
Lý thuyết: Credible interval có ý nghĩa xác suất trực tiếp; confidence interval không (dù thường bị diễn giải sai như vậy).
Thực hành: Tính và so sánh 95% credible interval (Bayesian) với 95% confidence interval (frequentist) cho cùng dữ liệu, giải thích khác biệt ý nghĩa.
Ngày 491: Expected Loss & Ra quyết định Bayesian
Mục tiêu: Kết nối trực tiếp với quyết định kinh doanh - điểm mạnh nhất của Bayesian approach.
Lý thuyết: Expected loss của việc chọn sai biến thể, quyết định dựa trên risk thay vì chỉ p-value.
Thực hành: Tính expected loss cho quyết định "triển khai B" vs "giữ nguyên A" dựa trên posterior distribution đã có.
Ngày 492: Bayesian cho Continuous Metrics
Mục tiêu: Mở rộng ra metric không phải tỷ lệ (VD: revenue).
Lý thuyết: Normal-Normal model, hoặc dùng MCMC khi không có conjugate prior đơn giản.
Thực hành: Cài đặt Bayesian A/B test cho revenue per user bằng PyMC hoặc thư viện tương tự.
Ngày 493: Bayesian Sequential Monitoring
Mục tiêu: Thấy lợi thế tự nhiên của Bayesian cho vấn đề "peeking" (Ngày 473).
Lý thuyết: Bayesian approach không bị vấn đề inflate false positive khi nhìn liên tục theo cùng cách frequentist gặp phải (dù vẫn cần cẩn trọng về decision rule).
Thực hành: Mô phỏng theo dõi posterior P(B>A) hàng ngày trong suốt thí nghiệm, thảo luận cách ra quyết định dừng sớm hợp lý.
Ngày 494: So sánh tổng hợp Frequentist vs Bayesian vs Sequential
Mục tiêu: Có framework lựa chọn phương pháp cho từng tình huống.
Lý thuyết: Bảng so sánh 3 trường phái theo: độ phức tạp, khả năng diễn giải cho stakeholder, tốc độ ra quyết định.
Thực hành: Viết hướng dẫn nội bộ (playbook) cho 1 team analytics: khi nào dùng frequentist truyền thống, khi nào dùng CUPED, khi nào dùng Bayesian.
Ngày 495: Dự án Bayesian Experimentation tổng hợp
Mục tiêu: Tổng hợp tuần 6-7.
Lý thuyết: Checklist 1 báo cáo Bayesian A/B test đầy đủ.
Thực hành: Phân tích lại 1 thí nghiệm đã làm ở tuần 1-3 hoàn toàn theo phương pháp Bayesian, viết báo cáo so sánh kết luận với phương pháp frequentist ban đầu.
Tuần 8 - Causal Inference: Potential Outcomes Framework (Ngày 496-500)
Ngày 496: Giới hạn của A/B Testing trong Thực tế
Mục tiêu: Hiểu vì sao không phải lúc nào cũng chạy được A/B test (chính sách giá, ra mắt tính năng cho toàn thị trường, quyết định không thể randomize vì lý do đạo đức/pháp lý).
Lý thuyết: Khi nào không thể/không nên randomize, nhu cầu suy luận nhân quả từ dữ liệu quan sát.
Thực hành: Liệt kê 3 quyết định kinh doanh thực tế không thể chạy A/B test (VD: tăng giá toàn quốc), giải thích lý do.
Ngày 497: Potential Outcomes Framework
Mục tiêu: Nắm ngôn ngữ toán học nền tảng của causal inference hiện đại.
Lý thuyết: Y(1) và Y(0) - kết quả tiềm năng nếu được/không được điều trị; fundamental problem of causal inference (không bao giờ quan sát được cả 2 cùng lúc cho 1 đơn vị).
Thực hành: Viết ví dụ cụ thể minh họa Y(1)/Y(0) cho 1 khách hàng nhận/không nhận khuyến mãi, chỉ ra tại sao ta không thể quan sát cả 2.
Ngày 498: ATE, ATT, và các loại Treatment Effect
Mục tiêu: Phân biệt các loại hiệu ứng nhân quả khác nhau.
Lý thuyết: Average Treatment Effect (ATE) vs Average Treatment Effect on the Treated (ATT).
Thực hành: Giải thích tình huống ATE và ATT khác nhau đáng kể (VD: chương trình đào tạo chỉ hấp dẫn nhân viên có động lực sẵn).
Ngày 499: Confounders, Colliders, và DAG (Directed Acyclic Graph)
Mục tiêu: Có công cụ trực quan để tư duy về causal structure.
Lý thuyết: Vẽ DAG biểu diễn quan hệ nhân quả, phân biệt confounder (gây nhiễu, cần kiểm soát) và collider (không nên kiểm soát).
Thực hành: Vẽ DAG cho bài toán "khuyến mãi → doanh thu" với ít nhất 1 confounder (VD: mùa vụ) và giải thích tại sao cần kiểm soát nó.
Ngày 500: Dự án Potential Outcomes tổng hợp
Mục tiêu: Tổng hợp tuần 8.
Lý thuyết: Checklist tư duy causal trước khi chọn phương pháp phân tích (câu hỏi: có confounder nào? có thể randomize không?).
Thực hành: Áp dụng khung DAG cho 3 câu hỏi kinh doanh thực tế, xác định phương pháp causal inference nào (sẽ học các tuần sau) phù hợp với từng câu hỏi.
Tuần 9-10 - Propensity Score & Matching (Ngày 501-509)
Ngày 501: Vấn đề Selection Bias
Mục tiêu: Hiểu vấn đề cốt lõi khi phân tích dữ liệu quan sát (observational data).
Lý thuyết: Selection bias là gì, ví dụ kinh điển (khách hàng tự chọn dùng tính năng premium có xu hướng chi tiêu nhiều hơn từ trước).
Thực hành: Phân tích 1 dataset giả lập, chỉ ra selection bias khi so sánh trực tiếp nhóm "dùng tính năng" vs "không dùng".
Ngày 502: Propensity Score - Khái niệm
Mục tiêu: Hiểu kỹ thuật kinh điển để giảm selection bias.
Lý thuyết: Propensity score = P(treatment=1 | X), ý tưởng "cân bằng" các đặc điểm quan sát được giữa 2 nhóm.
Thực hành: Train 1 model logistic regression dự đoán xác suất "dùng tính năng" dựa trên đặc điểm khách hàng - đây chính là propensity score.
Ngày 503: Propensity Score Matching (PSM)
Mục tiêu: Thực hành kỹ thuật ghép cặp dựa trên propensity score.
Lý thuyết: Nearest neighbor matching, caliper matching.
Thực hành: Ghép cặp mỗi khách hàng "treatment" với 1 khách hàng "control" có propensity score gần nhất, tính lại effect sau khi matching.
Ngày 504: Đánh giá Chất lượng Matching
Mục tiêu: Kiểm tra matching có thực sự cân bằng dữ liệu không.
Lý thuyết: Standardized Mean Difference (SMD), love plot để kiểm tra balance trước/sau matching.
Thực hành: Vẽ love plot so sánh balance của các covariate trước và sau khi matching.
Ngày 505: Inverse Probability Weighting (IPW)
Mục tiêu: Biết phương án thay thế cho matching.
Lý thuyết: Weight mỗi observation bằng 1/propensity score (treatment) hoặc 1/(1-propensity score) (control).
Thực hành: Tính IPW cho dataset đã có, so sánh estimate ATE giữa PSM và IPW.
Ngày 506: Doubly Robust Estimation
Mục tiêu: Hiểu phương pháp kết hợp mạnh hơn, ít nhạy cảm với sai số model.
Lý thuyết: Kết hợp outcome regression và propensity score weighting - chỉ cần 1 trong 2 model đúng để estimate không thiên lệch.
Thực hành: Đọc tài liệu giới thiệu doubly robust estimator, tóm tắt trực giác bằng reading log.
Ngày 507: Giới hạn của Propensity Score Methods
Mục tiêu: Hiểu rõ giả định quan trọng nhất và khi nào phương pháp thất bại.
Lý thuyết: "Unconfoundedness" assumption - chỉ hoạt động nếu không có confounder ẩn (unobserved confounder) không đo lường được.
Thực hành: Phân tích 1 tình huống có khả năng tồn tại unobserved confounder (VD: "động lực" khách hàng không đo lường được), thảo luận rủi ro kết luận sai.
Ngày 508: Sensitivity Analysis cho Unobserved Confounding
Mục tiêu: Định lượng mức độ "mong manh" của kết luận causal.
Lý thuyết: Rosenbaum bounds (ở mức khái niệm) - kết luận sẽ thay đổi thế nào nếu tồn tại confounder ẩn với mức độ ảnh hưởng nhất định.
Thực hành: Đọc ví dụ minh họa sensitivity analysis, viết nhận xét về độ tin cậy của 1 kết luận causal cụ thể.
Ngày 509: Dự án Propensity Score tổng hợp
Mục tiêu: Tổng hợp tuần 9-10.
Lý thuyết: Checklist thực hiện 1 phân tích PSM đầy đủ và đáng tin cậy.
Thực hành: Thực hiện trọn vẹn phân tích PSM cho câu hỏi "tính năng X có thực sự làm tăng retention hay chỉ là selection bias?" trên dataset giả lập.
Tuần 11-12 - Difference-in-Differences (Ngày 510-517)
Ngày 510: Difference-in-Differences - Ý tưởng cốt lõi
Mục tiêu: Hiểu kỹ thuật tận dụng dữ liệu trước/sau và có/không có can thiệp.
Lý thuyết: So sánh thay đổi theo thời gian giữa nhóm treatment và control (thay vì so sánh mức tuyệt đối).
Thực hành: Vẽ sơ đồ minh họa DiD (2 đường xu hướng trước/sau can thiệp) cho ví dụ "1 khu vực tăng giá, khu vực khác giữ nguyên".
Ngày 511: Parallel Trends Assumption
Mục tiêu: Hiểu giả định quan trọng nhất của DiD.
Lý thuyết: Giả định 2 nhóm sẽ có xu hướng thay đổi giống nhau nếu không có can thiệp - cách kiểm tra bằng dữ liệu tiền-can thiệp (pre-trend).
Thực hành: Vẽ biểu đồ xu hướng 2 nhóm trong giai đoạn trước can thiệp, đánh giá parallel trends assumption có hợp lý không.
Ngày 512: DiD - Cài đặt bằng Regression
Mục tiêu: Thực hiện DiD bằng công cụ thống kê chuẩn.
Lý thuyết: Regression DiD:
Y = β0 + β1*Treatment + β2*Post + β3*(Treatment×Post) + ε, β3 là estimate của causal effect.Thực hành: Cài đặt regression DiD bằng
statsmodelscho dataset giả lập, diễn giải hệ số β3.
Ngày 513: DiD với Nhiều Giai đoạn Thời gian (Event Study)
Mục tiêu: Mở rộng DiD cơ bản (2 thời điểm) sang nhiều thời điểm.
Lý thuyết: Event study design - vẽ effect theo từng khoảng thời gian trước/sau can thiệp.
Thực hành: Xây event study plot cho dataset có nhiều giai đoạn thời gian, quan sát effect thay đổi thế nào theo thời gian.
Ngày 514: Vấn đề với DiD hiện đại (Staggered Adoption)
Mục tiêu: Biết về vấn đề kỹ thuật gần đây được phát hiện trong literature causal inference.
Lý thuyết: Vấn đề khi các nhóm nhận treatment ở thời điểm khác nhau (staggered rollout) làm DiD truyền thống cho kết quả thiên lệch (two-way fixed effects bias).
Thực hành: Đọc tóm tắt vấn đề này (Goodman-Bacon decomposition, Callaway-Sant'Anna estimator ở mức khái niệm), viết reading log.
Ngày 515: Synthetic Control Method
Mục tiêu: Biết phương pháp thay thế mạnh mẽ khi chỉ có 1 đơn vị treatment (VD: 1 thành phố, 1 quốc gia).
Lý thuyết: Xây "phiên bản tổng hợp" của nhóm control từ tổ hợp trọng số của nhiều đơn vị control thực tế.
Thực hành: Đọc case study kinh điển về synthetic control (VD: nghiên cứu tác động chính sách thuế thuốc lá California), tóm tắt phương pháp.
Ngày 516: Ứng dụng DiD cho Bài toán Kinh doanh
Mục tiêu: Áp dụng vào tình huống thực tế công ty.
Lý thuyết: Ví dụ: đánh giá tác động của việc mở tính năng mới ở 1 số thị trường trước khi rollout toàn cầu.
Thực hành: Thiết kế phân tích DiD hoàn chỉnh cho 1 kịch bản rollout theo khu vực, xác định treatment group/control group phù hợp.
Ngày 517: Dự án DiD tổng hợp
Mục tiêu: Tổng hợp tuần 11-12.
Lý thuyết: Checklist thực hiện 1 phân tích DiD đáng tin cậy (kiểm tra parallel trends, xử lý staggered adoption nếu có).
Thực hành: Thực hiện trọn vẹn phân tích DiD trên dataset giả lập rollout tính năng theo khu vực, viết báo cáo kết luận.
Tuần 13 - Instrumental Variables (Ngày 518-524)
Ngày 518: Vấn đề Endogeneity
Mục tiêu: Hiểu vấn đề mà IV giải quyết - khi biến độc lập tương quan với sai số (unobserved confounder không kiểm soát được bằng PSM/DiD).
Lý thuyết: Endogeneity là gì, ví dụ kinh điển (giá và cầu đồng thời ảnh hưởng lẫn nhau - simultaneity bias).
Thực hành: Phân tích 1 ví dụ endogeneity trong kinh doanh (VD: chi tiêu marketing và doanh thu ảnh hưởng lẫn nhau), giải thích vì sao regression thường cho kết quả thiên lệch.
Ngày 519: Instrumental Variable - Khái niệm
Mục tiêu: Hiểu ý tưởng dùng 1 biến "công cụ" để tách bạch quan hệ nhân quả thật.
Lý thuyết: 2 điều kiện của instrument hợp lệ: relevance (tương quan với treatment) và exclusion restriction (chỉ ảnh hưởng outcome qua treatment).
Thực hành: Đánh giá 1 biến instrument đề xuất (VD: dùng "khoảng cách đến cửa hàng" làm instrument cho "có ghé cửa hàng hay không") theo 2 điều kiện trên.
Ngày 520: Two-Stage Least Squares (2SLS)
Mục tiêu: Thực hiện IV bằng kỹ thuật ước lượng chuẩn.
Lý thuyết: Stage 1 (dự đoán treatment từ instrument), Stage 2 (dùng giá trị dự đoán để ước lượng effect lên outcome).
Thực hành: Cài đặt 2SLS bằng Python (
linearmodels) cho dataset giả lập có instrument hợp lệ.
Ngày 521: Weak Instruments
Mục tiêu: Nhận diện khi instrument không đủ mạnh, gây kết quả không đáng tin.
Lý thuyết: F-statistic của stage 1 để kiểm tra độ mạnh của instrument (rule of thumb F > 10).
Thực hành: Tính F-statistic cho instrument đã dùng ở Ngày 520, đánh giá có phải weak instrument không.
Ngày 522: Natural Experiments làm Instrument
Mục tiêu: Biết cách tìm instrument trong thực tế - phần khó nhất của IV.
Lý thuyết: Natural experiment là gì, ví dụ kinh điển (thời tiết, chính sách thay đổi đột ngột, lottery/random assignment tự nhiên).
Thực hành: Đọc 1 case study nổi tiếng dùng natural experiment làm instrument (VD: nghiên cứu về giáo dục dùng ngày sinh làm instrument), tóm tắt logic.
Ngày 523: Giới hạn của IV trong Bối cảnh Kinh doanh
Mục tiêu: Hiểu vì sao IV khó áp dụng thực tế hơn PSM/DiD.
Lý thuyết: Instrument hợp lệ rất khó tìm trong dữ liệu doanh nghiệp; exclusion restriction không thể kiểm chứng trực tiếp bằng dữ liệu.
Thực hành: Viết nhận xét về việc khi nào nên ưu tiên IV so với PSM/DiD, và rủi ro nếu chọn instrument không hợp lệ.
Ngày 524: Dự án IV tổng hợp
Mục tiêu: Tổng hợp tuần 13.
Lý thuyết: Checklist đánh giá 1 instrument có hợp lệ hay không.
Thực hành: Thực hiện phân tích 2SLS hoàn chỉnh trên dataset giả lập, viết phần "threats to validity" thảo luận rủi ro exclusion restriction bị vi phạm.
Tuần 14 - Regression Discontinuity Design (Ngày 525-530)
Ngày 525: RDD - Ý tưởng cốt lõi
Mục tiêu: Hiểu kỹ thuật tận dụng ngưỡng (threshold) có sẵn trong chính sách.
Lý thuyết: Khi treatment được gán dựa trên 1 ngưỡng của biến liên tục (VD: khách hàng chi tiêu > 1 triệu được lên hạng VIP), so sánh 2 nhóm sát ngưỡng gần như tương đương randomization cục bộ.
Thực hành: Liệt kê 3 ví dụ kinh doanh có ngưỡng tự nhiên phù hợp cho RDD (hạng thành viên, ngưỡng miễn phí ship, ngưỡng credit score).
Ngày 526: Sharp RDD vs Fuzzy RDD
Mục tiêu: Phân biệt 2 loại RDD.
Lý thuyết: Sharp RDD (ngưỡng quyết định hoàn toàn), Fuzzy RDD (ngưỡng chỉ ảnh hưởng xác suất nhận treatment).
Thực hành: Xác định loại RDD phù hợp cho ví dụ "khách hàng chi tiêu > ngưỡng được mời tham gia chương trình VIP nhưng không phải ai cũng tham gia".
Ngày 527: Cài đặt RDD bằng Local Linear Regression
Mục tiêu: Thực hiện RDD bằng kỹ thuật chuẩn.
Lý thuyết: Chỉ dùng dữ liệu trong 1 "bandwidth" quanh ngưỡng, fit regression tuyến tính riêng cho mỗi bên.
Thực hành: Cài đặt sharp RDD bằng Python cho dataset giả lập (VD: hạng VIP theo ngưỡng chi tiêu), ước lượng effect tại điểm gián đoạn.
Ngày 528: Chọn Bandwidth
Mục tiêu: Hiểu trade-off khi chọn khoảng dữ liệu quanh ngưỡng.
Lý thuyết: Bandwidth nhỏ giảm bias nhưng tăng variance; các phương pháp chọn bandwidth tối ưu (Imbens-Kalyanaraman, ở mức khái niệm).
Thực hành: Thử 3 bandwidth khác nhau cho phân tích RDD Ngày 527, so sánh estimate và độ ổn định kết quả.
Ngày 529: Kiểm tra tính hợp lệ của RDD (Manipulation Test)
Mục tiêu: Đảm bảo không có "gian lận" quanh ngưỡng làm sai lệch kết quả.
Lý thuyết: McCrary density test - kiểm tra xem có bất thường về mật độ dữ liệu quanh ngưỡng không (VD: khách hàng biết ngưỡng và cố tình chi tiêu thêm để đạt hạng VIP).
Thực hành: Vẽ histogram mật độ dữ liệu quanh ngưỡng, đánh giá có dấu hiệu manipulation không.
Ngày 530: Dự án RDD tổng hợp
Mục tiêu: Tổng hợp tuần 14.
Lý thuyết: Checklist thực hiện 1 phân tích RDD đáng tin cậy.
Thực hành: Thực hiện trọn vẹn phân tích RDD cho câu hỏi "chương trình VIP có thực sự làm tăng chi tiêu tương lai của khách hàng?" trên dataset giả lập, bao gồm manipulation test.
Tuần 15-16 - Uplift Modeling (Ngày 531-538)
Ngày 531: Uplift Modeling là gì
Mục tiêu: Hiểu bài toán khác biệt so với classification thông thường.
Lý thuyết: Uplift modeling dự đoán CHÊNH LỆCH xác suất giữa "được treatment" và "không được treatment" cho từng cá nhân, thay vì chỉ dự đoán xác suất outcome.
Thực hành: Vẽ sơ đồ 4 nhóm khách hàng theo uplift (Persuadables, Sure Things, Lost Causes, Do-Not-Disturbs), giải thích ý nghĩa từng nhóm cho chiến dịch marketing.
Ngày 532: Vì sao không thể dùng Classification thông thường
Mục tiêu: Hiểu rõ giới hạn của cách tiếp cận "dự đoán ai sẽ mua" thay vì "dự đoán ai sẽ mua NHỜ can thiệp".
Lý thuyết: Model classification thông thường target nhầm cả nhóm "Sure Things" (sẽ mua dù có can thiệp hay không) - lãng phí ngân sách marketing.
Thực hành: Phân tích 1 ví dụ chiến dịch khuyến mãi targeting sai nhóm "Sure Things", tính toán chi phí lãng phí.
Ngày 533: Two-Model Approach
Mục tiêu: Cài đặt phương pháp uplift đơn giản nhất.
Lý thuyết: Train 2 model riêng biệt (1 cho treatment group, 1 cho control group), uplift = chênh lệch dự đoán giữa 2 model.
Thực hành: Cài đặt Two-Model approach bằng scikit-learn trên dataset thí nghiệm giả lập (có cả treatment và control).
Ngày 534: Class Transformation Method
Mục tiêu: Biết phương pháp thay thế khắc phục nhược điểm của Two-Model approach.
Lý thuyết: Biến đổi target thành 1 biến duy nhất kết hợp treatment và outcome, train 1 model duy nhất.
Thực hành: Cài đặt Class Transformation method, so sánh kết quả với Two-Model approach.
Ngày 535: Uplift Trees
Mục tiêu: Biết phương pháp tree-based chuyên biệt cho uplift.
Lý thuyết: Uplift tree split dựa trên tối đa hóa chênh lệch giữa nhóm treatment/control (thay vì Gini/entropy thông thường).
Thực hành: Dùng thư viện chuyên dụng (VD:
causalmlhoặcscikit-uplift) train uplift tree, visualize.
Ngày 536: Đánh giá Uplift Model - Qini Curve
Mục tiêu: Đánh giá model uplift đúng cách (khác AUC thông thường).
Lý thuyết: Qini curve, Qini coefficient - đo khả năng model xếp hạng đúng người có uplift cao nhất.
Thực hành: Vẽ Qini curve cho model đã train, tính Qini coefficient so sánh với random targeting.
Ngày 537: Ứng dụng Uplift cho Chiến dịch Marketing
Mục tiêu: Kết nối uplift model với quyết định phân bổ ngân sách thực tế.
Lý thuyết: Targeting chỉ nhóm "Persuadables" theo uplift score, ước tính incremental revenue.
Thực hành: Thiết kế chiến dịch targeting dựa trên uplift score (chỉ target top 20% theo uplift), ước tính incremental revenue so với targeting toàn bộ.
Ngày 538: Dự án Uplift Modeling tổng hợp
Mục tiêu: Tổng hợp tuần 15-16.
Lý thuyết: Checklist xây dựng và đánh giá uplift model đầy đủ.
Thực hành: Xây uplift model hoàn chỉnh cho bài toán "ai nên nhận mã giảm giá" trên dataset giả lập, đánh giá bằng Qini curve, viết khuyến nghị targeting.
Tuần 17 - Capstone Phase 5 (Ngày 539-544)
Ngày 539: Capstone - Đề bài: "Có nên triển khai feature mới?"
Mục tiêu: Tổng hợp toàn bộ Phase 5 vào 1 dự án ra quyết định hoàn chỉnh.
Lý thuyết: Cấu trúc 1 báo cáo ra quyết định dựa trên causal evidence, kết hợp nhiều phương pháp để tăng độ tin cậy (triangulation).
Thực hành: Chọn 1 tình huống (feature mới đã chạy A/B test giới hạn + có dữ liệu quan sát mở rộng), lên kế hoạch phân tích kết hợp nhiều phương pháp.
Ngày 540: Capstone - Phân tích A/B Test chính
Mục tiêu: Áp dụng phương pháp mạnh nhất khi có thể.
Lý thuyết: Không có lý thuyết mới.
Thực hành: Phân tích kết quả A/B test (bao gồm CUPED để giảm variance), đưa ra kết luận ban đầu.
Ngày 541: Capstone - Kiểm chứng bằng Causal Inference
Mục tiêu: Tăng độ tin cậy bằng phương pháp thứ 2 (triangulation).
Lý thuyết: Không có lý thuyết mới.
Thực hành: Dùng PSM hoặc DiD trên dữ liệu quan sát mở rộng (ngoài phạm vi A/B test) để kiểm chứng lại kết luận.
Ngày 542: Capstone - Uplift Analysis cho Targeting
Mục tiêu: Đi xa hơn "có nên triển khai" sang "nên triển khai cho ai".
Lý thuyết: Không có lý thuyết mới.
Thực hành: Xây uplift model xác định phân khúc khách hàng nào hưởng lợi nhiều nhất từ feature mới, đề xuất chiến lược rollout theo phân khúc.
Ngày 543: Capstone - Viết Decision Memo
Mục tiêu: Trình bày kết luận theo hướng ra quyết định (chuẩn bị trước cho Phase 9 - Amazon-style memo).
Lý thuyết: Cấu trúc decision memo: bối cảnh, bằng chứng, rủi ro/giới hạn, khuyến nghị rõ ràng.
Thực hành: Viết decision memo hoàn chỉnh 1-2 trang tổng hợp toàn bộ bằng chứng (A/B test + causal inference + uplift), kết luận rõ ràng "triển khai/không triển khai/triển khai có điều kiện".
Ngày 544: Capstone - Hoàn thiện & Tổng kết Phase 5
Mục tiêu: Kết thúc Phase 5, chuyển giao sang Phase 6.
Lý thuyết: Nhìn lại hành trình từ A/B Testing cơ bản đến Causal Inference nâng cao - đây là kỹ năng phân biệt Decision Scientist với Data Analyst thông thường.
Thực hành: Hoàn thiện repo GitHub, cập nhật portfolio, viết bài tổng kết Phase 5, lên kế hoạch Phase 6 (Optimization).