วิธีทำการทดสอบทีที่ pandas (3 ตัวอย่าง)


ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการทดสอบทีที่แตกต่างกันสามแบบโดยใช้ Pandas DataFrame:

  • การทดสอบทีสองตัวอย่างอิสระ
  • ที-เทสต์สองตัวอย่างของเวลช์
  • จับคู่ตัวอย่างการทดสอบที

ตัวอย่างที่ 1: การทดสอบทีแบบอิสระสองตัวอย่างในแพนด้า

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

ตัวอย่างเช่น สมมติว่าศาสตราจารย์ต้องการทราบว่าวิธีการศึกษาสองวิธีที่แตกต่างกันทำให้คะแนนเฉลี่ยในการสอบต่างกันหรือไม่

เพื่อทดสอบสิ่งนี้ เขารับสมัครนักเรียน 10 คนให้ใช้วิธี A และนักเรียน 10 คนใช้วิธี B

รหัสต่อไปนี้แสดงวิธีการป้อนคะแนนของนักเรียนแต่ละคนลงใน DataFrame ของ pandas จากนั้นใช้ฟังก์ชัน ttest_ind() ของไลบรารี SciPy เพื่อทำการทดสอบ t-test สองตัวอย่างอิสระ:

 import pandas as pd
from scipy. stats import ttest_ind

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df. head ()

  method score
0 to 71
1 To 72
2 To 72
3 to 75
4 to 78

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform independent two sample t-test
ttest_ind(group1[' score '], group2[' score '])

Ttest_indResult(statistic=-2.6034304605397938, pvalue=0.017969284594810425)

จากผลลัพธ์เราจะเห็นได้ว่า:

  • สถิติการทดสอบที: – 2.6034
  • ค่า p: 0.0179

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

ตัวอย่างที่ 2: การทดสอบของเวลช์ในแพนด้า

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

หากต้องการทำการทดสอบ t-test ของ Welch กับชุดข้อมูลเดียวกันกับตัวอย่างก่อนหน้านี้ เราเพียงแค่ต้องระบุ เท่ากับ_var=False ในฟังก์ชัน ttest_ind () ดังนี้:

 import pandas as pd
from scipy. stats import ttest_ind

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform Welch's t-test
ttest_ind(group1[' score '], group2[' score '], equal_var= False )

Ttest_indResult(statistic=-2.603430460539794, pvalue=0.02014688617423973)

จากผลลัพธ์เราจะเห็นได้ว่า:

  • สถิติการทดสอบที: – 2.6034
  • ค่า p: 0.0201

เนื่องจากค่า p น้อยกว่า 0.05 เราจึงปฏิเสธสมมติฐานว่างของการทดสอบทีของ Welch และสรุปว่ามีหลักฐานเพียงพอที่จะระบุว่าทั้งสองวิธีนำไปสู่คะแนนสอบเฉลี่ยที่แตกต่างกัน

ตัวอย่างที่ 3: จับคู่ตัวอย่างการทดสอบทีที่ Pandas

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

ตัวอย่างเช่น สมมติว่าศาสตราจารย์ต้องการทราบว่าวิธีการศึกษาสองวิธีที่แตกต่างกันทำให้คะแนนเฉลี่ยในการสอบต่างกันหรือไม่

เพื่อทดสอบสิ่งนี้ เขารับสมัครนักเรียน 10 คนให้ใช้วิธี A แล้วจึงทำการทดสอบ จากนั้นเขาให้นักเรียน 10 คนเดิมที่ใช้วิธี B เตรียมตัวและทำแบบทดสอบที่มีความยากคล้ายกันอีกครั้ง

เนื่องจากนักเรียนทุกคนปรากฏในทั้งสองตัวอย่าง เราจึงสามารถทำการทดสอบทีแบบคู่ได้ในสถานการณ์นี้

รหัสต่อไปนี้แสดงวิธีการป้อนคะแนนของนักเรียนแต่ละคนลงใน DataFrame ของ pandas จากนั้นใช้ฟังก์ชัน ttest_rel() ของไลบรารี SciPy เพื่อทำการทดสอบ t-test แบบจับคู่:

 import pandas as pd
from scipy. stats import ttest_rel

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df. head ()

  method score
0 to 71
1 To 72
2 To 72
3 to 75
4 to 78

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform independent two sample t-test
ttest_rel(group1[' score '], group2[' score '])

Ttest_relResult(statistic=-6.162045351967805, pvalue=0.0001662872100210469)

จากผลลัพธ์เราจะเห็นได้ว่า:

  • สถิติการทดสอบที: – 6.1620
  • ค่า p: 0.0001

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

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่นๆ ใน Python:

วิธีการทดสอบความเป็นอิสระของ Chi-Square ใน Python
วิธีการดำเนินการวิเคราะห์ความแปรปรวนแบบทางเดียวใน Python
วิธีทำการทดสอบที่แน่นอนของฟิชเชอร์ใน Python

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

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