วิธีทำการทดสอบ tukey ใน python


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

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

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

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

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

ขั้นตอนที่ 1: โหลดแพ็คเกจและฟังก์ชันที่จำเป็น

ขั้นแรก เราจะโหลดแพ็คเกจและฟังก์ชันที่จำเป็นใน Python:

 import pandas as pd
import numpy as np
from scipy. stats import f_oneway
from statsmodels. stats . multicomp import pairwise_tukeyhsd

ขั้นตอนที่ 2: ติดตั้งโมเดล ANOVA

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

 #enter data for three groups
a = [85, 86, 88, 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]

#perform one-way ANOVA
f_oneway(a, b, c)

F_onewayResult(statistic=5.167774552944481, pvalue=0.012582197136592609)

เราจะเห็นว่าค่า p โดยรวมจากตาราง ANOVA คือ 0.01258

เนื่องจากตัวเลขนี้น้อยกว่า 0.05 เราจึงมีหลักฐานเพียงพอที่จะบอกว่าค่าเฉลี่ยในแต่ละกลุ่มไม่เท่ากัน

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

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

ในการทำการทดสอบ Tukey ใน Python เราสามารถใช้ฟังก์ชัน pairwise_tukeyhsd() จากไลบรารี statsmodels :

 #create DataFrame to hold data
df = pd. DataFrame ({'score': [85, 86, 88, 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 Tukey's test
tukey = pairwise_tukeyhsd(endog=df['score'],
                          groups=df['group'],
                          alpha= 0.05 )

#display results
print (tukey)

 Multiple Comparison of Means - Tukey HSD, FWER=0.05 
==================================================== ===
group1 group2 meandiff p-adj lower upper reject
-------------------------------------------------- ---
     ab 8.4 0.0158 1.4272 15.3728 True
     ac 1.3 0.8864 -5.6728 8.2728 False
     bc -7.1 0.0453 -14.0728 -0.1272 True
-------------------------------------------------- ---

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • ค่า P สำหรับความแตกต่างในค่าเฉลี่ยระหว่าง a และ b: 0.0158
  • ค่า P สำหรับความแตกต่างในค่าเฉลี่ยระหว่าง a และ c: 0.8864
  • ค่า P สำหรับความแตกต่างในค่าเฉลี่ยระหว่าง b และ c: 0.0453

ดังนั้น เราจะสรุปได้ว่ามีความแตกต่าง ที่มีนัยสำคัญทางสถิติ ระหว่างค่าเฉลี่ยของกลุ่ม a และ b และกลุ่ม b และ c แต่ไม่มีความแตกต่างที่มีนัยสำคัญทางสถิติระหว่างค่าเฉลี่ยของกลุ่ม a และ c

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

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

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

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