Линейная регрессия на главных компонентах
Объект newsData теперь содержит дополнительную переменную: logShares. Количество публикаций показывает, как часто статьи распространялись пользователями. Однако это распределение сильно скошено, поэтому мы будем работать с логарифмом числа публикаций. Примените полученные знания и предскажите значения логарифма числа публикаций!
Это упражнение является частью курса
Машинное обучение для маркетинговой аналитики на R
Инструкции к упражнению
- Постройте модель для предсказания логарифма числа публикаций по всем остальным переменным. Сохраните её как
mod1. - Создайте новый датафрейм
dataNewsComponents, содержащий логарифм числа публикаций и значения на первых 6 компонентах. ОбъектpcaNewsснова содержит результаты PCA. - Постройте вторую модель (
mod2), которая предсказывает логарифм числа публикаций только по 6 компонентам. - Сравните скорректированный коэффициент детерминации R² обеих моделей. Как изменилось его значение при использовании только главных компонент? Насколько хороша ваша модель?
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Predict log shares with all original variables
mod1 <- lm(logShares ~ ., data = ___)
# Create dataframe with log shares and first 6 components
dataNewsComponents <- cbind(logShares = newsData[, "logShares"],
___$x[, 1:__]) %>%
as.data.frame()
# Predict log shares with first six components
mod2 <- lm(___ ~ ., data = ___)
# Print adjusted R squared for both models
___(mod1)$adj.r.squared
summary(___)$___