Jak wykonać trójczynnikową anova w pythonie


Trójczynnikową analizę ANOVA stosuje się w celu ustalenia, czy istnieje statystycznie istotna różnica pomiędzy średnimi z trzech lub większej liczby niezależnych grup, które zostały rozdzielone na trzy czynniki.

Poniższy przykład pokazuje, jak wykonać trójczynnikową analizę ANOVA w Pythonie.

Przykład: Trójczynnikowa ANOVA w Pythonie

Załóżmy, że badacz chce ustalić, czy dwa programy treningowe prowadzą do różnej średniej poprawy wysokości skoku wśród koszykarzy z college’u.

Badacz podejrzewa, że płeć i podział (I lub II Dywizja) również mogą mieć wpływ na wysokość skoku, dlatego zbiera dane również na temat tych czynników.

Jego celem jest wykonanie trójczynnikowej analizy ANOVA w celu określenia, w jaki sposób program treningowy, płeć i kategoria wpływają na wysokość skoku.

Wykonaj poniższe kroki, aby wykonać trójczynnikową analizę ANOVA w Pythonie:

Krok 1: Utwórz dane

Najpierw utwórzmy pandę DataFrame do przechowywania danych:

 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

Krok 2: Wykonaj trójczynnikową ANOVA

Następnie możemy użyć funkcji anova_lm() z biblioteki statsmodels , aby wykonać trójczynnikową analizę ANOVA:

 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

Krok 3: Interpretacja wyników

Kolumna Pr(>F) wyświetla wartość p dla każdego pojedynczego czynnika i interakcje między czynnikami.

Z wyników wynika, że żadna z interakcji pomiędzy trzema czynnikami nie była istotna statystycznie.

Widzimy również, że każdy z trzech czynników (program, płeć i podział) był istotny statystycznie z następującymi wartościami p:

  • Programowa wartość P: 0,00000000298
  • Płeć Wartość P: 0,00000000000171
  • Podział Wartość P: 0,00000185

Podsumowując, można powiedzieć, że program treningowy, płeć i kategoria są znaczącymi wskaźnikami zwiększonej wysokości skoku u zawodników.

Powiedzielibyśmy również, że nie ma znaczących efektów interakcji między tymi trzema czynnikami.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak dopasować inne modele ANOVA w Pythonie:

Jak wykonać jednokierunkową ANOVA w Pythonie
Jak wykonać dwukierunkową ANOVA w Pythonie
Jak wykonać powtarzalne pomiary ANOVA w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *