การถดถอยเชิงเส้นด้วย principal components
ตอนนี้ออบเจกต์ newsData มีตัวแปรเพิ่มขึ้นมาอีกหนึ่งตัวคือ logShares ซึ่งแสดงจำนวนครั้งที่บทความข่าวถูกแชร์ อย่างไรก็ตาม การกระจายของข้อมูลนี้จะมีความเบ้สูง จึงใช้ค่าลอการิทึมของจำนวนการแชร์แทน ลองนำสิ่งที่เพิ่งเรียนไปมาประยุกต์เพื่อพยากรณ์ค่า log shares กัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning for Marketing Analytics ใน R
คำแนะนำการฝึกหัด
- สร้างโมเดลเพื่อพยากรณ์ log shares โดยใช้ตัวแปรอื่นทั้งหมด แล้วเก็บผลลัพธ์ไว้ใน
mod1 - สร้าง dataframe ใหม่ชื่อ
dataNewsComponentsที่ประกอบด้วย log shares และค่าบน 6 components แรก โดยpcaNewsคือออบเจกต์ที่เก็บผลลัพธ์ PCA ไว้ - สร้างโมเดลที่สอง (
mod2) เพื่อพยากรณ์ log shares โดยใช้เฉพาะ 6 components นั้น - เปรียบเทียบค่า adjusted R squared ของทั้งสองโมเดล ค่าเปลี่ยนแปลงไปอย่างไรเมื่อใช้เฉพาะ principal components และโมเดลที่ได้มีความแม่นยำเพียงใด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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(___)$___