วิธีการแก้ไข bonferroni ใน r


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

หากค่า p-value โดยรวมของตาราง ANOVA ต่ำกว่าระดับนัยสำคัญที่กำหนด เราก็มีหลักฐานเพียงพอที่จะบอกว่าค่าเฉลี่ยของกลุ่มอย่างน้อยหนึ่งรายการแตกต่างจากค่าเฉลี่ยอื่นๆ

อย่างไรก็ตาม นี่ไม่ได้บอกเราว่ากลุ่ม ใด มีความแตกต่างกัน นี่บอกเราว่าค่าเฉลี่ยกลุ่มไม่เท่ากันทั้งหมด

หากต้องการทราบว่ากลุ่มใดมีความแตกต่างกัน เราต้องทำการทดสอบทีแบบคู่ระหว่างแต่ละกลุ่ม พร้อมกับควบคุม อัตราข้อผิดพลาดตามครอบครัว

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

บทช่วยสอนนี้จะอธิบายวิธีการแก้ไข Bonferroni ใน R

ตัวอย่าง: การแก้ไข Bonferroni ใน R

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

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

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

ขั้นตอนที่ 1: สร้างชุดข้อมูล

รหัสต่อไปนี้แสดงวิธีสร้างชุดข้อมูลที่มีผลการสอบของนักเรียนทั้ง 30 คน:

 #create data frame
data <- data.frame(technique = rep (c("tech1", "tech2", "tech3"), each = 10 ),
                   score = c(76, 77, 77, 81, 82, 82, 83, 84, 85, 89,
                             81, 82, 83, 83, 83, 84, 87, 90, 92, 93,
                             77, 78, 79, 88, 89, 90, 91, 95, 95, 98))

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

  technical score
1 tech1 76
2 tech1 77
3 tech1 77
4 tech1 81
5 tech1 82
6 tech1 82

ขั้นตอนที่ 2: ดูผลการสอบของแต่ละกลุ่ม

รหัสต่อไปนี้แสดงวิธีสร้าง boxplots เพื่อให้เห็นภาพการกระจายผลการสอบสำหรับแต่ละกลุ่ม:

 boxplot(score ~ technique,
        data = data,
        main = "Exam Scores by Studying Technique",
        xlab = "Studying Technique",
        ylab = "Exam Scores",
        col = "steelblue",
        border = "black")

การแก้ไข Bonferroni ใน R

ขั้นตอนที่ 3: ดำเนินการวิเคราะห์ความแปรปรวนแบบทางเดียว

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

 #fit the one-way ANOVA model
model <- aov(score ~ technique, data = data)

#view model output
summary(model)

            Df Sum Sq Mean Sq F value Pr(>F)  
technical 2 211.5 105.73 3.415 0.0476 *
Residuals 27 836.0 30.96                 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

เนื่องจากค่า p-value โดยรวม ( 0.0476 ) น้อยกว่า 0.05 แสดงว่าแต่ละกลุ่มมีคะแนนสอบเฉลี่ยไม่เท่ากัน

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

ขั้นตอนที่ 4: ทำการทดสอบทีแบบคู่

ในการดำเนินการทดสอบค่าทีแบบคู่ด้วยการแก้ไข Bonferroni ใน R เราสามารถใช้ฟังก์ชัน pairwise.t.test() ซึ่งใช้ไวยากรณ์ต่อไปนี้:

pairwise.t.test(x, g, p.adjust.method=”bonferroni”)

ทอง:

  • x: เวกเตอร์ตัวเลขของค่าตอบสนอง
  • g: เวกเตอร์ที่ระบุชื่อกลุ่ม (เช่น เทคนิคการศึกษา)

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้สำหรับตัวอย่างของเรา:

 #perform pairwise t-tests with Bonferroni's correction
pairwise.t.test(data$score, data$technique, p.adjust.method=" bonferroni ")

	Pairwise comparisons using t tests with pooled SD 

data: data$score and data$technique 

      tech1 tech2
tech2 0.309 -    
tech3 0.048 1.000

P value adjustment method: bonferroni

วิธีการตีความผลลัพธ์มีดังนี้:

  • ค่า p ที่ปรับแล้วสำหรับผลต่างเฉลี่ยของคะแนนสอบระหว่างเทคนิคที่ 1 และเทคนิคที่ 2 คือ 0.309
  • ค่า p ที่ปรับแล้วสำหรับผลต่างเฉลี่ยของคะแนนสอบระหว่างเทคนิคที่ 1 และเทคนิคที่ 3 คือ 0.048
  • ค่า p ที่ปรับแล้วสำหรับผลต่างเฉลี่ยของคะแนนสอบระหว่างเทคนิคที่ 2 และเทคนิคที่ 3 คือ 1,000

จากผลลัพธ์ เราจะเห็นว่าความแตกต่างที่มีนัยสำคัญเพียงอย่างเดียวคือระหว่างเทคนิคที่ 1 และเทคนิคที่ 3

แหล่งข้อมูลเพิ่มเติม

ข้อมูลเบื้องต้นเกี่ยวกับการวิเคราะห์ความแปรปรวนแบบทางเดียว
วิธีดำเนินการวิเคราะห์ความแปรปรวนแบบทางเดียวใน R
วิธีทำการทดสอบ Tukey ใน R
วิธีทำการทดสอบ Dunnett ใน R

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

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