Моделирование логарифмически преобразованного денежного показателя
В этом упражнении вы потренируетесь строить модель на основе логарифмически преобразованного денежного показателя, а затем переводить предсказания «логарифма дохода» обратно в денежные единицы. Загруженные данные содержат сведения о доходах участников в 2005 году (Income2005), а также результаты нескольких тестов на профессиональную пригодность, пройденных ими в 1981 году:
ArithWordParagMathAFQT(процентиль по Квалификационному тесту Вооружённых сил)
Данные уже разделены на обучающую и тестовую выборки (income_train и income_test соответственно) и предварительно загружены. Вы построите модель log(income) на основе входных признаков, а затем преобразуете log(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.
- Вызовите
- Заполните пропуски, чтобы построить диаграмму рассеяния: предсказанный доход vs. фактический доход на тестовой выборке.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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")