Anova ของ welch ใน python (ทีละขั้นตอน)


การวิเคราะห์ความแปรปรวนของ Welch เป็นอีกทางเลือกหนึ่งของ การวิเคราะห์ความแปรปรวนแบบทางเดียว ทั่วไป เมื่อไม่เป็นไปตาม สมมติฐานของความเท่าเทียมกันของความแปรปรวน

ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีดำเนินการ ANOVA ของ Welch ใน Python

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

เพื่อตรวจสอบว่าเทคนิคการเรียนสามแบบที่แตกต่างกันนำไปสู่ผลการสอบที่แตกต่างกันหรือไม่ ศาสตราจารย์จะสุ่มให้นักเรียน 10 คนใช้แต่ละเทคนิค (เทคนิค A, B หรือ C) เป็นเวลาหนึ่งสัปดาห์ จากนั้นให้ทดสอบนักเรียนแต่ละคนที่มีความยากเท่ากัน

ผลการสอบของนักเรียนทั้ง 30 คน มีดังต่อไปนี้

 A = [64, 66, 68, 75, 78, 94, 98, 79, 71, 80]
B = [91, 92, 93, 90, 97, 94, 82, 88, 95, 96]
C = [79, 78, 88, 94, 92, 85, 83, 85, 82, 81]

ขั้นตอนที่ 2: การทดสอบความแตกต่างที่เท่ากัน

ต่อไป เราจะทำการ ทดสอบ Bartlett เพื่อพิจารณาว่าความแปรปรวนระหว่างแต่ละกลุ่มเท่ากันหรือไม่

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

เราสามารถใช้โค้ดต่อไปนี้เพื่อทำการทดสอบ Bartlett ใน Python:

 import scipy. stats as stats

#perform Bartlett's test 
stats. bartlett (A, B, C)

BartlettResult(statistic=9.039674395, pvalue=0.010890796567)

ค่า p ( .01089 ) ของการทดสอบของ Bartlett น้อยกว่า α = .05 ซึ่งหมายความว่าเราสามารถปฏิเสธสมมติฐานว่างที่ว่าแต่ละกลุ่มมีความแปรปรวนเท่ากันได้

ดังนั้น สมมติฐานเรื่องความเท่าเทียมกันของความแปรปรวนจึงถูกละเมิด และเราสามารถดำเนินการกับ ANOVA ของ Welch ได้

ขั้นตอนที่ 3: ดำเนินการ ANOVA ของ Welch

ในการดำเนินการ ANOVA ของ Welch ใน Python เราสามารถใช้ฟังก์ชัน welch_anova() จากแพ็คเกจ Penguin

ก่อนอื่นเราต้องติดตั้ง Penguin:

 pip install Penguin

จากนั้นเราสามารถใช้โค้ดต่อไปนี้เพื่อดำเนินการ ANOVA ของ Welch:

 import penguin as pg
import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' score ': [64, 66, 68, 75, 78, 94, 98, 79, 71, 80,
                             91, 92, 93, 90, 97, 94, 82, 88, 95, 96,
                             79, 78, 88, 94, 92, 85, 83, 85, 82, 81],
                   ' group ': np. repeat (['a', 'b', 'c'], repeats = 10 )}) 

#perform Welch's ANOVA
pg. welch_anova (dv=' score ', between=' group ', data=df)

        Source ddof1 ddof2 F p-unc np2
0 group 2 16.651295 9.717185 0.001598 0.399286

ค่า p โดยรวม ( 0.001598 ) ของตาราง ANOVA น้อยกว่า α = 0.05 ซึ่งหมายความว่าเราสามารถปฏิเสธสมมติฐานว่างที่ว่าผลการสอบเท่ากันในเทคนิคการศึกษาทั้งสามวิธี

จากนั้นเราจึงทำการทดสอบหลังการทดสอบของ Games-Howell เพื่อระบุอย่างชัดเจนว่าค่าเฉลี่ยของกลุ่มใดแตกต่าง:

 pg. pairwise_gameshowell (dv=' score ', between=' group ', data=df)


        A B mean(A) mean(B) diff se T df pval	
0 a b 77.3 91.8 -14.5 3.843754 -3.772354 11.6767 0.0072
1 a c 77.3 84.7 -7.4 3.952777 -1.872102 12.7528 0.1864
2 b c 91.8 84.7 7.1 2.179959 3.256942 17.4419 0.0119

จากค่า p เราจะเห็นว่าความแตกต่างเฉลี่ยระหว่างกลุ่ม a และ b นั้นแตกต่างกันอย่างมีนัยสำคัญ และความแตกต่างเฉลี่ยระหว่างกลุ่ม b และ c นั้นแตกต่างกันอย่างมีนัยสำคัญ

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

วิธีการดำเนินการวิเคราะห์ความแปรปรวนแบบทางเดียวใน Python
วิธีดำเนินการวิเคราะห์ความแปรปรวนแบบสองทางใน Python
วิธีดำเนินการวัด ANOVA ซ้ำใน Python

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

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