Uji Asumsi Anova menggunakan Python

Diposting pada

Uji asumsi anova biasanya digunakan untuk pengolahan data dalam bentuk skala parametrik seperti interval dan rasio. Perlunya uji dilakukan agar hasil yang diperoleh dapat dikatakan kuat untuk mewakili sample menggambarkan sebuah populasi. Ingat, bahwa metode kuantitatif biasanya adalah statistic inferensia, yakni mengambil beberapa sample yang selanjutnya digunakan untuk menggambarkan populasi.

Hasil pengolahan data dapat dikatakan kuat dan reliable apabila memenuhi beebrapa syarat. Salah satunya adalah menguji data sample dan persyaratan lainnya yang terdapat dalam sebuah metode. Metode anova sendiri mensyaratkan bahwa data yang digunakan memiliki residual yang terdistribusi normal, dan  bebas heteroskidastisitas.

Pengujian asumsi dapat dilakukan secara visual dan uji statistic. Secara visual, dapat dilakukan dengan membuat plot histogram ataupun graphic standardized residuals. Latihan ini merupakan Latihan lanjutan dari artikel mengolah anova dengan python.

Uji Asumsi Anova: Uji normalitas

Mirip seperti regresi, bahwa anova memiliki asumsi bahwa residual menyebar normal, yang menandakan bahwa model yang diperoleh tidak memiliki error yang tinggi. Untuk mengetahui apakah ada masalah pada normalitas maka gunakan script dibawah ini:

# QQ-plot untuk melakukan uji test asumsi pada anova
import statsmodels.api as sm
import matplotlib.pyplot as plt

sm.qqplot(res.anova_std_residuals, line='45')
plt.xlabel("Theoretical Quantiles")
plt.ylabel("Standardized Residuals")
plt.savefig('standardized residual.png')
plt.show()

# histogram
plt.hist(res.anova_model_out.resid, bins='auto', histtype='bar', ec='k') 
plt.xlabel("Residuals")
plt.ylabel('Frequency')
plt.savefig('hitogram.png')
plt.show()

akan diperoleh hasil dua gambar baru pada folder notebook, yakni file gambar standardized residual dan histogram.png

histogram uji anova dengan python
uji asumsi anova dengan python

Jika melihat dua gambar diatas, bisa kita simpulkan bahwa residual sudah menyebar normal meskipun agak miring ke kiri. Kesimpulan sementara ini bis akita buktikan dengan melakukan uji statistic.

Bagaimana jika ternyata data tidak menyebar dengan normal? Kendala ini sudah saya bahas pada artikel: mengatasi kendala data tidak normal. Pertanyaannya, kita membutuhkan residual yang menyebar normal. Tapi mengapa data awal yang kita atur untuk menyebar normal? Jawabnya adalah: model yang biasa ditawarkan anova adalah model linear, sehingga outlier data awal juga akan menimbulkan data residual tidak normal.

Salah satu uji statistic untuk uji normalitas ini adalah uji Shapiro-wilk test dengan menulis script dibawah ini:

import scipy.stats as stats
w, pvalue = stats.shapiro(model.resid)
print(w, pvalue)

hasilnya adalah sebagai berikut:

shapiro-wilk test

H0 : data menyebar normal, H1 : data tidak normal. Hasil diatas bahwa nilai Shapiro-wilk test sebesar 0.98 dengan p value 0.544 yang berarti terima H1 yang berarti data tidak normal. Memang terlihat ada kemiringan kekiri jika kita membahas skew test.

Uji Heteroskedastisitas

Selain menyebar normal, residual juga diasumsikan memiliki variance yang sama atau homoskedastisitas. Pengujian ini bisa dilakukan dengan cara levene’s test atau Bartless test. Lanene’s test lebih sering digunakan karena bisa mengakomodir data yang tidak menyebar normal. Pengujian dengan levene’s test dapat dilakukan dengan menulis script sebagai berikut:

#uji heteroskedastisitas menggunakan levene's test
from bioinfokit.analys import stat 
res = stat()
res.levene(df=df_melt, res_var='value', xfac_var='treatments')
res.levene_summary

hasilnya adalah sebagai berikut:

levene's test

H0: variance kelompok data sama, H1: variance kelompok data berbeda. Hal ini menandakan bahwa tolak H1 yang berarti variance kelompok data sama.

Sedangkan script untuk Bartless test adalah sebagai berikut:

import scipy.stats as stats
w, pvalue = stats.bartlett(df['A'], df['B'], df['C'], df['D'])
print(w, pvalue)

hasilnya adalah sebagai berikut:

bartless test anova test python

Atau bisa juga menggunakan script ini jika membutuhkan informasi dalam bentuk table:

anova test dengan python

Hasilnya sama yakni terima H0 bahwa variance kelompok data adalah sama.

Selamat Belajar!

bagi anda yang masih awam menganalisis python di windows terutama data analyst dan peneliti yang masih sering menggunakan spss sas stata dan eviews, silahkan kunjungi artikel berikut: cara mudah install dan mengolah data dengan python di windows.

Gambar Gravatar
Data analyst sekaligus researcher. Pernah mendalami production scheduling dalam manufacture. Melalui blog ini menyalurkan hobi menjadi statistical consulting dan menghimpun statistical process control software.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *