Python'da üç yollu anova nasıl gerçekleştirilir
Üç faktöre dağılmış üç veya daha fazla bağımsız grubun ortalamaları arasında istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek için üç yönlü ANOVA kullanılır.
Aşağıdaki örnek Python’da üç yönlü ANOVA’nın nasıl gerçekleştirileceğini gösterir.
Örnek: Python’da Üç Yollu ANOVA
Bir araştırmacının, iki antrenman programının kolej basketbolcuları arasında sıçrama yüksekliğinde farklı ortalama iyileşmelere yol açıp açmadığını belirlemek istediğini varsayalım.
Araştırmacı, cinsiyet ve bölünmenin (Bölüm I veya II) de atlama yüksekliğini etkileyebileceğinden şüpheleniyor, bu nedenle bu faktörler hakkında da veri topluyor.
Amacı, antrenman programının, cinsiyetin ve bölümün atlama yüksekliğini nasıl etkilediğini belirlemek için üç yönlü bir ANOVA gerçekleştirmektir.
Python’da bu üç yönlü ANOVA’yı gerçekleştirmek için aşağıdaki adımları kullanın:
1. Adım: Verileri oluşturun
Öncelikle verileri tutacak bir pandas DataFrame oluşturalım:
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
Adım 2: Üç yönlü ANOVA’yı gerçekleştirin
Daha sonra, üç yönlü ANOVA’yı gerçekleştirmek için statsmodels kütüphanesindeki anova_lm() fonksiyonunu kullanabiliriz:
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
3. Adım: Sonuçları yorumlayın
Pr(>F) sütunu, her bir faktör için p-değerini ve faktörler arasındaki etkileşimleri görüntüler.
Sonuçlardan, üç faktör arasındaki etkileşimlerin hiçbirinin istatistiksel olarak anlamlı olmadığını görebiliriz.
Ayrıca üç faktörün (program, cinsiyet ve bölüm) her birinin aşağıdaki p değerleri ile istatistiksel olarak anlamlı olduğunu da görebiliriz:
- Program P değeri: 0,00000000298
- Cinsiyet P değeri: 0,00000000000171
- Bölüm P değeri: 0,00000185
Sonuç olarak, antrenman programı, cinsiyet ve bölümün, oyunculardaki artan sıçrama yüksekliğinin önemli göstergeleri olduğunu söyleyebiliriz.
Ayrıca bu üç faktör arasında anlamlı bir etkileşim etkisinin olmadığını da söyleyebiliriz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer ANOVA modellerinin nasıl sığdırılacağı açıklanmaktadır:
Python’da Tek Yönlü ANOVA Nasıl Gerçekleştirilir
Python’da İki Yönlü ANOVA Nasıl Gerçekleştirilir
Python’da Tekrarlanan Ölçümler ANOVA Nasıl Gerçekleştirilir