Biến đổi biến phản hồi trước khi mô hình hóa

Học có giám sát với R: Hồi quy

Nina Zumel and John Mount

Win-Vector, LLC

Biến đổi log cho dữ liệu tiền tệ

  • Giá trị tiền tệ: phân phối lognormal
  • Đuôi dài, biên độ rộng (60–700K)
Học có giám sát với R: Hồi quy

Phân phối lognormal

  • mean > median (~ 50K so với 39K)
  • Dự đoán theo mean sẽ vượt quá giá trị điển hình
Học có giám sát với R: Hồi quy

Quay về phân phối chuẩn

Với phân phối chuẩn:

  • mean = median (ở đây: 4.53 so với 4.59)
  • Biên độ hợp lý hơn (1.8 - 5.8)
Học có giám sát với R: Hồi quy

Quy trình

  1. Lấy log biến đầu ra và fit mô hình
     model <- lm(log(y) ~ x, data = train)
    
Học có giám sát với R: Hồi quy

Quy trình

  1. Lấy log biến đầu ra và fit mô hình
     model <- lm(log(y) ~ x, data = train)
    
  2. Tạo dự đoán trong không gian log
     logpred <- predict(model, data = test)
    
Học có giám sát với R: Hồi quy

Quy trình

  1. Lấy log biến đầu ra và fit mô hình
     model <- lm(log(y) ~ x, data = train)
    
  2. Tạo dự đoán trong không gian log
     logpred <- predict(model, data = test)
    
  3. Chuyển dự đoán về không gian gốc
     pred <- exp(logpred)
    
Học có giám sát với R: Hồi quy

Dự đoán biến đã log: sai số nhân

$log(a) + log(b) = log(ab)$

$log(a) - log(b) = log(a/b)$

  • Sai số nhân: $pred/y$
  • Sai số tương đối: $(pred - y)/y = \frac{pred}{y} - 1$

Giảm sai số nhân sẽ giảm sai số tương đối.

Học có giám sát với R: Hồi quy

Sai số bình phương trung bình căn bậc hai tương đối

Sai số tương đối RMS = $\sqrt{ \overline{ (\frac{pred-y}{y})^2 }}$

  • Dự đoán biến đã log giảm sai số tương đối RMS
  • Nhưng mô hình thường có RMSE lớn hơn
Học có giám sát với R: Hồi quy

Ví dụ: Mô hình hóa Income trực tiếp

modIncome <- lm(Income ~ AFQT + Educ, data = train)
  • AFQT: Điểm bài kiểm tra năng lực cách khảo sát 25 năm
  • Educ: Số năm học tính đến thời điểm khảo sát
  • Income: Thu nhập tại thời điểm khảo sát
Học có giám sát với R: Hồi quy

Hiệu năng mô hình

test %>% 
+     mutate(pred = predict(modIncome, newdata = test),
+            err = pred - Income) %>%
+     summarize(rmse = sqrt(mean(err^2)),
+               rms.relerr = sqrt(mean((err/Income)^2))) 
RMSE Sai số tương đối RMS
36,819.39 3.295189
Học có giám sát với R: Hồi quy

Mô hình log(Income)

modLogIncome <- lm(log(Income) ~ AFQT + Educ, data = train)
Học có giám sát với R: Hồi quy

Hiệu năng mô hình

test %>% 
+     mutate(predlog = predict(modLogIncome, newdata = test), 
+            pred = exp(predlog), 
+            err = pred - Income) %>%
+     summarize(rmse = sqrt(mean(err^2)),
+               rms.relerr = sqrt(mean((err/Income)^2)))
RMSE Sai số tương đối RMS
38,906.61 2.276865
Học có giám sát với R: Hồi quy

So sánh sai số

Mô hình log(Income): sai số tương đối RMS nhỏ hơn, RMSE lớn hơn

Mô hình RMSE Sai số tương đối RMS
Trên Income 36,819.39 3.295189
Trên log(Income) 38,906.61 2.276865
Học có giám sát với R: Hồi quy

Cùng luyện tập nào!

Học có giám sát với R: Hồi quy

Preparing Video For Download...