การหลีกเลี่ยง Multicollinearity
กลับมาที่ชุดข้อมูลการขาย salesData ซึ่งโหลดไว้ในพื้นที่ทำงานแล้ว นอกจากนี้ยังโหลดแพ็กเกจ rms ไว้ด้วย
มาสร้างการถดถอยเชิงเส้นพหุคูณกัน โดยจะใช้ตัวแปรทั้งหมดที่มีในชุดข้อมูล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning for Marketing Analytics ใน R
คำแนะนำการฝึกหัด
- สร้างโมเดลเต็มรูปแบบชื่อ
salesModel1โดยใช้ตัวแปรทั้งหมดยกเว้นidเพื่ออธิบายยอดขายในเดือนนี้ โดยกรอกชื่อตัวแปรที่ถูกต้องลงในโครงสร้างตัวอย่างต่อไปนี้:response ~ . - excluded_variableซึ่งหมายความว่า "responseถูกอธิบายด้วยตัวแปรทั้งหมดยกเว้นexcluded_variable" - ประมาณค่า Variance Inflation Factor โดยใช้ฟังก์ชัน
vif()จากแพ็กเกจrms - นอกจากการตัด
idออกแล้ว ให้ตัดตัวแปรpreferredBrandและnBrandsออกด้วยเพื่อหลีกเลี่ยง multicollinearity โดยเติม-นำหน้าตัวแปรแต่ละตัว แล้วบันทึกโมเดลในออบเจกต์ชื่อsalesModel2 - ประมาณค่า Variance Inflation Factor ของโมเดลใหม่อีกครั้ง ผลลัพธ์ที่ได้เป็นที่ยอมรับได้แล้วหรือไม่?
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Estimating the full model
salesModel1 <- lm(salesThisMon ~ . - ___,
data = salesData)
# Checking variance inflation factors
vif(___)
# Estimating new model by removing information on brand
salesModel2 <- lm(salesThisMon ~ . - ___,
data = ___)
# Checking variance inflation factors
___