モデリング前の目的変数の変換

R による Supervised Learning:回帰

Nina Zumel and John Mount

Win-Vector, LLC

金融データへの対数変換

  • 金融データは対数正規分布に従う
  • 長い裾、広い動的範囲(6万〜70万)
R による Supervised Learning:回帰

対数正規分布

  • 平均 > 中央値(約5万 vs 3.9万)
  • 平均を予測すると典型的な値を過大予測する
R による Supervised Learning:回帰

正規分布に戻る

正規分布の場合:

  • 平均 = 中央値(ここでは 4.53 vs 4.59)
  • 動的範囲が適切(1.8〜5.8)
R による Supervised Learning:回帰

手順

  1. 目的変数を対数変換してモデルを適合
     model <- lm(log(y) ~ x, data = train)
    
R による Supervised Learning:回帰

手順

  1. 目的変数を対数変換してモデルを適合
     model <- lm(log(y) ~ x, data = train)
    
  2. 対数空間で予測値を算出
     logpred <- predict(model, data = test)
    
R による Supervised Learning:回帰

手順

  1. 目的変数を対数変換してモデルを適合
     model <- lm(log(y) ~ x, data = train)
    
  2. 対数空間で予測値を算出
     logpred <- predict(model, data = test)
    
  3. 予測値を元の空間に逆変換
     pred <- exp(logpred)
    
R による Supervised Learning:回帰

対数変換した目的変数の予測:乗法誤差

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

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

  • 乗法誤差: $pred/y$
  • 相対誤差: $(pred - y)/y = \frac{pred}{y} - 1$

乗法誤差を小さくすることで相対誤差も小さくなる。

R による Supervised Learning:回帰

二乗平均平方根相対誤差

二乗平均平方根相対誤差 = $\sqrt{ \overline{ (\frac{pred-y}{y})^2 }}$

  • 対数変換した目的変数の予測により二乗平均平方根相対誤差が小さくなる
  • ただし、RMSEは大きくなることが多い
R による Supervised Learning:回帰

例:収入を直接モデル化する

modIncome <- lm(Income ~ AFQT + Educ, data = train)
  • AFQT: 調査の25年前に実施された習熟度テストのスコア
  • Educ: 調査時点までの就学年数
  • Income: 調査時点での収入
R による Supervised Learning:回帰

モデルの性能

test %>% 
+     mutate(pred = predict(modIncome, newdata = test),
+            err = pred - Income) %>%
+     summarize(rmse = sqrt(mean(err^2)),
+               rms.relerr = sqrt(mean((err/Income)^2))) 
RMSE 二乗平均平方根相対誤差
36,819.39 3.295189
R による Supervised Learning:回帰

`log(Income)` のモデル化

modLogIncome <- lm(log(Income) ~ AFQT + Educ, data = train)
R による Supervised Learning:回帰

モデルの性能

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 二乗平均平方根相対誤差
38,906.61 2.276865
R による Supervised Learning:回帰

誤差の比較

log(Income) モデル:二乗平均平方根相対誤差は小さく、RMSEは大きい

モデル RMSE 二乗平均平方根相対誤差
Income 36,819.39 3.295189
log(Income) 38,906.61 2.276865
R による Supervised Learning:回帰

さあ、練習しましょう!

R による Supervised Learning:回帰

Preparing Video For Download...