วิธีการทดสอบ Homoscedasticity ใน R [2 วิธีง่ายๆ]

By Leonard Cucosth
สถิติR Programmingวิธีวิจัย

วิธีการทดสอบ Homoscedasticity ใน R เป็นสิ่งสำคัญสำหรับการตรวจสอบความถูกต้องของข้อสมมติฐาน Linear Regression คู่มือนี้ครอบคลุม 2 วิธี: แนวทางการมองเห็นโดยใช้ Residual Plots และ Breusch-Pagan Test ใน R - การทดสอบทางสถิติสำหรับการตรวจจับ Heteroscedasticity

Homoscedasticity (Variance คงที่ของ Residuals) เป็นข้อสมมติฐานสำคัญใน Linear Regression เมื่อข้อสมมติฐานนี้ถูกละเมิด Standard Errors, Confidence Intervals และการทดสอบสมมติฐานของโมเดลของคุณจะไม่น่าเชื่อถือ

คุณจะได้เรียนรู้วิธีการตรวจสอบ Homoscedasticity ใน R โดยใช้ชุดข้อมูล mtcars แม้ว่าคุณสามารถปฏิบัติตามด้วยข้อมูลของคุณเองได้ ทั้งวิธีการมองเห็นและ Breusch-Pagan Test จะช่วยให้คุณพิจารณาว่าโมเดล Regression ของคุณตรงตามข้อสมมติฐาน Homoscedasticity หรือไม่

ทดสอบ Homoscedasticity ใน R ด้วยวิธีการมองเห็น (Visual Method)

ชุดข้อมูล mtcars มีอยู่แล้วใน R ประกอบด้วยข้อมูลของรถยนต์ 32 คันจากนิตยสาร Motor Trend ฉบับปี 1974 รวม 11 ตัวแปร เช่น ไมล์ต่อแกลลอน (mpg), จำนวนกระบอกสูบ (cyl) และแรงม้า (hp)

มาสร้างโมเดล Linear Regression แบบง่ายโดยใช้ mpg (ไมล์ต่อแกลลอน) เป็นตัวแปรตามและ hp (แรงม้า) เป็นตัวแปรพยากรณ์ ใช้ฟังก์ชัน lm():

# Use the mtcars dataset
data(mtcars)

# Create a linear model
model <- lm(mpg ~ hp, data = mtcars)

ใช้แพ็คเกจ ggplot2 เพื่อสร้าง Scatter Plot ของ Residuals เทียบกับ Fitted Values ติดตั้งและโหลดแพ็คเกจ:

# Install ggplot2 if not already installed
if (!requireNamespace("ggplot2", quietly = TRUE)) {
 install.packages("ggplot2")
}

# Load ggplot2 package
library(ggplot2)

สร้าง Scatter Plot:

# Check for homoscedasticity using residuals vs fitted values plot
residuals_plot <- ggplot(data = mtcars, aes(x = fitted(model), y = resid(model))) +
 geom_point() +
 geom_smooth(method = "loess", se = FALSE, linetype = "dashed") +
 labs(x = "Fitted Values", y = "Residuals") +
 ggtitle("Residuals vs Fitted Values") +
 theme_minimal()

print(residuals_plot)

กราฟ Residual แสดง Residuals เทียบกับ Fitted Values ที่มีรูปแบบการกระจายแบบสุ่มสำหรับการทดสอบ Homoscedasticity ใน R ด้วยวิธีการมองเห็น กราฟ Residuals vs Fitted Values สำหรับการประเมิน Homoscedasticity แบบมองเห็นใน R

การแปลผล: ในสถานการณ์ที่เป็น Homoscedastic, Residuals ควรแสดงการกระจายที่ค่อนข้างคงที่ในทุกค่า Fitted Values รูปแบบหรือรูปทรงกรวย (Funnel Shape) บ่งชี้ Heteroscedasticity (Variance ไม่คงที่)

ทดสอบ Homoscedasticity ใน R ด้วย Breusch-Pagan Test

Breusch-Pagan Test เป็นวิธีการทางสถิติที่ตรวจสอบความสัมพันธ์ระหว่าง Squared Residuals และ Fitted Values โดยให้การทดสอบสมมติฐานอย่างเป็นทางการสำหรับ Homoscedasticity

ติดตั้งและโหลดแพ็คเกจ car เพื่อทำการทดสอบ:

# Install car package if not already installed
if (!requireNamespace("car", quietly = TRUE)) {
 install.packages("car")
}

# Load car package
library(car)

ทำ Breusch-Pagan Test โดยใช้ฟังก์ชัน ncvTest():

# Perform Breusch-Pagan test to check for homoscedasticity
bp_test <- ncvTest(model)
print(bp_test)

การแปลผลลัพธ์ Breusch-Pagan Test

ผลลัพธ์ประกอบด้วยค่าสำคัญ 3 ค่า:

  • Chisquare: สถิติทดสอบ (เช่น 0.0477)
  • Df (Degrees of Freedom): จำนวน Parameters ที่ทดสอบ (โดยทั่วไป 1)
  • p-value: ความน่าจะเป็นภายใต้สมมติฐานว่าง (Null Hypothesis) ของ Variance คงที่ (เช่น 0.827)

การแปลผล:

  • p-value > 0.05: ไม่ปฏิเสธ Null Hypothesis → สรุปว่าข้อมูลเป็น Homoscedastic (Variance คงที่)
  • p-value ≤ 0.05: ปฏิเสธ Null Hypothesis → สรุปว่าข้อมูลเป็น Heteroscedastic (Variance ไม่คงที่)

ตัวอย่างผลลัพธ์: Chisquare = 0.0477, Df = 1, p = 0.827

เนื่องจาก p-value (0.827) > 0.05 เราไม่ปฏิเสธ Null Hypothesis และสรุปว่า Homoscedasticity ปรากฏอยู่ใน Residuals ของโมเดล

การอ่านค่า / การแปลผล

เมื่อทดสอบ Homoscedasticity ใน R การแปลผลที่ครอบคลุมควรพิจารณาทั้งสองวิธี:

การแปลผลวิธีการมองเห็น (Visual Method):

  • หาก Residual Plot แสดงการกระจายแบบสุ่ม (Random Scatter) โดยไม่มีรูปแบบ = Homoscedastic (ผ่านข้อสมมติฐาน)
  • หากเห็นรูปทรงกรวย (Funnel/Cone Shape) หรือรูปแบบที่เห็นได้ชัด = Heteroscedastic (ไม่ผ่านข้อสมมติฐาน)
  • การกระจายที่คงที่หมายถึง Variance ของ Residuals ไม่เปลี่ยนแปลงตามค่า Fitted Values

การแปลผล Breusch-Pagan Test:

  • p-value > 0.05: ยอมรับข้อสมมติฐานว่าง = ข้อมูลเป็น Homoscedastic (ปลอดภัยที่จะใช้โมเดล)
  • p-value ≤ 0.05: ปฏิเสธข้อสมมติฐานว่าง = ข้อมูลเป็น Heteroscedastic (ต้องแก้ไข)
  • ค่า Chi-square ที่สูงและ p-value ที่ต่ำบ่งชี้ Heteroscedasticity ที่รุนแรงมากขึ้น

แนวทางปฏิบัติที่แนะนำ:

  • ใช้ทั้งสองวิธีร่วมกันเพื่อความมั่นใจสูงสุด - Visual Method ให้ความเข้าใจเชิงคุณภาพ ในขณะที่ Breusch-Pagan ให้การยืนยันเชิงปริมาณ
  • หากพบ Heteroscedasticity ไม่รุนแรง (p-value ใกล้ 0.05) อาจดำเนินการต่อโดยระมัดระวังในการแปลผล
  • หากพบ Heteroscedasticity รุนแรง (p-value < 0.01) ควรพิจารณาการแปลงข้อมูล (Transformation), Weighted Regression หรือ Robust Standard Errors
  • การละเมิดข้อสมมติฐาน Homoscedasticity อย่างรุนแรงนำไปสู่ Standard Errors ที่ไม่น่าเชื่อถือ ส่งผลต่อ Confidence Intervals และการทดสอบสมมติฐาน

คำถามที่พบบ่อย (FAQs)

ใช้สองวิธีในการทดสอบ Homoscedasticity ใน R: (1) Visual Method - สร้างกราฟ Residuals vs Fitted Values โดยใช้ ggplot2 และมองหา Variance คงที่ (การกระจายแบบสุ่ม) หรือ (2) Breusch-Pagan Test - ใช้ ncvTest() จากแพ็คเกจ car หาก p-value > 0.05, Homoscedasticity ปรากฏอยู่ Visual Method รวดเร็วแต่เป็นเรื่องส่วนตัว Breusch-Pagan ให้การทดสอบทางสถิติอย่างเป็นทางการ
Breusch-Pagan Test เป็นการทดสอบทางสถิติที่ตรวจสอบ Heteroscedasticity (Variance ไม่คงที่) ใน Residuals ของ Regression ใน R ใช้ ncvTest() จากแพ็คเกจ car กับโมเดล Regression ของคุณ การทดสอบนี้ตรวจสอบความสัมพันธ์ระหว่าง Squared Residuals และ Fitted Values p-value > 0.05 บ่งชี้ Homoscedasticity (Variance คงที่) ในขณะที่ p ≤ 0.05 บ่งชี้ Heteroscedasticity
สร้างกราฟ Residuals vs Fitted Values: (1) Fit โมเดลของคุณโดยใช้ lm(), (2) ใช้ ggplot2 กับ aes(x = fitted(model), y = resid(model)), (3) เพิ่ม geom_point() และ geom_smooth() มองหาการกระจายแบบสุ่มโดยไม่มีรูปแบบ - นี่บ่งชี้ Homoscedasticity รูปทรงกรวยหรือรูปแบบบ่งชี้ Heteroscedasticity (Variance ไม่คงที่)
Homoscedasticity หมายถึง Variance ของ Residuals คงที่ในทุกระดับของค่าที่พยากรณ์ในโมเดล Regression ของคุณ ใน R Regression Analysis ข้อสมมติฐานนี้ทำให้มั่นใจว่า Standard Errors, Confidence Intervals และการทดสอบสมมติฐานของคุณถูกต้อง เมื่อถูกละเมิด (Heteroscedasticity) การอนุมานทางสถิติของโมเดลของคุณจะไม่น่าเชื่อถือแม้ว่า Coefficients จะยังคงไม่เอนเอียง (Unbiased)
ผลลัพธ์ของ ncvTest() แสดงค่าสามค่า: Chisquare (สถิติทดสอบ), Df (Degrees of Freedom) และ p-value มุ่งเน้นที่ p-value: หาก p > 0.05 สรุปว่าข้อมูลเป็น Homoscedastic (Variance คงที่) หาก p ≤ 0.05 คุณมี Heteroscedasticity (Variance ไม่คงที่) ตัวอย่าง p = 0.827 หมายความว่า Homoscedasticity ปรากฏอยู่และข้อสมมติฐาน Regression ของคุณได้รับการตอบสนอง
คุณต้องการแพ็คเกจ R สองแพ็คเกจ: (1) ggplot2 สำหรับ Visual Residual Plots - ติดตั้งด้วย install.packages('ggplot2') และ (2) แพ็คเกจ car สำหรับ Breusch-Pagan Test - ติดตั้งด้วย install.packages('car') โหลดด้วย library(ggplot2) และ library(car) ฟังก์ชัน ncvTest() ของแพ็คเกจ car ทำการทดสอบ Homoscedasticity อย่างเป็นทางการ

สรุป

ตอนนี้คุณทราบแล้วว่าวิธีการทดสอบ Homoscedasticity ใน R โดยใช้สองวิธี: Visual Residual Plots และ Breusch-Pagan Test ทั้งสองแนวทางช่วยตรวจสอบข้อสมมติฐาน Homoscedasticity ใน Linear Regression เพื่อให้มั่นใจว่าค่าประมาณโมเดลและการทดสอบสมมติฐานน่าเชื่อถือ

ประเด็นสำคัญ:

  • Visual Method: ตรวจสอบการกระจายที่คงที่ใน Residual Plots
  • Breusch-Pagan Test: การทดสอบทางสถิติอย่างเป็นทางการ (p > 0.05 = Homoscedastic)
  • การละเมิด Homoscedasticity นำไปสู่ Standard Errors และ Confidence Intervals ที่ไม่น่าเชื่อถือ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อสมมติฐาน Regression ดูคู่มือของเราเกี่ยวกับ Homoscedasticity คืออะไรในสถิติ หรือเรียนรู้เกี่ยวกับ Linearity ในสถิติ ซึ่งเป็นข้อสมมติฐานที่สำคัญอีกประการหนึ่งใน Regression Analysis