R - การวิเคราะห์ความแปรปรวนร่วม

เราใช้การวิเคราะห์การถดถอยเพื่อสร้างแบบจำลองที่อธิบายผลของการเปลี่ยนแปลงในตัวแปรทำนายที่มีต่อตัวแปรตอบสนอง บางครั้งถ้าเรามีตัวแปรจัดหมวดหมู่ที่มีค่าเช่น Yes / No หรือ Male / Female เป็นต้นการวิเคราะห์การถดถอยอย่างง่ายจะให้ผลลัพธ์หลายค่าสำหรับแต่ละค่าของตัวแปรจัดหมวดหมู่ ในสถานการณ์ดังกล่าวเราสามารถศึกษาผลของตัวแปรจัดหมวดหมู่โดยใช้มันร่วมกับตัวแปรทำนายและเปรียบเทียบเส้นการถดถอยสำหรับแต่ละระดับของตัวแปรเชิงหมวดหมู่ การวิเคราะห์ดังกล่าวเรียกว่าAnalysis of Covariance เรียกอีกอย่างว่า ANCOVA.

ตัวอย่าง

พิจารณาชุดข้อมูล R ที่สร้างขึ้นใน mtcars ในนั้นเราสังเกตว่าฟิลด์ "am" แสดงถึงประเภทของเกียร์ (อัตโนมัติหรือด้วยตนเอง) เป็นตัวแปรประเภทที่มีค่า 0 และ 1 ค่าไมล์ต่อแกลลอน (mpg) ของรถยนต์ยังขึ้นอยู่กับค่านี้ได้นอกเหนือจากค่ากำลังม้า ("แรงม้า")

เราศึกษาผลของค่า "am" ต่อการถดถอยระหว่าง "mpg" และ "hp" ทำได้โดยใช้ไฟล์aov() ตามด้วย anova() เพื่อเปรียบเทียบการถดถอยหลาย ๆ

ป้อนข้อมูล

สร้างกรอบข้อมูลที่มีฟิลด์ "mpg" "hp" และ "am" จากชุดข้อมูล mtcars ในที่นี้เราใช้ "mpg" เป็นตัวแปรตอบสนอง "hp" เป็นตัวแปรทำนายและ "am" เป็นตัวแปรจัดหมวดหมู่

input <- mtcars[,c("am","mpg","hp")]
print(head(input))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

am   mpg   hp
Mazda RX4          1    21.0  110
Mazda RX4 Wag      1    21.0  110
Datsun 710         1    22.8   93
Hornet 4 Drive     0    21.4  110
Hornet Sportabout  0    18.7  175
Valiant            0    18.1  105

การวิเคราะห์ ANCOVA

เราสร้างแบบจำลองการถดถอยโดยใช้ "hp" เป็นตัวแปรทำนายและ "mpg" เป็นตัวแปรตอบสนองโดยคำนึงถึงการโต้ตอบระหว่าง "am" และ "hp"

แบบจำลองที่มีปฏิสัมพันธ์ระหว่างตัวแปรเชิงหมวดหมู่และตัวแปรทำนาย

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4  77.391 1.50e-09 ***
am           1  202.2   202.2  23.072 4.75e-05 ***
hp:am        1    0.0     0.0   0.001    0.981    
Residuals   28  245.4     8.8                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ผลลัพธ์นี้แสดงให้เห็นว่าทั้งกำลังม้าและประเภทเกียร์มีผลอย่างมีนัยสำคัญต่อไมล์ต่อแกลลอนเนื่องจากค่า p ในทั้งสองกรณีมีค่าน้อยกว่า 0.05 แต่ปฏิสัมพันธ์ระหว่างสองตัวแปรนี้ไม่มีนัยสำคัญเนื่องจาก p-value มากกว่า 0.05

แบบจำลองที่ไม่มีปฏิสัมพันธ์ระหว่างตัวแปรเชิงหมวดหมู่และตัวแปรทำนาย

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp+am,data = input)
print(summary(result))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Df  Sum Sq  Mean Sq   F value   Pr(>F)    
hp           1  678.4   678.4   80.15 7.63e-10 ***
am           1  202.2   202.2   23.89 3.46e-05 ***
Residuals   29  245.4     8.5                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ผลลัพธ์นี้แสดงให้เห็นว่าทั้งกำลังม้าและประเภทเกียร์มีผลอย่างมีนัยสำคัญต่อไมล์ต่อแกลลอนเนื่องจากค่า p ในทั้งสองกรณีมีค่าน้อยกว่า 0.05

เปรียบเทียบสองรุ่น

ตอนนี้เราสามารถเปรียบเทียบทั้งสองแบบเพื่อสรุปว่าปฏิสัมพันธ์ของตัวแปรมีนัยสำคัญอย่างแท้จริงหรือไม่ สำหรับสิ่งนี้เราใช้ไฟล์anova() ฟังก์ชัน

# Get the dataset.
input <- mtcars

# Create the regression models.
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)

# Compare the two models.
print(anova(result1,result2))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Model 1: mpg ~ hp * am
Model 2: mpg ~ hp + am
  Res.Df    RSS Df  Sum of Sq     F Pr(>F)
1     28 245.43                           
2     29 245.44 -1 -0.0052515 6e-04 0.9806

เนื่องจากค่า p มีค่ามากกว่า 0.05 เราจึงสรุปได้ว่าปฏิสัมพันธ์ระหว่างพลังม้าและประเภทการส่งผ่านไม่มีนัยสำคัญ ดังนั้นระยะทางต่อแกลลอนจะขึ้นอยู่กับกำลังม้าของรถทั้งในโหมดเกียร์อัตโนมัติและเกียร์ธรรมดา