เปรียบเทียบ RMSE และ Root-Mean-Squared Relative Error
ในแบบฝึกหัดนี้ จะแสดงให้เห็นว่าการแปลงผลลัพธ์ทางการเงินด้วย log ก่อนสร้างโมเดลช่วยปรับปรุง mean relative error (แต่จะเพิ่มค่า RMSE) เมื่อเทียบกับการสร้างโมเดลจากผลลัพธ์โดยตรง โดยจะเปรียบเทียบผลลัพธ์ของ model.log จากแบบฝึกหัดก่อนหน้ากับโมเดล model.abs ที่ fit ค่า income โดยตรง
ชุดข้อมูล income_train และ income_test ถูกโหลดไว้แล้ว พร้อมกับโมเดล model.log
นอกจากนี้ยังมี:
model.abs: โมเดลที่ fit ค่า income กับตัวแปร input โดยตรง โดยใช้สูตรIncome2005 ~ Arith + Word + Parag + Math + AFQT
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ใน R: การถดถอย
คำแนะนำการฝึกหัด
- เติมช่องว่างเพื่อเพิ่มค่าพยากรณ์จากแต่ละโมเดลลงใน
income_test- อย่าลืมหาค่า exponent ของค่าพยากรณ์จาก
model.logเพื่อยกเลิก log transform!
- อย่าลืมหาค่า exponent ของค่าพยากรณ์จาก
- เติมช่องว่างเพื่อใช้
pivot_longer()กับค่าพยากรณ์ และคำนวณค่า residual และค่าความคลาดเคลื่อนสัมพัทธ์ - เติมช่องว่างเพื่อคำนวณ RMSE และ relative RMSE ของค่าพยากรณ์
- โมเดลใดมีค่าความคลาดเคลื่อนเชิงสัมบูรณ์มากกว่า และโมเดลใดมีค่าความคลาดเคลื่อนสัมพัทธ์มากกว่า?
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# fmla.abs is available
fmla.abs
# model.abs is available
summary(model.abs)
# Add predictions to the test set
income_test <- income_test %>%
mutate(pred.absmodel = ___(___, income_test), # predictions from model.abs
pred.logmodel = ___(___(___, income_test))) # predictions from model.log
# pivot_longer the predictions and calculate residuals and relative error
income_long <- income_test %>%
pivot_longer(names_to = 'modeltype', values_to = 'pred', cols=c('pred.absmodel', 'pred.logmodel')) %>%
mutate(residual = ___, # residuals
relerr = ___) # relative error
# Calculate RMSE and relative RMSE and compare
income_long %>%
group_by(modeltype) %>% # group by modeltype
summarize(rmse = ___, # RMSE
rmse.rel = ___) # Root mean squared relative error