วิธีทำการทดสอบทีที่ 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