對數轉換後的金額輸出建模
在這個練習中,你會練習對經過對數轉換的金額輸出進行建模,接著再把「log-money」的預測值轉回金額單位。已載入的資料包含受試者在 2005 年的收入(Income2005),以及受試者在 1981 年參加多項能力測驗的成績:
ArithWordParagMathAFQT(美軍入伍資格測驗的百分位數)
資料已經切分為訓練集與測試集(分別為 income_train 與 income_test),並已預先載入。你將從輸入變數建構 log(income) 的模型,然後把 log(income) 轉回 income。
本練習屬於課程
R 中的監督式學習:回歸
練習說明
- 對
income_train$Income2005呼叫summary(),查看訓練集中收入的摘要統計。 - 撰寫一個公式,將
log(Income2005)表示為 5 項測驗的函數,指定為變數fmla.log。並將其印出。 - 將
log(Income2005)對income_train資料擬合線性模型:model.log。 - 使用
model.log對income_test資料集進行收入預測。將結果放在欄位logpred。- 檢查
logpred的summary(),你會看到其量級與Income2005差異很大。
- 檢查
- 反轉對數轉換,將預測值轉回「金額單位」:
exp(income_test$logpred)。- 檢查
pred.income的summary(),你會看到其量級現在與Income2005相近。
- 檢查
- 補上空格以繪製測試集中「預測收入 vs. 真實收入」的散佈圖。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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")