Python'da i̇ki yönlü anova nasıl gerçekleştirilir
İki faktöre bölünmüş üç veya daha fazla bağımsız grubun ortalamaları arasında istatistiksel olarak anlamlı bir fark olup olmadığını belirlemek için iki yönlü ANOVA kullanılır.
İki yönlü ANOVA’nın amacı, iki faktörün bir yanıt değişkeni üzerindeki etkisini belirlemek ve iki faktör arasında yanıt değişkeni üzerinde bir etkileşim olup olmadığını belirlemektir.
Bu eğitimde Python’da iki yönlü ANOVA’nın nasıl gerçekleştirileceği açıklanmaktadır.
Örnek: Python’da iki yönlü ANOVA
Bir botanikçi bitki büyümesinin güneş ışığına maruz kalma ve sulama sıklığından etkilenip etkilenmediğini bilmek ister. 30 tohum ekiyor ve iki ay boyunca farklı güneş ışığı koşullarında ve sulama sıklığında büyümelerini sağlıyor. İki ay sonra her bitkinin yüksekliğini inç cinsinden kaydediyor.
Sulama sıklığı ve güneşe maruz kalmanın bitki büyümesi üzerinde önemli bir etkiye sahip olup olmadığını belirlemek ve su sıklığı ile güneşe maruz kalma arasında bir etkileşim etkisi olup olmadığını belirlemek amacıyla iki yönlü bir ANOVA gerçekleştirmek için aşağıdaki adımları kullanın. sulama ve güneşe maruz kalma.
Adım 1: Verileri girin.
Öncelikle aşağıdaki üç değişkeni içeren bir pandas DataFrame oluşturacağız:
- su: her bitkinin ne sıklıkla sulandığı: günlük veya haftalık
- güneş: her bitkinin aldığı güneşe maruz kalma miktarı: düşük, orta veya yüksek
- yükseklik: iki ay sonra her bitkinin yüksekliği (inç cinsinden)
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
Adım 2: İki yönlü ANOVA’yı gerçekleştirin.
Daha sonra, statsmodels kütüphanesindeki anova_lm() fonksiyonunu kullanarak iki yönlü ANOVA’yı gerçekleştireceğiz:
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
Adım 3: Sonuçları yorumlayın.
Tablodaki faktörlerin her biri için aşağıdaki p değerlerini görebiliriz:
- su: p-değeri = 0,000527
- güneş: p-değeri = 0,0000002
- su*güneş: p-değeri = 0,120667
Su ve güneş için p değerlerinin her ikisinin de 0,05’ten küçük olması, her iki faktörün de bitki boyu üzerinde istatistiksel olarak anlamlı bir etkiye sahip olduğu anlamına gelir.
Etkileşim etkisinin p değeri (0,120667) 0,05’ten az olmadığından, bu bize güneşe maruz kalma ile sulama sıklığı arasında önemli bir etkileşim etkisinin olmadığını gösterir.
Not: ANOVA sonuçları bize sulama sıklığının ve güneşe maruz kalmanın bitki boyu üzerinde istatistiksel olarak anlamlı bir etkiye sahip olduğunu söylese de, Su ve güneş ışığının bitki boyunu nasıl farklı düzeylerde etkilediğini tam olarak belirlemek için post-hoc testler yapmamız gerekecektir.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Python’da Tek Yönlü ANOVA Nasıl Gerçekleştirilir
Python’da Üç Yollu ANOVA Nasıl Gerçekleştirilir