Cara melakukan anova dua arah dengan python
ANOVA dua arah digunakan untuk menentukan apakah terdapat perbedaan yang signifikan secara statistik antara rata-rata tiga atau lebih kelompok independen yang dibagi menjadi dua faktor.
Tujuan dari ANOVA dua arah adalah untuk mengetahui pengaruh dua faktor terhadap suatu variabel respon dan untuk mengetahui ada tidaknya interaksi antara kedua faktor tersebut terhadap variabel respon.
Tutorial ini menjelaskan cara melakukan ANOVA dua arah dengan Python.
Contoh: ANOVA dua arah dengan Python
Seorang ahli botani ingin mengetahui apakah pertumbuhan tanaman dipengaruhi oleh paparan sinar matahari dan frekuensi penyiraman. Ia menanam 30 benih dan membiarkannya tumbuh selama dua bulan dalam kondisi paparan sinar matahari dan frekuensi penyiraman yang berbeda. Setelah dua bulan, dia mencatat tinggi tiap tanaman, dalam inci.
Gunakan langkah-langkah berikut untuk melakukan ANOVA dua arah untuk menentukan apakah frekuensi penyiraman dan paparan sinar matahari mempunyai pengaruh yang signifikan terhadap pertumbuhan tanaman, dan untuk menentukan apakah terdapat pengaruh interaksi antara frekuensi air dan paparan sinar matahari. penyiraman dan paparan sinar matahari.
Langkah 1: Masukkan datanya.
Pertama, kita akan membuat pandas DataFrame yang berisi tiga variabel berikut:
- air: seberapa sering setiap tanaman disiram: setiap hari atau setiap minggu
- matahari: jumlah paparan sinar matahari yang diterima setiap tanaman: rendah, sedang, atau tinggi
- tinggi: tinggi setiap tanaman (dalam inci) setelah dua bulan
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
Langkah 2: Lakukan ANOVA dua arah.
Selanjutnya, kita akan melakukan ANOVA dua arah menggunakan fungsi anova_lm() dari perpustakaan statsmodels:
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
Langkah 3: Interpretasikan hasilnya.
Nilai p-value masing-masing faktor berikut ini dapat kita lihat pada tabel:
- air: nilai p = 0,000527
- matahari: nilai p = 0,0000002
- air*matahari: nilai p = 0,120667
Karena nilai p untuk air dan matahari sama-sama kurang dari 0,05, ini berarti kedua faktor tersebut mempunyai pengaruh yang signifikan secara statistik terhadap tinggi tanaman.
Dan karena nilai p untuk efek interaksi (0,120667) tidak kurang dari 0,05, hal ini menunjukkan bahwa tidak ada efek interaksi yang signifikan antara paparan sinar matahari dan frekuensi penyiraman.
Catatan: Meskipun hasil ANOVA menunjukkan bahwa frekuensi penyiraman dan paparan sinar matahari mempunyai pengaruh yang signifikan secara statistik terhadap tinggi tanaman, kita perlu melakukan pengujian post-hoc untuk menentukan dengan tepat bagaimana perbedaan tingkat air dan sinar matahari mempengaruhi tinggi tanaman.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya dengan Python:
Cara Melakukan ANOVA Satu Arah dengan Python
Cara Melakukan ANOVA Tiga Arah dengan Python