Aan de slagGa gratis aan de slag

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:

  • Arith
  • Word
  • Parag
  • Math
  • AFQT (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

Cursus bekijken

Oefeninstructies

  • Roep summary() aan op income_train$Income2005 om 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 variabele fmla.log. Print deze.
  • Pas een lineair model van log(Income2005) toe op de income_train-data: model.log.
  • Gebruik model.log om het inkomen te voorspellen op de income_test-gegevensset. Zet dit in de kolom logpred.
    • Controleer summary() van logpred om te zien dat de ordes van grootte sterk verschillen van die van Income2005.
  • Keer de log-transformatie om om de voorspellingen in "monetaire eenheden" te zetten: exp(income_test$logpred).
    • Controleer summary() van pred.income en zie dat de ordes van grootte nu vergelijkbaar zijn met die van Income2005.
  • 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")
Code bewerken en uitvoeren