НачатьНачать бесплатно

Моделирование логарифмически преобразованного денежного показателя

В этом упражнении вы потренируетесь строить модель на основе логарифмически преобразованного денежного показателя, а затем переводить предсказания «логарифма дохода» обратно в денежные единицы. Загруженные данные содержат сведения о доходах участников в 2005 году (Income2005), а также результаты нескольких тестов на профессиональную пригодность, пройденных ими в 1981 году:

  • Arith
  • Word
  • Parag
  • Math
  • AFQT (процентиль по Квалификационному тесту Вооружённых сил)

Данные уже разделены на обучающую и тестовую выборки (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")
Редактировать и запускать код