So führen sie t-tests bei pandas durch (3 beispiele)
Die folgenden Beispiele zeigen, wie drei verschiedene T-Tests mit einem Pandas DataFrame durchgeführt werden:
- Unabhängiger T-Test bei zwei Stichproben
- Welchs T-Test bei zwei Stichproben
- T-Test für gepaarte Stichproben
Beispiel 1: Unabhängiger T-Test bei zwei Stichproben bei Pandas
Ein unabhängiger T-Test mit zwei Stichproben wird verwendet, um zu bestimmen, ob die Mittelwerte zweier Grundgesamtheiten gleich sind.
Angenommen, ein Professor möchte wissen, ob zwei unterschiedliche Lernmethoden zu unterschiedlichen Durchschnittsnoten in Prüfungen führen.
Um dies zu testen, rekrutiert er 10 Studenten für die Anwendung von Methode A und 10 Studenten für die Anwendung von Methode B.
Der folgende Code zeigt, wie man die Ergebnisse jedes Schülers in einen Pandas-DataFrame eingibt und dann die Funktion ttest_ind() der SciPy- Bibliothek verwendet, um einen unabhängigen T-Test mit zwei Stichproben durchzuführen:
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)
Aus dem Ergebnis können wir sehen:
- T-Test-Statistik: – 2,6034
- p-Wert: 0,0179
Da der p-Wert kleiner als 0,05 ist, lehnen wir die Nullhypothese des t-Tests ab und kommen zu dem Schluss, dass genügend Beweise dafür vorliegen, dass die beiden Methoden zu unterschiedlichen durchschnittlichen Prüfungsergebnissen führen.
Beispiel 2: Welchs t-Test bei Pandas
Der Welch-T-Test ähnelt dem unabhängigen T-Test mit zwei Stichproben, außer dass er nicht davon ausgeht, dass die beiden Grundgesamtheiten, aus denen die Stichproben gezogen werden, die gleiche Varianz aufweisen.
Um den Welch-T-Test für genau denselben Datensatz wie im vorherigen Beispiel durchzuführen, müssen wir einfach equal_var=False in der Funktion ttest_ind () wie folgt angeben:
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)
Aus dem Ergebnis können wir sehen:
- T-Test-Statistik: – 2,6034
- p-Wert: 0,0201
Da der p-Wert kleiner als 0,05 ist, lehnen wir die Nullhypothese des Welch-T-Tests ab und kommen zu dem Schluss, dass genügend Beweise dafür vorliegen, dass die beiden Methoden zu unterschiedlichen durchschnittlichen Prüfungsergebnissen führen.
Beispiel 3: T-Test gepaarter Stichproben bei Pandas
Ein t-Test für gepaarte Stichproben wird verwendet, um zu bestimmen, ob zwei Populationsmittelwerte gleich sind, wobei jede Beobachtung in einer Stichprobe mit einer Beobachtung in der anderen Stichprobe verknüpft werden kann.
Angenommen, ein Professor möchte wissen, ob zwei unterschiedliche Lernmethoden zu unterschiedlichen Durchschnittsnoten in Prüfungen führen.
Um dies zu testen, rekrutiert er 10 Studenten, die Methode A anwenden und dann einen Test absolvieren. Dann lässt er dieselben 10 Schüler, die Methode B verwendet haben, sich vorbereiten und einen weiteren Test mit ähnlichem Schwierigkeitsgrad absolvieren.
Da alle Schüler in beiden Stichproben vorkommen, können wir in diesem Szenario einen T-Test für gepaarte Stichproben durchführen.
Der folgende Code zeigt, wie man die Ergebnisse jedes Schülers in einen Pandas-DataFrame eingibt und dann die Funktion ttest_rel() der SciPy- Bibliothek verwendet, um einen t-Test für gepaarte Stichproben durchzuführen:
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)
Aus dem Ergebnis können wir sehen:
- T-Test-Statistik: – 6,1620
- p-Wert: 0,0001
Da der p-Wert kleiner als 0,05 ist, lehnen wir die Nullhypothese des t-Tests für gepaarte Stichproben ab und kommen zu dem Schluss, dass genügend Beweise dafür vorliegen, dass die beiden Methoden zu unterschiedlichen durchschnittlichen Prüfungsergebnissen führen.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Python ausführen:
So führen Sie einen Chi-Quadrat-Unabhängigkeitstest in Python durch
So führen Sie eine einfaktorielle ANOVA in Python durch
So führen Sie den genauen Fisher-Test in Python durch