Modellare un output monetario trasformato con log
In questo esercizio farai pratica nel modellare un output monetario trasformato con log e poi nel riportare le previsioni "log-money" in unità monetarie. I dati caricati registrano i redditi dei soggetti nel 2005 (Income2005), oltre ai risultati di diversi test attitudinali sostenuti dai soggetti nel 1981:
ArithWordParagMathAFQT(percentile dell'Armed Forces Qualifying Test)
I dati sono già stati suddivisi in insieme di addestramento e di test (income_train e income_test, rispettivamente) e pre-caricati. Costruirai un modello di log(income) a partire dagli input e poi convertirai log(income) di nuovo in income.
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Chiama
summary()suincome_train$Income2005per vedere le statistiche di riepilogo del reddito nel set di addestramento. - Scrivi una formula per esprimere
log(Income2005)come funzione dei cinque test nella variabilefmla.log. Stampala. - Adatta un modello lineare di
log(Income2005)ai datiincome_train:model.log. - Usa
model.logper prevedere il reddito sul datasetincome_test. Metti il risultato nella colonnalogpred.- Controlla
summary()dilogpredper vedere che gli ordini di grandezza sono molto diversi da quelli diIncome2005.
- Controlla
- Inverti la trasformazione log per riportare le previsioni in "unità monetarie":
exp(income_test$logpred).- Controlla
summary()dipred.incomee verifica che ora gli ordini di grandezza siano simili a quelli diIncome2005.
- Controlla
- Compila gli spazi vuoti per tracciare uno scatter plot del reddito previsto vs. reddito effettivo sul set di test.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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")