Linjär regression med principalkomponenter
Objektet newsData innehåller nu en extra variabel: logShares. Antalet delningar anger hur många gånger nyhetsartiklarna har delats. Den fördelningen är dock kraftigt skev, så du kommer att arbeta med logaritmen av antalet delningar. Tillämpa det du just lärt dig och förutsäg log-delningarna!
Den här övningen är en del av kursen
Maskininlärning för marknadsanalys i R
Övningsinstruktioner
- Beräkna en modell för att förutsäga log-delningarna med alla övriga variabler. Spara den som
mod1. - Skapa en ny dataram
dataNewsComponentsmed log-delningarna och värdena för de första 6 komponenterna. ObjektetpcaNewsinnehåller PCA-resultaten. - Beräkna en andra modell (
mod2) som förutsäger log-delningarna med enbart de 6 komponenterna. - Jämför det justerade R² för modellerna. Hur förändrades värdet när du bara använde principalkomponenterna? Hur bra är din modell?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(___)$___