การทดสอบ brown–forsythe ใน r: ตัวอย่างทีละขั้นตอน


การวิเคราะห์ความแปรปรวนแบบทางเดียว ใช้เพื่อพิจารณาว่ามีความแตกต่างที่มีนัยสำคัญระหว่างค่าเฉลี่ยของกลุ่มอิสระสามกลุ่มขึ้นไปหรือไม่

ข้อสันนิษฐาน ประการหนึ่งของการวิเคราะห์ความแปรปรวนทางเดียวก็คือความแปรปรวนของประชากรที่ใช้ สุ่มตัวอย่าง เท่ากัน

วิธีทดสอบที่พบบ่อยที่สุดวิธีหนึ่งคือการใช้ การทดสอบ Brown-Forsythe ซึ่งเป็นการทดสอบทางสถิติที่ใช้ สมมติฐาน ต่อไปนี้:

  • H 0 : ความแปรปรวนระหว่างประชากรเท่ากัน
  • HA : ความแตกต่างระหว่างประชากรไม่เท่ากัน

หาก ค่า p ของการทดสอบต่ำกว่าระดับนัยสำคัญที่กำหนด (เช่น α = 0.05) เราจะปฏิเสธสมมติฐานว่างและสรุปว่าความแปรปรวนไม่เท่ากันระหว่างประชากรที่แตกต่างกัน

บทช่วยสอนนี้ให้ตัวอย่างทีละขั้นตอนของวิธีดำเนินการทดสอบ Brown-Forsythe ใน R

ขั้นตอนที่ 1: ป้อนข้อมูล

สมมติว่าเราต้องการทราบว่าโปรแกรมการออกกำลังกายที่แตกต่างกันสามโปรแกรมนำไปสู่การลดน้ำหนักที่แตกต่างกันหรือไม่

เพื่อทดสอบสิ่งนี้ เรารับสมัครคน 90 คน และสุ่มมอบหมาย 30 คนเพื่อใช้แต่ละโปรแกรม จากนั้นเราจะวัดการลดน้ำหนักของแต่ละคนหลังจากผ่านไปหนึ่งเดือน

ชุดข้อมูลต่อไปนี้ประกอบด้วยข้อมูลเกี่ยวกับปริมาณน้ำหนักที่สูญเสียไปในแต่ละโปรแกรม:

 #make this example reproducible
set.seed(0)

#create data frame
data <- data.frame(program = as . factor ( rep (c(" A ", " B ", " C "), each = 30)),
                   weight_loss = c( runif (30, 0, 3),
                                   runif (30, 0, 5),
                                   runif (30, 1, 7)))

#view first six rows of data frame
head(data)

# program weight_loss
#1 A 2.6900916
#2 A 0.7965260
#3 A 1.1163717
#4 A 1.7185601
#5 A 2.7246234
#6 A 0.6050458

ขั้นตอนที่ 2: สรุปและแสดงภาพข้อมูล

ก่อนที่จะทำการทดสอบ Brown-Forsythe เราสามารถสร้างแผนภาพกล่องเพื่อแสดงภาพความแปรปรวนในการลดน้ำหนักของแต่ละกลุ่มได้:

 boxplot(weight_loss ~ program, data = data)

นอกจากนี้เรายังสามารถคำนวณความแปรปรวนของการลดน้ำหนักในแต่ละกลุ่มได้อีกด้วย:

 #load dplyr package
library (dplyr)

#calculate variance of weight loss by group
data %>%
group_by (program) %>%
  summarize (var=var(weight_loss))

# A tibble: 3 x 2
  program var
     
1 A 0.819
2 B 1.53 
3 C 2.46

เราจะเห็นได้ว่าความแปรปรวนระหว่างกลุ่มต่างกัน แต่หากต้องการทราบว่าความแตกต่างเหล่านี้มี นัยสำคัญทางสถิติ หรือไม่ เราจึงทำการทดสอบบราวน์-ฟอร์ไซธ์ได้

ขั้นตอนที่ 3: ทำการทดสอบ Brown-Forsythe

ในการทำการทดสอบ Brown-Forsythe ใน R เราสามารถใช้ฟังก์ชัน bf.test() จากแพ็คเกจ onewaytests :

 #load onewaytests package
library (onewaytests)

#perform Brown-Forsythe test
bf.test(weight_loss ~ program, data = data)

  Brown-Forsythe Test (alpha = 0.05) 
-------------------------------------------------- ----------- 
  data: weight_loss and program 

  statistic: 30.83304 
  num df: 2 
  name df: 74.0272 
  p.value: 1.816529e-10 

  Result: Difference is statistically significant. 
-------------------------------------------------- -----------

ค่า p ของการทดสอบจะน้อยกว่า 0.000 และจากผลลัพธ์บ่งชี้ ความแตกต่างในความแปรปรวนระหว่างทั้งสามกลุ่มนั้นมีนัยสำคัญทางสถิติ

ขั้นตอนถัดไป

หากคุณไม่สามารถปฏิเสธสมมติฐานว่างของการทดสอบบราวน์-ฟอร์ไซธ์ได้ คุณสามารถดำเนินการวิเคราะห์ความแปรปรวนทางเดียวกับข้อมูลได้

อย่างไรก็ตาม หากคุณปฏิเสธสมมติฐานว่าง นั่นหมายความว่าสมมติฐานเรื่องความเท่าเทียมกันของความแปรปรวนถูกละเมิด ในกรณีนี้ คุณมีสองตัวเลือก:

1. ทำการวิเคราะห์ความแปรปรวนทางเดียวต่อไป

ปรากฎว่าการวิเคราะห์ความแปรปรวนแบบทางเดียวนั้นแท้จริงแล้วมีความทนทานต่อความแปรปรวนที่ไม่เท่ากัน ตราบใดที่ความแปรปรวนที่ใหญ่ที่สุดไม่เกิน 4 เท่าของความแปรปรวนที่น้อยที่สุด

ในขั้นตอนที่ 2 ของตัวอย่างข้างต้น เราพบว่าความแปรปรวนน้อยที่สุดคือ 0.819 และความแปรปรวนที่ใหญ่ที่สุดคือ 2.46 ดังนั้นอัตราส่วนของความแปรปรวนที่ใหญ่ที่สุดต่อน้อยที่สุดคือ 2.46 / 0.819 = 3.003

เนื่องจากค่านี้น้อยกว่า 4 เราจึงทำการวิเคราะห์ความแปรปรวนแบบทางเดียวได้

2. ทำการทดสอบครัสคัล-วาลลิส

หากอัตราส่วนของความแปรปรวนที่ใหญ่ที่สุดต่อความแปรปรวนน้อยที่สุดมากกว่า 4 เราอาจเลือกที่จะทำการ ทดสอบครัสคาล-วาลลิส แทน นี่ถือเป็นความเทียบเท่าแบบไม่มีพารามิเตอร์ของการวิเคราะห์ความแปรปรวนแบบทางเดียว

คุณสามารถดูตัวอย่างการทดสอบครัสคัล-วาลลิสใน R ทีละขั้นตอนได้ ที่นี่

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *