So führen sie eine drei-wege-anova in python durch
Eine dreifache ANOVA wird verwendet, um zu bestimmen, ob ein statistisch signifikanter Unterschied zwischen den Mittelwerten von drei oder mehr unabhängigen Gruppen besteht, die auf drei Faktoren verteilt wurden.
Das folgende Beispiel zeigt, wie eine Drei-Wege-ANOVA in Python durchgeführt wird.
Beispiel: Dreifaktorielle ANOVA in Python
Angenommen, ein Forscher möchte herausfinden, ob zwei Trainingsprogramme bei College-Basketballspielern zu unterschiedlichen durchschnittlichen Verbesserungen der Sprunghöhe führen.
Der Forscher vermutet, dass auch Geschlecht und Division (Division I oder II) einen Einfluss auf die Sprunghöhe haben könnten, weshalb er auch Daten zu diesen Faktoren erhebt.
Sein Ziel ist es, eine Drei-Wege-ANOVA durchzuführen, um zu bestimmen, wie sich Trainingsprogramm, Geschlecht und Division auf die Sprunghöhe auswirken.
Führen Sie die folgenden Schritte aus, um diese dreifaktorielle ANOVA in Python durchzuführen:
Schritt 1: Erstellen Sie die Daten
Erstellen wir zunächst einen Pandas-DataFrame zur Aufnahme der Daten:
import numpy as np
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' program ': np.repeat ([1,2],20),
' gender ': np. tile (np. repeat (['M', 'F'], 10), 2),
' division ': np. tile (np. repeat ([1, 2], 5), 4),
' height ': [7, 7, 8, 8, 7, 6, 6, 5, 6, 5,
5, 5, 4, 5, 4, 3, 3, 4, 3, 3,
6, 6, 5, 4, 5, 4, 5, 4, 4, 3,
2, 2, 1, 4, 4, 2, 1, 1, 2, 1]})
#view first ten rows of DataFrame
df[:10]
program gender division height
0 1 M 1 7
1 1 M 1 7
2 1 M 1 8
3 1 M 1 8
4 1 M 1 7
5 1 M 2 6
6 1 M 2 6
7 1 M 2 5
8 1 M 2 6
9 1 M 2 5
Schritt 2: Führen Sie die Drei-Wege-ANOVA durch
Als nächstes können wir die Funktion anova_lm() aus der statsmodels- Bibliothek verwenden, um die Drei-Wege-ANOVA durchzuführen:
import statsmodels. api as sm
from statsmodels. formula . api import ols
#perform three-way ANOVA
model = ols("""height ~ C(program) + C(gender) + C(division) +
C(program):C(gender) + C(program):C(division) + C(gender):C(division) +
C(program):C(gender):C(division)""", data=df) .fit ()
sm. stats . anova_lm (model, typ= 2 )
sum_sq df F PR(>F)
C(program) 3.610000e+01 1.0 6.563636e+01 2.983934e-09
C(gender) 6.760000e+01 1.0 1.229091e+02 1.714432e-12
C(division) 1.960000e+01 1.0 3.563636e+01 1.185218e-06
C(program):C(gender) 2.621672e-30 1.0 4.766677e-30 1.000000e+00
C(program):C(division) 4.000000e-01 1.0 7.272727e-01 4.001069e-01
C(gender):C(division) 1.000000e-01 1.0 1.818182e-01 6.726702e-01
C(program):C(gender):C(division) 1.000000e-01 1.0 1.818182e-01 6.726702e-01
Residual 1.760000e+01 32.0 NaN NaN
Schritt 3: Interpretieren Sie die Ergebnisse
Die Spalte Pr(>F) zeigt den p-Wert für jeden einzelnen Faktor und die Wechselwirkungen zwischen den Faktoren an.
Anhand der Ergebnisse können wir erkennen, dass keine der Wechselwirkungen zwischen den drei Faktoren statistisch signifikant war.
Wir können auch sehen, dass jeder der drei Faktoren (Programm, Geschlecht und Abteilung) mit den folgenden p-Werten statistisch signifikant war:
- Programm -P-Wert: 0,00000000298
- Geschlechter -P-Wert: 0,00000000000171
- Division P-Wert: 0,00000185
Zusammenfassend würden wir sagen, dass Trainingsprogramm, Geschlecht und Spielklasse allesamt wichtige Indikatoren für eine erhöhte Sprunghöhe bei Spielern sind.
Wir würden auch sagen, dass es keine signifikanten Wechselwirkungen zwischen diesen drei Faktoren gibt.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie man andere ANOVA-Modelle in Python anpasst:
So führen Sie eine einfaktorielle ANOVA in Python durch
So führen Sie eine zweifaktorielle ANOVA in Python durch
So führen Sie eine ANOVA mit wiederholten Messungen in Python durch