Lineaire regressie met principale componenten
Het object newsData bevat nu een extra variabele: logShares. Het aantal shares geeft aan hoe vaak de nieuwsartikelen zijn gedeeld. Deze verdeling is echter sterk scheef, dus je werkt met de logaritme van het aantal shares. Pas toe wat je net hebt geleerd en voorspel de log-shares!
Deze oefening maakt deel uit van de cursus
Machine Learning for Marketing Analytics in R
Oefeninstructies
- Schat een model om de log-shares te voorspellen met alle andere variabelen. Sla dit op als
mod1. - Maak een nieuw dataframe
dataNewsComponentsmet de log-shares en de waarden op de eerste 6 componenten. Het objectpcaNewsbevat opnieuw de PCA-resultaten. - Schat een tweede model (
mod2) dat de log-shares voorspelt met alleen de 6 componenten. - Vergelijk de adjusted R squared van de modellen. Hoe veranderde de waarde door alleen de principale componenten te gebruiken? Hoe goed is je model?
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(___)$___