วิธีทำการทดสอบ scheffe ใน r
การวิเคราะห์ความแปรปรวนแบบทางเดียว ใช้เพื่อพิจารณาว่ามีความแตกต่างที่มีนัยสำคัญทางสถิติระหว่างค่าเฉลี่ยของกลุ่มอิสระสามกลุ่มขึ้นไปหรือไม่
หากค่า p-value โดยรวมของตาราง ANOVA ต่ำกว่าระดับนัยสำคัญที่กำหนด เราก็มีหลักฐานเพียงพอที่จะบอกว่าค่าเฉลี่ยของกลุ่มอย่างน้อยหนึ่งรายการแตกต่างจากค่าเฉลี่ยอื่นๆ
อย่างไรก็ตาม นี่ไม่ได้บอกเราว่ากลุ่ม ใด มีความแตกต่างกัน นี่บอกเราว่าค่าเฉลี่ยกลุ่มไม่เท่ากันทั้งหมด
หากต้องการทราบว่ากลุ่มใดมีความแตกต่างกัน เราต้องทำการ ทดสอบหลังการทดสอบ ที่สามารถควบคุมอัตรา ข้อผิดพลาดต่อตระกูล ได้
หนึ่งในการทดสอบหลังการทดสอบที่ใช้กันมากที่สุดคือการทดสอบ Scheffe
บทช่วยสอนนี้จะอธิบายวิธีดำเนินการทดสอบ Scheffe ใน R
ตัวอย่าง: การทดสอบ Scheffe ใน R
สมมติว่าครูต้องการทราบว่าเทคนิคการเรียนสามแบบที่แตกต่างกันนำไปสู่คะแนนสอบที่แตกต่างกันของนักเรียนหรือไม่ เพื่อทดสอบสิ่งนี้ เธอสุ่มมอบหมายให้นักเรียน 10 คนใช้เทคนิคการเรียนแต่ละเทคนิคและบันทึกผลการสอบ
เราสามารถใช้ขั้นตอนต่อไปนี้ใน R เพื่อให้พอดีกับการวิเคราะห์ความแปรปรวนแบบทางเดียวเพื่อทดสอบความแตกต่างของคะแนนสอบเฉลี่ยระหว่างทั้งสามกลุ่ม และใช้การทดสอบ Scheffe เพื่อระบุอย่างชัดเจนว่ากลุ่มใดที่แตกต่างกัน
ขั้นตอนที่ 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")
ขั้นตอนที่ 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 แสดงว่าแต่ละกลุ่มมีคะแนนสอบเฉลี่ยไม่เท่ากัน
ต่อไป เราจะทำการทดสอบ Scheffe เพื่อพิจารณาว่ากลุ่มใดแตกต่างกัน
ขั้นตอนที่ 4: ทำการทดสอบ Scheffe
ในการทำการทดสอบ Scheffe เราจะใช้ฟังก์ชัน ScheffeTest() จากแพ็คเกจ DescTools
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้สำหรับตัวอย่างของเรา:
#load DescTools package library(DescTools) #perform Scheffe's test ScheffeTest(model) Posthoc multiple comparisons of means: Scheffe Test 95% family-wise confidence level $technical diff lwr.ci upr.ci pval tech2-tech1 4.2 -2.24527202 10.645272 0.2582 tech3-tech1 6.4 -0.04527202 12.845272 0.0519 . tech3-tech2 2.2 -4.24527202 8.645272 0.6803 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
วิธีการตีความผลลัพธ์มีดังนี้:
- ผลต่างโดยเฉลี่ยของผลการสอบระหว่างเทคนิค 2 และเทคนิค 1 คือ 4.2 ค่า p ที่สอดคล้องกันสำหรับผลต่างเฉลี่ยคือ 0.2582
- ผลต่างโดยเฉลี่ยของผลการสอบระหว่างเทคนิค 3 และเทคนิค 1 คือ 6.4 ค่า p ที่สอดคล้องกันสำหรับผลต่างเฉลี่ยคือ 0.0519
- ผลต่างโดยเฉลี่ยของผลการสอบระหว่างเทคนิค 3 และเทคนิค 2 คือ 2.2 ค่า p ที่สอดคล้องกันสำหรับผลต่างเฉลี่ยคือ 0.6803
ขึ้นอยู่กับระดับนัยสำคัญที่เราตัดสินใจใช้ เพียงสองกลุ่มที่ปรากฏแตกต่างกันอย่างมีนัยสำคัญทางสถิติคือเทคนิคที่ 3 และเทคนิคที่ 1
แหล่งข้อมูลเพิ่มเติม
วิธีดำเนินการวิเคราะห์ความแปรปรวนแบบทางเดียวใน R
วิธีทำการทดสอบ Tukey ใน R
วิธีการแก้ไข Bonferroni ใน R