การสร้างโมเดลจากผลลัพธ์ทางการเงินที่ผ่านการแปลง log
ในแบบฝึกหัดนี้ จะได้ฝึกสร้างโมเดลจากผลลัพธ์ทางการเงินที่ผ่านการแปลง log แล้วแปลงค่าพยากรณ์ "log-money" กลับมาเป็นหน่วยเงิน ชุดข้อมูลที่โหลดมาบันทึกรายได้ของกลุ่มตัวอย่างในปี 2005 (Income2005) รวมถึงผลการทดสอบความถนัดหลายรายการที่ทำในปี 1981:
ArithWordParagMathAFQT(เปอร์เซ็นไทล์จากการทดสอบ Armed Forces Qualifying Test)
ข้อมูลถูกแบ่งเป็นชุดฝึกและชุดทดสอบ (income_train และ income_test ตามลำดับ) และโหลดไว้แล้ว จากนั้นให้สร้างโมเดลของ log(income) จากตัวแปรอินพุต แล้วแปลง log(income) กลับมาเป็นค่า income
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ใน R: การถดถอย
คำแนะนำการฝึกหัด
- เรียก
summary()บนincome_train$Income2005เพื่อดูสถิติสรุปของรายได้ในชุดฝึก - เขียนสูตรเพื่อแสดง
log(Income2005)ในฐานะฟังก์ชันของการทดสอบทั้ง 5 รายการ โดยเก็บไว้ในตัวแปรfmla.logแล้วพิมพ์ออกมา - สร้าง linear model ของ
log(Income2005)จากข้อมูลincome_train:model.log - ใช้
model.logพยากรณ์รายได้บนชุดข้อมูลincome_testแล้วเก็บผลไว้ในคอลัมน์logpred- ตรวจสอบ
summary()ของlogpredเพื่อให้เห็นว่าขนาดของค่าต่างจากIncome2005มาก
- ตรวจสอบ
- ย้อนกลับการแปลง log เพื่อนำค่าพยากรณ์กลับมาเป็น "หน่วยเงิน":
exp(income_test$logpred)- ตรวจสอบ
summary()ของpred.incomeแล้วสังเกตว่าขนาดของค่าใกล้เคียงกับIncome2005แล้ว
- ตรวจสอบ
- เติมช่องว่างเพื่อพล็อต scatter plot ของรายได้ที่พยากรณ์เทียบกับรายได้จริงในชุดทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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")