Python-T-Test mit zwei Stichproben

Migel Hewage Nimesha 15 Februar 2024
  1. Zwei-Stichproben-T-Test in Python
  2. Abschluss
Python-T-Test mit zwei Stichproben

Die meisten Programmierer auf der ganzen Welt verwenden die Python-Sprache zum Programmieren. Python ist als interpretierte und höhere Programmiersprache sehr beliebt.

Da die meisten Programmierer Python in der objektorientierten Programmierung verwenden, wird es in der Webentwicklung, Datenvisualisierung, in Bereichen wie künstliche Intelligenz und maschinelles Lernen, Backend-Entwicklung und als Skriptsprache verwendet.

Eine Funktion, die Python uns bietet, ist, dass wir t-Tests mit zwei Stichproben durchführen können. In diesem Artikel werden wir erörtern, was ein t-Test mit zwei Stichproben ist und wie er mit Python durchgeführt wird.

Zwei-Stichproben-T-Test in Python

Der Zwei-Stichproben-t-Test ist eine Art von Test, mit dem wir bestimmen können, ob die Mittelwerte der zwei unbekannten Grundgesamtheiten zweier Datengruppen gleich sind oder nicht. Er wird auch t-Test bei unabhängigen Stichproben genannt.

Es darf für eine Gruppe keinen Bezug zu einer anderen Datengruppe haben.

Bevor wir den t-Test bei zwei Stichproben durchführen, müssen wir drei Annahmen über die Datengruppen berücksichtigen.

  1. Die zwei Datengruppen, die wir zum Testen nehmen, sind unabhängig.
  2. Homogenitätsannahme: Hier nehmen wir an, dass die beiden Datengruppen die gleichen Varianzen haben.
  3. Die letzte Annahme ist, ob die Datenverteilung in Datengruppen unterschiedlich ist.

Mit diesen Annahmen können wir einen t-Test mit zwei Stichproben durchführen.

Bei der Analyse der Ergebnisse des t-Tests bei zwei Stichproben können wir zwei Hypothesen annehmen.

  1. H0 - Bevölkerungsdurchschnitt der Datengruppe1 = Bevölkerungsdurchschnitt der Datengruppe2. Auch als Nullhypothese bekannt.
  2. HA - dataGroup1 population mean != dataGroup2 population mean.

Es gibt drei Hauptmethoden, um diesen Test durchzuführen.

  1. Verwendung von scipy
  2. Verwendung von pingouin
  3. Verwendung von statsmodels

Verwenden Sie die SciPy-Bibliothek

Die SciPy, auch bekannt als Scientific Python Library, ist eine Open-Source-Python-Bibliothek, die naturwissenschaftliche und mathematische Probleme löst. In der SciPy-Bibliothek stehen mehrere High-Level-Python-Befehle zur Bearbeitung und Visualisierung von Daten zur Verfügung.

Mehrere Unterpakete fallen unter die SciPy-Bibliothek. Einige von ihnen sind:

  1. scipy.stats – Kann für Statistiken und Zufallszahlen verwendet werden.
  2. scipy.io – Kann für die Dateieingabe und -ausgabe verwendet werden.
  3. scipy.linalg – Kann für Operationen der linearen Algebra verwendet werden.
  4. scipy.signal - Kann für die Signalverarbeitung verwendet werden.

Um einen t-Test mit zwei Stichproben durchzuführen, können wir diese SciPy-Bibliothek verwenden.

Die Syntax für den t-Test bei zwei Stichproben ist unten.

ttest_ind(dataGroup1, dataGroup2, equal_var=True / False)

Hier ist ttest_ind eine Funktion, die vom Unterpaket scipy.stats bereitgestellt wird, wo wir den Test durchführen. Darin haben wir dataGroup1 und dataGroup2, die Datengruppen, die wir erstellen.

Wenn equal_var gleich true ist, wird der t-Test bei zwei Stichproben unter Berücksichtigung der gleichen Grundgesamtheitsvarianzen durchgeführt. Wenn es false ist, wird der Welch-t-Test durchgeführt, da die Populationsvarianzen nicht gleich sind.

Standardmäßig ist equal_var true.

Überprüfen Sie die Gleichheit der Varianz der Datengruppe

Vor der Durchführung des Tests müssen wir prüfen, ob die Datengruppen die gleiche Varianz haben. Wenn wir ein Verhältnis der großen Datengruppe zur kleinen Datengruppe unter 4:1 erhalten, können wir sagen, dass beide Datengruppen die gleiche Varianz haben.

Um dies zu überprüfen, können wir die folgende Syntax verwenden.

np.var(dataGroup1), np.var(dataGroup2)

Lassen Sie uns einen t-Test anhand eines Beispiels durchführen.

Stellen Sie sich vor, wir haben zwei Beispieldatengruppen, wobei jede Gruppe die Noten von 10 Schülern für ein bestimmtes Fach enthält. Wir müssen klarstellen, dass die Schüler aus den beiden Gruppen die gleichen Durchschnittsnoten für das Fach haben.

Als ersten Schritt müssen wir die Bibliotheken SciPy und NumPy mit dem Befehl pip installieren.

$ pip install scipy
$ pip install numpy

Dann sollten wir die Unterbibliothek scipy.stats und NumPy in unsere Umgebung importieren. Wie oben erwähnt, hilft uns scipy.stats bei der Durchführung des Tests, während uns NumPy beim Erstellen der Datengruppen hilft.

Wir können diese beiden Module wie folgt importieren.

import scipy.stats as stats
import numpy as np

Dann können wir die beiden Gruppen mit einigen Daten wie folgt erstellen.

dataGroup1 = np.array([17, 16, 14, 19, 20, 21, 15, 13, 14, 12])
dataGroup2 = np.array([19, 19, 14, 17, 22, 24, 16, 18, 15, 13])

Zunächst können wir die Gleichheit der Varianzen der Datengruppen wie folgt prüfen.

print(np.var(dataGroup1), np.var(dataGroup2))

Nach dem Ausführen des Codes erhalten wir eine Ausgabe wie im folgenden Bild gezeigt.

Überprüfen Sie die Gleichheit

Wie Sie sehen können, beträgt das Verhältnis 10.809/8.49, was weniger als 4:1 ist. Wir können also sagen, dass die Varianzen der Datengruppen gleich sind.

Lassen Sie uns nun den Test durchführen.

print(stats.ttest_ind(dataGroup1, dataGroup2, equal_var=True))

Ausgang:

Statistiken

Hier ist der p-Wert, den wir erhalten haben, 0.2889, was größer ist als der alpha-Wert, der 0,05 beträgt. Daher können wir feststellen, dass die Durchschnittsnoten der Schüler aus den beiden Gruppen nicht unterschiedlich sind, was die Nullhypothese ist (gemäß den beiden zuvor erwähnten Hypothesen).

Vollständiger Code:

# Importing the libraries
import scipy.stats as stats
import numpy as np

# Defining the data groups
dataGroup1 = np.array([17, 16, 14, 19, 20, 21, 15, 13, 14, 12])
dataGroup2 = np.array([19, 19, 14, 17, 22, 24, 16, 18, 15, 13])

# Check the equality of the variances of the data groups
print(np.var(dataGroup1), np.var(dataGroup2))

# Executing the test
print(stats.ttest_ind(dataGroup1, dataGroup2, equal_var=True))

Verwenden Sie die pingouin-Bibliothek

Eine andere Möglichkeit, einen t-Test mit zwei Stichproben durchzuführen, ist die Verwendung des Pakets pingouin. Es ist ein Open-Source-Paket basierend auf NumPy und pandas mit statistischen Funktionen.

Um pingouin verwenden zu können, müssen wir es mit dem Befehl pip installieren.

$ pip install pingouin

Dann können wir die folgende Syntax verwenden, um den t-Test durchzuführen.

ttest(dataGroup1, dataGroup2, correction=True / False)

Hier wird die Funktion ttest vom Paket pingouin bereitgestellt. dataGroup1 und dataGroup2 sind die Gruppen, die wir zum Testen verwenden.

Wenn die Korrektur true ist, wird der Test unter Berücksichtigung der Homogenitätsannahme durchgeführt. Wenn es wie zuvor false ist, führt es den Welch-t-Test durch, wobei die Homogenitätsannahme nicht berücksichtigt wird.

Nehmen wir das vorherige Beispiel, um den t-Test durchzuführen. Erstens können wir die Pakete NumPy und pingouin importieren.

import pingouin as pg
import numpy as np

Dann definieren wir die Datengruppen.

dataGroup1 = np.array([17, 16, 14, 19, 20, 21, 15, 13, 14, 12])
dataGroup2 = np.array([19, 19, 14, 17, 22, 24, 16, 18, 15, 13])

Jetzt können wir den Test machen.

print(pg.ttest(dataGroup1, dataGroup2, correction=True))

Ausgang:

Pinguin

Wie Sie sehen können, haben wir 0.2891 als p-Wert, der größer ist als der alpha-Wert, der 0.05 ist. Dabei wird festgestellt, dass sich die Mittelwerte der beiden Gruppen statistisch nicht unterscheiden.

Vollständiger Code:

# Importing the libraries
import pingouin as pg
import numpy as np

# Defining the data groups
dataGroup1 = np.array([17, 16, 14, 19, 20, 21, 15, 13, 14, 12])
dataGroup2 = np.array([19, 19, 14, 17, 22, 24, 16, 18, 15, 13])

# Executing the test
print(pg.ttest(dataGroup1, dataGroup2, correction=True))

Verwenden Sie das Modul statsmodels

Statsmodels ist ein Python-Modul, das auf der Grundlage von SciPy, NumPy und Matplotlib erstellt wurde. Es gibt Benutzern Funktionen und Klassen, um statistische Tests und Schätzungen durchzuführen.

Mit dem Modul statsmodels können wir auch t-Tests mit zwei Stichproben durchführen. Wir sollten das Modul mit dem Befehl pip installieren, um dies zu verwenden.

$ pip install statsmodels

Wir können die folgende Syntax verwenden, um t-Tests durchzuführen.

ttest_ind(dataGroup1, dataGroup2)

ttest_ind ist die Funktion, mit der wir den Test durchführen, und dataGroup1 und dataGroup2 sind die Gruppen, die wir zum Testen verwenden.

Lassen Sie uns das Testen anhand des vorherigen Beispiels versuchen.

Zuerst müssen wir die Funktion ttest_ind aus den statsmodels importieren. Dann können wir die numpy-Bibliothek importieren.

from statsmodels.stats.weightstats import ttest_ind
import numpy as np

Jetzt können wir die Datengruppen wie zuvor definieren.

dataGroup1 = np.array([17, 16, 14, 19, 20, 21, 15, 13, 14, 12])
dataGroup2 = np.array([19, 19, 14, 17, 22, 24, 16, 18, 15, 13])

Dann können wir den folgenden Test durchführen.

print(ttest_ind(dataGroup1, dataGroup2))

Ausgang:

Statistikmodelle

Wie Sie sehen, haben wir als p-Wert 0.2889 erhalten, was grösser ist als der alpha-Wert. Daher können wir sagen, dass sich die Durchschnittsnoten der Schülergruppen statistisch nicht von anderen unterscheiden.

Vollständiger Code:

# Importing libraries
from statsmodels.stats.weightstats import ttest_ind
import numpy as np

# Definig the data groups
dataGroup1 = np.array([17, 16, 14, 19, 20, 21, 15, 13, 14, 12])
dataGroup2 = np.array([19, 19, 14, 17, 22, 24, 16, 18, 15, 13])

# Executing the test
print(ttest_ind(dataGroup1, dataGroup2))

Abschluss

In diesem Artikel haben wir besprochen, was ein t-Test mit zwei Stichproben ist und wie er in Python durchgeführt wird. Wie wir gelernt haben, gibt es drei Hauptmethoden, um den Test durchzuführen: die Verwendung von SciPy, pingouin und statsmodels.

Diese drei Methoden erfordern unterschiedliche Bibliotheken und Funktionen zum Testen.

Wir haben ein Beispiel genommen, um das Konzept zu verstehen, und es auf alle Methoden angewendet. Dann haben wir die Ergebnisse anhand der Hypothese und der Annahmen analysiert.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.