Modeleren met log-getransformeerde monetaire output
In deze oefening ga je oefenen met het modelleren van log-getransformeerde monetaire output en daarna de "log-geld"-voorspellingen terugzetten naar monetaire eenheden. De ingeladen data bevatten de inkomens van proefpersonen in 2005 (Income2005) en de resultaten van verschillende vaardigheidstoetsen die zij in 1981 hebben gemaakt:
ArithWordParagMathAFQT(percentiel op de Armed Forces Qualifying Test)
De data zijn al opgesplitst in trainings- en testsets (income_train en income_test) en vooraf ingeladen. Je bouwt een model van log(income) op basis van de invoervariabelen en zet daarna log(income) weer terug naar income.
Deze oefening maakt deel uit van de cursus
Supervised Learning in R: Regressie
Oefeninstructies
- Roep
summary()aan opincome_train$Income2005om de samenvattende statistieken van het inkomen in de trainingsset te zien. - Schrijf een formule om
log(Income2005)uit te drukken als functie van de vijf toetsen als de variabelefmla.log. Print deze. - Pas een lineair model van
log(Income2005)toe op deincome_train-data:model.log. - Gebruik
model.logom het inkomen te voorspellen op deincome_test-gegevensset. Zet dit in de kolomlogpred.- Controleer
summary()vanlogpredom te zien dat de ordes van grootte sterk verschillen van die vanIncome2005.
- Controleer
- Keer de log-transformatie om om de voorspellingen in "monetaire eenheden" te zetten:
exp(income_test$logpred).- Controleer
summary()vanpred.incomeen zie dat de ordes van grootte nu vergelijkbaar zijn met die vanIncome2005.
- Controleer
- Vul de lege plekken in om een spreidingsdiagram te plotten van voorspeld inkomen versus inkomen op de testset.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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")