So führen sie eine zweifaktorielle anova in python durch


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

Der Zweck einer zweifaktoriellen ANOVA besteht darin, den Einfluss zweier Faktoren auf eine Antwortvariable zu bestimmen und festzustellen, ob eine Wechselwirkung zwischen den beiden Faktoren auf die Antwortvariable besteht oder nicht.

In diesem Tutorial wird erläutert, wie Sie eine zweifaktorielle ANOVA in Python durchführen.

Beispiel: Zweifaktorielle ANOVA in Python

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

Verwenden Sie die folgenden Schritte, um eine zweifaktorielle ANOVA durchzuführen, um zu bestimmen, ob Bewässerungshäufigkeit und Sonneneinstrahlung einen signifikanten Einfluss auf das Pflanzenwachstum haben, und um festzustellen, ob es einen Wechselwirkungseffekt zwischen Wasserhäufigkeit und Sonneneinstrahlung gibt. Bewässerung und Sonneneinstrahlung.

Schritt 1: Geben Sie die Daten ein.

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

  • Wasser: wie oft jede Pflanze gegossen wurde: täglich oder wöchentlich
  • Sonne: Menge der Sonneneinstrahlung, die jede Pflanze erhalten hat: niedrig, mittel oder hoch
  • Höhe: die Höhe jeder Pflanze (in Zoll) nach zwei Monaten
 import numpy as np
import pandas as pd

#create data
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]})

#view first ten rows of data 
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 statsmodels-Bibliothek durch:

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

#perform two-way ANOVA
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:

  • Wasser: p-Wert = 0,000527
  • Sonne: p-Wert = 0,0000002
  • Wasser*Sonne: p-Wert = 0,120667

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

Und da der p-Wert für den Wechselwirkungseffekt (0,120667) nicht weniger als 0,05 beträgt, bedeutet dies, dass es keinen signifikanten Wechselwirkungseffekt zwischen Sonneneinstrahlung und Bewässerungshäufigkeit gibt.

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

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Python ausführen:

So führen Sie eine einfaktorielle ANOVA in Python durch
So führen Sie eine Drei-Wege-ANOVA in Python durch

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert