Hồi quy tuyến tính trong phân tích dữ liệu: xây mô hình, đánh giá R², MAE, RMSE và kiểm tra giả định

Hồi quy tuyến tính trong phân tích dữ liệu: xây mô hình, đánh giá R², MAE, RMSE và kiểm tra giả định
Nội dung bài viết 9 mục
  1. Bài toán ví dụ
  2. Quy trình 6 bước
  3. Code Python
  4. Đọc các chỉ số đánh giá
  5. Kiểm tra giả định
  6. Diễn giải hệ số – cẩn thận nhân quả
  7. Làm trong Excel
  8. Lỗi hay gặp
  9. Cần người làm giúp?

Tóm tắt nhanh

  • Hồi quy tuyến tính dự đoán một biến số liên tục (độ bền, kích thước, sản lượng, chi phí) từ một hay nhiều biến đầu vào.
  • Luôn chia dữ liệu thành tập huấn luyện và kiểm tra; đánh giá trên tập kiểm tra mới phản ánh đúng khả năng dự đoán.
  • Chỉ số đánh giá: R² (giải thích được bao nhiêu biến động), MAE/RMSE (sai số trung bình theo đơn vị gốc), MAPE (sai số %).
  • Kiểm tra phần dư và đa cộng tuyến trước khi tin vào hệ số.

Quy trình xây và đánh giá mô hình hồi quy

Kiến thức nền về hồi quy xem tại Hồi quy cơ bản; bài này tập trung vào quy trình xây và đánh giá mô hình dự báo.

Bài toán ví dụ

Dự đoán độ bền kéo của sản phẩm ép nhựa từ: nhiệt độ khuôn, áp suất phun, thời gian làm nguội, độ ẩm hạt nhựa. Có 600 mẫu lịch sử đã đo.

Quy trình 6 bước

  1. Khám phá dữ liệu: thống kê mô tả, biểu đồ scatter từng biến với độ bền, hệ số tương quan.
  2. Làm sạch: loại giá trị đo lỗi, xử lý thiếu.
  3. Chia dữ liệu: 80% huấn luyện, 20% kiểm tra (ngẫu nhiên, hoặc theo thời gian nếu dữ liệu có thứ tự thời gian).
  4. Huấn luyện mô hình trên tập huấn luyện.
  5. Đánh giá trên tập kiểm tra.
  6. Diễn giải và triển khai: đọc hệ số, dùng mô hình chọn thông số, theo dõi sai số định kỳ.

Code Python

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error

df = pd.read_excel("do_ben.xlsx")
X = df[["nhiet_do_khuon", "ap_suat", "tg_lam_nguoi", "do_am"]]
y = df["do_ben"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42)

model = LinearRegression().fit(X_train, y_train)
pred = model.predict(X_test)

print("R2  :", round(r2_score(y_test, pred), 3))
print("MAE :", round(mean_absolute_error(y_test, pred), 2))
print("RMSE:", round(mean_squared_error(y_test, pred) ** 0.5, 2))
print(dict(zip(X.columns, model.coef_.round(3))))

Đọc các chỉ số đánh giá

Chỉ sốÝ nghĩaCách đọc
R²Tỉ lệ biến động của Y được mô hình giải thích0–1, càng gần 1 càng tốt; so với R² tập huấn luyện để phát hiện quá khớp
R² hiệu chỉnhR² có phạt khi thêm biếnDùng khi so sánh mô hình có số biến khác nhau
MAESai số tuyệt đối trung bìnhCùng đơn vị Y, dễ giải thích: “trung bình lệch 1,8 MPa”
RMSECăn bậc hai sai số bình phương trung bìnhPhạt nặng sai số lớn; luôn ≥ MAE
MAPESai số phần trăm trung bìnhDễ trao đổi với lãnh đạo; không dùng khi Y gần 0

So với dung sai: một mô hình có RMSE = 1,8 MPa có đủ dùng không phụ thuộc vào yêu cầu kỹ thuật. Nếu dung sai là ±2 MPa, sai số này quá lớn để thay thế phép đo.

Kiểm tra giả định

Giả địnhCách kiểmNếu vi phạm
Quan hệ tuyến tínhScatter phần dư theo giá trị dự đoán, không có dạng congThêm biến bậc hai, biến đổi log
Phần dư phân phối chuẩnHistogram, biểu đồ xác suất chuẩnBiến đổi Y, kiểm tra ngoại lai
Phương sai đềuPhần dư không loe ra theo giá trị dự đoánBiến đổi Y, hồi quy có trọng số
Phần dư độc lậpKhông có xu hướng theo thứ tự thời gianMô hình chuỗi thời gian
Không đa cộng tuyếnVIF < 5–10Bỏ bớt biến tương quan cao

Diễn giải hệ số – cẩn thận nhân quả

Hệ số +0,35 của nhiệt độ khuôn nghĩa là: khi các biến khác giữ nguyên, tăng 1°C thì độ bền dự đoán tăng 0,35 MPa — trong phạm vi dữ liệu đã có. Hồi quy trên dữ liệu lịch sử cho thấy liên hệ, chưa chứng minh nhân quả. Muốn khẳng định và tối ưu thông số, nên thiết kế thí nghiệm DOE.

Làm trong Excel

Data → Data Analysis → Regression (bật Analysis ToolPak) cho bảng hệ số, R², p-value, phần dư. Phù hợp với mô hình nhỏ, giải thích cho người không dùng Python.

Lỗi hay gặp

  • Chỉ đánh giá trên tập huấn luyện → R² đẹp nhưng dự đoán thực tế kém.
  • Ngoại suy ra ngoài phạm vi dữ liệu (dự đoán ở nhiệt độ chưa từng chạy).
  • Đưa quá nhiều biến khi dữ liệu ít → quá khớp.

Cần người làm giúp?

Industrial Knowledge hỗ trợ xây mô hình hồi quy, dự báo từ dữ liệu quá trình và trình bày kết quả dễ hiểu. Xem dịch vụ.

Bản tin Industrial Knowledge

Mỗi tuần một công cụ, đọc trong 5 phút

Đăng ký nhận bản tin và checklist 8D miễn phí (PDF). Không spam, hủy bất cứ lúc nào.