Modelarea venitului log-transformat
În acest exercițiu, vei exersa modelarea pe output monetar log-transformat, iar apoi vei transforma predicțiile „log-venit" înapoi în unități monetare. Datele încărcate înregistrează veniturile subiecților în 2005 (Income2005), precum și rezultatele mai multor teste de aptitudini susținute de aceștia în 1981:
ArithWordParagMathAFQT(Percentilă la Testul de Calificare al Forțelor Armate)
Datele au fost deja împărțite în seturi de antrenament și de testare (income_train și income_test) și sunt preîncărcate. Vei construi un model pentru log(venit) pornind de la variabilele de intrare, după care vei converti log(venit) înapoi în venit.
Acest exercițiu face parte din cursul
Învățare supervizată în R: Regresia
Instrucțiuni pentru exercițiu
- Aplică
summary()peincome_train$Income2005pentru a vedea statisticile sumare ale venitului din setul de antrenament. - Scrie o formulă care să exprime
log(Income2005)ca funcție de cele cinci teste și salveaz-o în variabilafmla.log. Afișeaz-o. - Antrenează un model liniar pentru
log(Income2005)pe dateleincome_train:model.log. - Folosește
model.logpentru a face predicții pe setul de dateincome_test. Stochează rezultatele în coloanalogpred.- Verifică
summary()allogpredpentru a observa că valorile sunt foarte diferite față de cele aleIncome2005.
- Verifică
- Inversează transformarea logaritmică pentru a converti predicțiile în „unități monetare":
exp(income_test$logpred).- Verifică
summary()alpred.incomeși observă că valorile sunt acum similare cu cele aleIncome2005.
- Verifică
- Completează spațiile libere pentru a reprezenta grafic un scatter plot al venitului prezis față de venitul real din setul de testare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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")