Jak wykonać testy t w pandach (3 przykłady)
Poniższe przykłady pokazują, jak wykonać trzy różne testy t przy użyciu ramki DataFrame pandy:
- Niezależny test t dla dwóch próbek
- Test t Welcha dla dwóch próbek
- Test t dla sparowanych próbek
Przykład 1: Niezależny test t dla dwóch próbek u pand
Niezależny test t dla dwóch próbek służy do określenia, czy średnie z dwóch populacji są równe.
Załóżmy na przykład, że profesor chce wiedzieć, czy dwie różne metody nauki prowadzą do różnych średnich ocen na egzaminach.
Aby to przetestować, rekrutuje 10 uczniów do stosowania metody A i 10 uczniów do stosowania metody B.
Poniższy kod pokazuje, jak wprowadzić wyniki każdego ucznia do ramki DataFrame pandy, a następnie użyć funkcji ttest_ind() biblioteki SciPy w celu przeprowadzenia niezależnego testu t dla dwóch próbek:
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)
Z wyniku możemy zobaczyć:
- Statystyka testu t: – 2,6034
- Wartość p: 0,0179
Ponieważ wartość p jest mniejsza niż 0,05, odrzucamy hipotezę zerową testu t i dochodzimy do wniosku, że istnieją wystarczające dowody, aby stwierdzić, że obie metody prowadzą do różnych średnich wyników egzaminu.
Przykład 2: Test t Welcha u pand
Test t Welcha jest podobny do niezależnego testu t dla dwóch próbek, z tą różnicą, że nie zakłada, że dwie populacje, z których pobierane są próbki, mają równą wariancję .
Aby wykonać test t Welcha na dokładnie tym samym zbiorze danych, co w poprzednim przykładzie, wystarczy podać wartość valid_var=False w funkcji ttest_ind () w następujący sposób:
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)
Z wyniku możemy zobaczyć:
- Statystyka testu t: – 2,6034
- Wartość p: 0,0201
Ponieważ wartość p jest mniejsza niż 0,05, odrzucamy hipotezę zerową testu t Welcha i dochodzimy do wniosku, że istnieją wystarczające dowody, aby stwierdzić, że obie metody prowadzą do różnych średnich wyników egzaminu.
Przykład 3: Test t dla par próbek w firmie Pandas
Test t dla par prób służy do określenia, czy dwie średnie populacji są równe, w którym każdą obserwację w jednej próbie można powiązać z obserwacją w drugiej próbie.
Załóżmy na przykład, że profesor chce wiedzieć, czy dwie różne metody nauki prowadzą do różnych średnich ocen na egzaminach.
Aby to sprawdzić, rekrutuje 10 uczniów do zastosowania Metody A, a następnie przystępuje do testu. Następnie pozwala tym samym 10 uczniom, którzy korzystali z Metody B, przygotować się i przystąpić do kolejnego testu o podobnym stopniu trudności.
Ponieważ wszyscy uczniowie pojawiają się w obu próbach, w tym scenariuszu możemy przeprowadzić test t dla par prób.
Poniższy kod pokazuje, jak wprowadzić wyniki każdego ucznia do ramki DataFrame pandy, a następnie użyć funkcji ttest_rel() biblioteki SciPy w celu wykonania testu t dla par próbek:
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)
Z wyniku możemy zobaczyć:
- Statystyka testu t: – 6,1620
- Wartość p: 0,0001
Ponieważ wartość p jest mniejsza niż 0,05, odrzucamy hipotezę zerową testu t dla par próbek i dochodzimy do wniosku, że istnieją wystarczające dowody, aby stwierdzić, że obie metody prowadzą do różnych średnich wyników egzaminu.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w Pythonie:
Jak wykonać test niezależności chi-kwadrat w Pythonie
Jak wykonać jednokierunkową ANOVA w Pythonie
Jak wykonać dokładny test Fishera w Pythonie