So führen Sie eine zweifaktorielle ANOVA in Python durch

Von Fabian
Kategorie: Python
Tags: ANOVA
Lesezeit: 3 Minuten

Eine zweifaktorielle ANOVA wird verwendet, um zu bestimmen, ob es einen statistisch signifikanten Unterschied zwischen den Mittelwerten von drei oder mehr unabhängigen Gruppen gibt, die auf zwei Faktoren aufgeteilt wurden.

Der Zweck einer zweifaktorielle ANOVA besteht darin, zu bestimmen, wie sich zwei Faktoren auf eine Antwortvariable auswirken, und zu bestimmen, ob eine Wechselwirkung zwischen den beiden Faktoren auf der Antwortvariablen besteht oder nicht.

In diesem Tutorial wird erklärt, wie eine zweifaktorielle ANOVA in Python durchgeführt wird.

Beispiel: Zweifaktorielle ANOVA in Python

Ein Botaniker möchte wissen, ob das Pflanzenwachstum durch Sonneneinstrahlung und Bewässerungshäufigkeit beeinflusst wird. Sie pflanzt 30 Samen und lässt sie zwei Monate lang unter verschiedenen Bedingungen wachsen, um sie dem Sonnenlicht und der Bewässerungshäufigkeit auszusetzen. Nach zwei Monaten zeichnet sie die Höhe jeder Pflanze in Zoll auf.

Führen Sie die folgenden Schritte aus, um eine zweifaktorielle ANOVA durchzuführen, um festzustellen, ob die Bewässerungshäufigkeit und die Sonneneinstrahlung einen signifikanten Einfluss auf das Pflanzenwachstum haben, und um festzustellen, ob ein Wechselwirkungseffekt zwischen der Bewässerungshäufigkeit und der Sonneneinstrahlung besteht.

Schritt 1: Geben Sie die Daten ein.

Zuerst erstellen wir einen Pandas DataFrame, der die folgenden drei Variablen enthält:

  • water: Wie oft wurde jede Pflanze bewässert: täglich oder wöchentlich
  • sun: Wie viel Sonnenlicht hat jede Pflanze erhalten: niedrig, mittel oder hoch
  • height: Die Höhe jeder Pflanze (in Zoll) nach zwei Monaten
import numpy as np
import pandas as pd

# Daten erstellen
df = pd.DataFrame({'water': np.repeat(['daily', 'weekly'], 15),
                   'sun': np.tile(np.repeat(['low', 'med', 'high'], 5), 2),
                   'height': [6, 6, 6, 5, 6, 5, 5, 6, 4, 5,
                              6, 6, 7, 8, 7, 3, 4, 4, 4, 5,
                              4, 4, 4, 4, 4, 5, 6, 6, 7, 8]})

# Die ersten zehn Datenzeilen anzeigen 
df[:10]

    water   sun height
0   daily   low 6
1   daily   low 6
2   daily   low 6
3   daily   low 5
4   daily   low 6
5   daily   med 5
6   daily   med 5
7   daily   med 6
8   daily   med 4
9   daily   med 5

Schritt 2: Führen Sie die zweifaktorielle ANOVA durch.

Als Nächstes führen wir die zweifaktorielle ANOVA mit der Funktion anova_lm() aus der Bibliothek statsmodels durch:

import statsmodels.api as sm
from statsmodels.formula.api import ols

# zweifaktorielle ANOVA durchführen
model = ols('height ~ C(water) + C(sun) + C(water):C(sun)', data=df).fit()
sm.stats.anova_lm(model, typ=2)

               sum_sq     df          F    PR(>F)
C(water)     8.533333    1.0    16.0000  0.000527
C(sun)          24.866667    2.0    23.3125  0.000002
C(water):C(sun)  2.466667    2.0     2.3125  0.120667
Residual    12.800000   24.0        NaN       NaN

Schritt 3: Interpretieren Sie die Ergebnisse.

Wir können die folgenden p-Werte für jeden der Faktoren in der Tabelle sehen:

  • water: p-Wert = 0,000527
  • sun: p-Wert = 0,0000002
  • water * sun: p-Wert = 0,120667

Da die p-Werte für Wasser und Sonne beide unter 0,05 liegen, haben beide Faktoren einen statistisch signifikanten Einfluss auf die Pflanzenhöhe.

Und da der p-Wert für den Wechselwirkungseffekt (Interaction) (.120667) nicht kleiner als .05 ist, zeigt dies, dass es keinen signifikanten Wechselwirkungseffekt zwischen Sonneneinstrahlung und Bewässerungsfrequenz gibt.

Hinweis: Obwohl die ANOVA-Ergebnisse zeigen, dass die Bewässerungshäufigkeit und die Sonneneinstrahlung einen statistisch signifikanten Einfluss auf die Pflanzenhöhe haben, müssten wir Post-hoc-Tests durchführen, um genau zu bestimmen, wie sich unterschiedliche Wasser- und Sonnenlichtwerte auf die Pflanzenhöhe auswirken.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: