Nhập Môn Mô Hình Hồi Quy Trong Python — Từ Lý Thuyết Sang Code Thật

Tóm tắt nhanh: Đây là bài kết nối toàn bộ lộ trình: dùng pandas (Module 4) để chuẩn bị dữ liệu, rồi đưa vào statsmodels/scikit-learn để xây mô hình hồi quy — đúng nguyên lý đã học ở Module 1, giờ chạy được bằng code thật, không chỉ trên lý thuyết.
Cầu nối: pandas → mô hình thậtThư viện: statsmodels, scikit-learnỨng dụng lý thuyết Module 1

Module 1 bạn đã học lý thuyết hồi quy (khái niệm “khớp đường thẳng qua dữ liệu”). Suốt Module 4-5, bạn đã học cách dùng pandas xử lý và trực quan hóa dữ liệu. Bài này ghép 2 mảnh lại: dùng dữ liệu đã xử lý sạch để chạy 1 mô hình hồi quy THẬT bằng Python.

Điểm giao nhau giữa pandas và mô hình: mảng NumPy

Các thư viện xây mô hình (statsmodels, scikit-learn) không làm việc trực tiếp với DataFrame pandas — chúng cần dữ liệu ở dạng mảng NumPy thuần. May mắn là chuyển đổi rất đơn giản: gọi .to_numpy() trên DataFrame đã có.

pandasĐọc, dọn, biến đổi dữ liệu(Module 4 đã học)statsmodels / scikit-learnXây mô hình hồi quy(Module 1 đã học lý thuyết)
pandas chuẩn bị dữ liệu (đã học ở Module 4) → chuyển sang mảng số → đưa vào thư viện mô hình để xây hồi quy (lý thuyết đã học ở Module 1).

Công việc chuẩn bị dữ liệu để đưa vào mô hình gọi là feature engineering — chính là những kỹ thuật gom nhóm, làm sạch, biến đổi dữ liệu đã học suốt Module 4, giờ có mục đích cụ thể hơn: tạo ra đúng các biến số (features) mô hình cần.

Code thật: từ dữ liệu đến kết quả hồi quy

import statsmodels.api as smX = sm.add_constant(data[[“x0″,”x1”]])model = sm.OLS(data[“y”], X).fit()print(model.summary())# .summary() in ra hệ số, p-value, R-squared — mọi thứ đã học ở Module 1DataFrame pandas → mảng NumPy → mô hình — chỉ 4 dòng
statsmodels cho ra bảng kết quả chi tiết (.summary()) với hệ số, p-value, R-squared — đúng các khái niệm đã học ở Module 1 (hồi quy) và Module 2 (đánh giá mô hình), giờ nhìn thấy bằng số thật.

Chú ý dòng sm.add_constant() — bước này thêm 1 cột hằng số vào dữ liệu, cần thiết để mô hình tính đúng hệ số chặn (intercept). Đây là 1 chi tiết kỹ thuật nhỏ nhưng dễ quên, khiến kết quả sai nếu bỏ qua. scikit-learn (thư viện thay thế phổ biến) có cách làm hơi khác nhưng cùng nguyên lý — bạn sẽ gặp cả 2 thư viện này trong thực tế, tùy dự án.

Xem thêm

Video này (tiếng Anh) thực hành cả 2 thư viện statsmodels và sklearn trên cùng 1 ví dụ, giúp bạn so sánh trực tiếp.

Checklist tự kiểm tra sau bài này
  • Bạn giải thích được vì sao cần chuyển DataFrame pandas sang mảng NumPy trước khi đưa vào mô hình.
  • Bạn viết được đoạn code cơ bản chạy hồi quy bằng statsmodels (import, add_constant, OLS, fit, summary).
  • Bạn kết nối được các khái niệm trong .summary() (hệ số, p-value, R-squared) với lý thuyết đã học ở Module 1.
Cần nhớ

Toàn bộ lộ trình đến đây đã đi 1 vòng đầy đủ: từ tư duy phân tích (Module 0), lý thuyết mô hình (Module 1), cách đánh giá (Module 2), case study thực tế (Module 3), đến thực hành code thật (Module 4-5). Mô hình hồi quy chạy bằng Python không phải kiến thức mới — nó chính là lý thuyết đã học, giờ chạy được bằng tay bạn.

Câu hỏi thường gặp

Nên dùng statsmodels hay scikit-learn?

statsmodels cho kết quả thống kê chi tiết hơn (p-value, khoảng tin cậy) — hợp để PHÂN TÍCH/giải thích. scikit-learn tối ưu cho việc XÂY mô hình dự đoán qui mô lớn, ít chi tiết thống kê hơn. Tùy mục đích mà chọn.

Nếu quên add_constant() thì sao?

Mô hình sẽ giả định đường hồi quy PHẢI đi qua điểm gốc (0,0) — thường không đúng với dữ liệu thật, dẫn đến hệ số bị lệch sai. Đây là lỗi rất dễ mắc khi mới học.

Học xong bài này, tôi có thể tự phân tích dữ liệu đầu tư của mình chưa?

Bạn đã có đủ nền tảng để bắt đầu (tư duy + lý thuyết + code) — Module 6 sẽ thực hành ngay 1 case study đầy đủ trên dữ liệu tài chính thật để bạn áp dụng toàn bộ kỹ năng đã học.

Nguồn: Wes McKinney, Python for Data Analysis (3rd ed.), Chương 12 “Introduction to Modeling Libraries in Python” (O’Reilly, 2022). Nội dung diễn giải lại bằng lời riêng, không sao chép nguyên văn.