Transformarea variabilei răspuns înainte de modelare

Învățare supervizată în R: Regresia

Nina Zumel and John Mount

Win-Vector, LLC

Transformarea logaritmică pentru date monetare

  • Valorile monetare: distribuite log-normal
  • Coadă lungă, interval dinamic mare (60-700K)
Învățare supervizată în R: Regresia

Distribuțiile log-normale

  • medie > mediană (~ 50K vs 39K)
  • Predicția mediei va supraestima valorile tipice
Învățare supervizată în R: Regresia

Revenirea la distribuția normală

Pentru o distribuție normală:

  • medie = mediană (aici: 4,53 vs 4,59)
  • interval dinamic mai rezonabil (1,8 - 5,8)
Învățare supervizată în R: Regresia

Procedura

  1. Aplicați log asupra variabilei răspuns și ajustați modelul
     model <- lm(log(y) ~ x, data = train)
    
Învățare supervizată în R: Regresia

Procedura

  1. Aplicați log asupra variabilei răspuns și ajustați modelul
     model <- lm(log(y) ~ x, data = train)
    
  2. Faceți predicțiile în spațiul log
     logpred <- predict(model, data = test)
    
Învățare supervizată în R: Regresia

Procedura

  1. Aplicați log asupra variabilei răspuns și ajustați modelul
     model <- lm(log(y) ~ x, data = train)
    
  2. Faceți predicțiile în spațiul log
     logpred <- predict(model, data = test)
    
  3. Transformați predicțiile în spațiul original
     pred <- exp(logpred)
    
Învățare supervizată în R: Regresia

Predicția variabilelor log-transformate: Eroarea multiplicativă

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

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

  • Eroare multiplicativă: $pred/y$
  • Eroare relativă: $(pred - y)/y = \frac{pred}{y} - 1$

Reducerea erorii multiplicative reduce eroarea relativă.

Învățare supervizată în R: Regresia

Eroarea relativă pătratică medie

Eroare relativă RMS = $\sqrt{ \overline{ (\frac{pred-y}{y})^2 }}$

  • Predicția log-variabilei reduce eroarea relativă RMS
  • Dar modelul va avea adesea un RMSE mai mare
Învățare supervizată în R: Regresia

Exemplu: Modelarea directă a venitului

modIncome <- lm(Income ~ AFQT + Educ, data = train)
  • AFQT: Scor la testul de competențe cu 25 de ani înainte de sondaj
  • Educ: Ani de educație până la momentul sondajului
  • Income: Venit la momentul sondajului
Învățare supervizată în R: Regresia

Performanța modelului

test %>% 
+     mutate(pred = predict(modIncome, newdata = test),
+            err = pred - Income) %>%
+     summarize(rmse = sqrt(mean(err^2)),
+               rms.relerr = sqrt(mean((err/Income)^2))) 
RMSE Eroare relativă RMS
36,819.39 3.295189
Învățare supervizată în R: Regresia

Modelarea log(Income)

modLogIncome <- lm(log(Income) ~ AFQT + Educ, data = train)
Învățare supervizată în R: Regresia

Performanța modelului

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 Eroare relativă RMS
38,906.61 2.276865
Învățare supervizată în R: Regresia

Compararea erorilor

Modelul log(Income): eroare relativă RMS mai mică, RMSE mai mare

Model RMSE Eroare relativă RMS
Pe Income 36,819.39 3.295189
Pe log(Income) 38,906.61 2.276865
Învățare supervizată în R: Regresia

Să exersăm!

Învățare supervizată în R: Regresia

Preparing Video For Download...