IniziaInizia gratis

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:

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

Visualizza il corso

Istruzioni dell'esercizio

  • Chiama summary() su income_train$Income2005 per vedere le statistiche di riepilogo del reddito nel set di addestramento.
  • Scrivi una formula per esprimere log(Income2005) come funzione dei cinque test nella variabile fmla.log. Stampala.
  • Adatta un modello lineare di log(Income2005) ai dati income_train: model.log.
  • Usa model.log per prevedere il reddito sul dataset income_test. Metti il risultato nella colonna logpred.
    • Controlla summary() di logpred per vedere che gli ordini di grandezza sono molto diversi da quelli di Income2005.
  • Inverti la trasformazione log per riportare le previsioni in "unità monetarie": exp(income_test$logpred).
    • Controlla summary() di pred.income e verifica che ora gli ordini di grandezza siano simili a quelli di Income2005.
  • 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")
Modifica ed esegui il codice