Modelización de una salida monetaria con log-transformación
En este ejercicio, practicarás cómo modelar una variable monetaria tras aplicar un logaritmo y, después, cómo volver a convertir las predicciones de "log-dinero" a unidades monetarias. Los datos cargados recogen los ingresos de los sujetos en 2005 (Income2005), así como los resultados de varias pruebas de aptitud realizadas por los sujetos en 1981:
ArithWordParagMathAFQT(percentil en el Armed Forces Qualifying Test)
Los datos ya se han dividido en conjuntos de entrenamiento y prueba (income_train e income_test, respectivamente) y están precargados. Construirás un modelo de log(income) a partir de las variables de entrada y luego convertirás log(income) de nuevo a income.
Este ejercicio forma parte del curso
Aprendizaje supervisado en R: Regresión
Instrucciones del ejercicio
- Llama a
summary()sobreincome_train$Income2005para ver los estadísticos resumen de los ingresos en el conjunto de entrenamiento. - Escribe una fórmula que exprese
log(Income2005)como función de las cinco pruebas en la variablefmla.log. Imprímela. - Ajusta un modelo lineal de
log(Income2005)con los datos deincome_train:model.log. - Usa
model.logpara predecir los ingresos en el conjuntoincome_test. Guarda el resultado en la columnalogpred.- Revisa
summary()delogpredpara comprobar que las magnitudes son muy diferentes de las deIncome2005.
- Revisa
- Invierte la transformación logarítmica para poner las predicciones en "unidades monetarias":
exp(income_test$logpred).- Revisa
summary()depred.incomey comprueba que ahora las magnitudes son similares a las deIncome2005.
- Revisa
- Rellena los espacios en blanco para trazar un diagrama de dispersión de ingresos predichos frente a ingresos en el conjunto de prueba.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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")