Modellierung eines logarithmiert transformierten Geld-Outputs
In dieser Übung übst du, mit logarithmisch transformiertem Geld-Output zu modellieren und anschließend die „Log-Geld“-Vorhersagen zurück in Geldeinheiten umzuwandeln. Die geladenen Daten enthalten die Einkommen der Probanden im Jahr 2005 (Income2005) sowie die Ergebnisse mehrerer Eignungstests, die die Probanden 1981 abgelegt haben:
ArithWordParagMathAFQT(Perzentil im Armed Forces Qualifying Test)
Die Daten wurden bereits in Trainings- und Testsatz (income_train bzw. income_test) aufgeteilt und vorab geladen. Du baust ein Modell von log(income) aus den Eingaben und wandelst anschließend log(income) wieder in income um.
Diese Übung ist Teil des Kurses
<Kurs>Überwachtes Lernen in R: Regression</Kurs>Übungsanweisungen
- Rufe
summary()aufincome_train$Income2005auf, um die zusammenfassenden Statistiken des Einkommens im Trainingssatz zu sehen. - Schreibe eine Formel, um
log(Income2005)als Funktion der fünf Tests auszudrücken, als Variablefmla.log. Lass sie ausgeben. - Fitte ein lineares Modell von
log(Income2005)auf dieincome_train-Daten:model.log. - Verwende
model.log, um das Einkommen auf demincome_test-Datensatz vorherzusagen. Speichere es in der Spaltelogpred.- Prüfe
summary()vonlogpred, um zu sehen, dass die Größenordnungen sich stark von denen vonIncome2005unterscheiden.
- Prüfe
- Hebe die Log-Transformation auf, um die Vorhersagen in „Geldeinheiten“ zu bringen:
exp(income_test$logpred).- Prüfe
summary()vonpred.incomeund sieh, dass die Größenordnungen nun denen vonIncome2005ähneln.
- Prüfe
- Ergänze die Lücken, um ein Streudiagramm von vorhergesagtem Einkommen vs. Einkommen im Testsatz zu zeichnen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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")