การทดสอบ 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 ทีละขั้นตอนได้ ที่นี่