Перетворення вхідних даних: «клюшка»
У цій вправі ви побудуєте модель для прогнозування ціни за
мірою розміру будинку (площа). Набір даних houseprice уже завантажено; він містить стовпці:
price: ціна будинку в одиницях $1000size: площа
Точкова діаграма показує, що залежність помітно нелінійна: своєрідна «клюшка», де ціна майже не змінюється для менших будинків, але різко зростає зі збільшенням розміру. Квадратичні та кубічні моделі часто добре описують такі „клюшкоподібні" залежності. Зверніть увагу, що може не бути «фізичної» причини, чому price пов'язана з квадратом size; квадратична форма — це просто замкнена апроксимація спостережуваної залежності.

Ви навчите модель, що прогнозує ціну як функцію квадрата площі, і переглянете її відповідність тренувальним даним.
Оскільки ^ також використовується для задання взаємодій, скористайтеся функцією I() (docs), щоб трактувати вираз x^2 „як є": тобто як квадрат x, а не як взаємодію x із самою собою.
exampleFormula = y ~ I(x^2)
Ця вправа є частиною курсу
Кероване навчання в R: регресія
Інструкції до вправи
- Запишіть формулу
fmla_sqr, щоб подати ціну як функцію квадрата площі. Надрукуйте її. - Навчіть модель
model_sqrна даних, використовуючиfmla_sqr. - Для порівняння навчіть лінійну модель
model_linна даних, використовуючи формулуprice ~ size. - Заповніть пропуски, щоб
- отримати передбачення на тренувальних даних з обох моделей,
- згорнути передбачення в один стовпець
predза допомогоюpivot_longer(), - графічно порівняти передбачення обох моделей із даними. Яка з них узгоджується краще?
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# houseprice is available
summary(houseprice)
# Create the formula for price as a function of squared size
(fmla_sqr <- ___)
# Fit a model of price as a function of squared size (use fmla_sqr)
model_sqr <- ___
# Fit a model of price as a linear function of size
model_lin <- ___
# Make predictions and compare
houseprice %>%
mutate(pred_lin = ___(___), # predictions from linear model
pred_sqr = ___(___)) %>% # predictions from quadratic model
pivot_longer(cols = c('pred_lin', 'pred_sqr'), names_to = 'modeltype', values_to = 'pred') %>% # pivot the predictions
ggplot(aes(x = size)) +
geom_point(aes(y = ___)) + # actual prices
geom_line(aes(y = ___, color = modeltype)) + # the predictions
scale_color_brewer(palette = "Dark2")