始める無料で始める

対数変換した金額の出力をモデリングする

この演習では、金額データを対数変換してモデリングし、その「対数金額」から予測値を元の金額単位に戻す練習をします。読み込まれているデータには、被験者の2005年の収入(Income2005)と、被験者が1981年に受験した複数の適性検査の結果が含まれます。

  • Arith
  • Word
  • Parag
  • Math
  • AFQT(Armed Forces Qualifying Test のパーセンタイル)

データはすでに学習用とテスト用(それぞれ income_trainincome_test)に分割され、読み込まれています。入力変数から log(income) のモデルを作成し、その後に log(income) を income に戻します。

この演習はコースの一部です

R による Supervised Learning:回帰

コースを見る

演習の手順

  • 学習用データにおける収入の要約統計量を見るため、income_train$Income2005 に対して summary() を呼び出します。
  • 5つの検査を説明変数として、log(Income2005) を表す式を変数 fmla.log に作成します。出力して確認します。
  • income_train データに対して log(Income2005) の線形モデル model.log を当てはめます。
  • model.log を使って income_test データセットで収入を予測し、列 logpred に格納します。
    • logpredsummary() を確認し、値のスケールが Income2005 と大きく異なることを確認します。
  • 予測値を「金額単位」に戻すため、対数変換を逆にします:exp(income_test$logpred)
    • pred.incomesummary() を確認し、スケールが Income2005 に近くなっていることを確かめます。
  • テストセットにおける予測収入と実際の収入の散布図を描くため、空欄を埋めてコードを完成させます。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Examine Income2005 in the training set
___

# Write the formula for log income as a function of the tests and print it
(fmla.log <- ___)

# Fit the linear model
model.log <-  ___

# Make predictions on income_test
income_test$logpred <- ___
summary(income_test$logpred)

# Convert the predictions to monetary units
income_test$pred.income <- ___
summary(income_test$pred.income)

#  Plot predicted income (x axis) vs income
ggplot(___, aes(x = ___, y = ___)) + 
  geom_point() + 
  geom_abline(color = "blue")
コードを編集して実行