Моделювання лог-трансформованого грошового виходу
У цій вправі ви потренуєтеся моделювати лог-трансформований грошовий показник, а потім перетворювати прогнози «log-money» назад у грошові одиниці. Завантажені дані містять доходи респондентів за 2005 рік (Income2005), а також результати кількох тестів на здібності, які вони складали у 1981 році:
ArithWordParagMathAFQT(перцентиль у тесті Armed Forces Qualifying Test)
Дані вже розділено на тренувальну та тестову вибірки (відповідно income_train і income_test) і попередньо завантажено. Ви побудуєте модель log(income) за вхідними ознаками, а потім перетворите log(income) назад у income.
Ця вправа є частиною курсу
Кероване навчання в R: регресія
Інструкції до вправи
- Викличте
summary()дляincome_train$Income2005, щоб переглянути підсумкову статистику доходів у тренувальній вибірці. - Запишіть формулу, що виражає
log(Income2005)як функцію п'яти тестів, у зміннуfmla.log. Виведіть її. - Навчіть лінійну модель
log(Income2005)на данихincome_train:model.log. - Використайте
model.log, щоб передбачити дохід на наборіincome_test. Запишіть його в стовпчикlogpred.- Перевірте
summary()дляlogpred, щоб побачити, що масштаби значно відрізняються відIncome2005.
- Перевірте
- Зворотно застосуйте лог-трансформацію, щоб отримати прогнози в «грошових одиницях»:
exp(income_test$logpred).- Перевірте
summary()дляpred.incomeі переконайтеся, що тепер масштаби подібні до масштабівIncome2005.
- Перевірте
- Заповніть пропуски, щоб побудувати точкову діаграму передбаченого доходу проти фактичного доходу на тестовій вибірці.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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")