Kruskal-Wallis Test adalah salah satu uji dari non-parametrik yang digunakan untuk menentukan apakah terdapat perbedaan signifikan diantara dua atau lebih kelompok yang bebas. Uji ini merupakan alternatif dari uji ANOVA ketika data tidak memenuhi asumsi normalitas atau data bersifat ordinal.
Conover (1999) menyebut bahwa Kruskal-Wallis adalah metode non-parametrik yang digunakan untuk menguji apakah𝑘sampel independen diambil dari distribusi yang sama. Uji ini merupakan perpanjangan dari uji Mann-Whitney U untuk lebih dari dua kelompok, dan didasarkan pada peringkat data daripada nilai sebenarnya. Uji ini membandingkan jumlah peringkat di antara kelompok-kelompok untuk menentukan apakah terdapat perbedaan yang signifikan.
Asumsi
Data yang digunakan terdiri dari k sampel yang independen dan ditarik secara acak dari populasi.
Data yang digunakan berskala ordinal atau numerik (interval/rasio) yang didasarkan pada rank.
Distribusi data yang diuji tidak berdistribusi normal.
Formula
Rumus Kruskal-Wallis dapat dituliskan sebagai berikut:
\[ H = \frac{12}{N(N+1)} \sum_{j=1}^{k} \frac{R_j^2}{n_j} - 3(N+1) \]
Keterangan:
H: nilai Kruskal-Wallis dari hasil perhitungan
Rj: jumlah rank dari kelompok/kategori ke-j
nj: banyaknya kasus dalam sampel pada kelompok/kategori ke-j
k: banyaknya kelompok/kategori
N: jumlah seluruh observasi \(N = n_1 + n_2 + \dots + n_k\)
Hipotesis
Taraf Signifikansi (α)
Daerah Kritis: H0 ditolak jika p-value < α
Statistik Uji
Menggunakan shapiro.test()
untuk menguji normalitas pada
masing-masing variabel.
Jika p-value < 0,05, maka H0 ditolak sehingga data tidak berdistribusi normal, sedangkan apabila p-value ≥ 0,05, maka H0 tidak ditolak sehingga data berdistribusi normal.
Hipotesis
Taraf Signifikansi (α)
Daerah Kritis:
Statistik Uji
Menggunakan kruskal.test()
untuk mendapatkan nilai
p-value dari data yang dimiliki.
Jika p-value < 0,05, maka H0 ditolak sehingga terdapat perbedaan, sedangkan apabila hasil p-value ≥ 0,05, maka H0 tidak ditolak sehingga tidak terdapat perbedaan antara tiga atau lebih kelompok data.
Data yang digunakan bersumber dari Integrasi Susenas Tahun 2018 dan Riskesdas 2018, Laporan Survei Status Gizi Balita Indonesia (SSGBI) 2019, Buku Saku Hasil Studi Status Gizi Indonesia (SSGI) 2021-2022 dan Laporan SKI 2023 dengan cakupan di Provinsi Sulawesi Tengah.
library(rmarkdown) # Membuat dokumen dinamis dengan kode R dan teks.
library(knitr) # Membuat laporan otomatis dari kode R.
library(readxl) # Membaca data dari Excel ke R.
library(kableExtra) # Mempercantik tabel dalam R Markdown.
library(ggpubr) # Mempermudah pembuatan plot dengan ggplot2.
## Loading required package: ggplot2
dataku <- read_excel("Stunting_72.xlsx")
head(dataku)
## # A tibble: 6 × 7
## KODE `KAB/KOTA` `2018` `2019` `2021` `2022` `2023`
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 7201 KAB. BANGGAI KEPULAUAN 40.5 34.2 30.6 32.6 27.7
## 2 7202 KAB. BANGGAI 31.9 30.0 26.0 24.3 29.1
## 3 7203 KAB. MOROWALI 34.8 26.8 28.9 23.3 26.0
## 4 7204 KAB. P O S O 26.2 37.8 26.7 24.6 26.5
## 5 7205 KAB. DONGGALA 36.0 33.6 29.5 32.4 34.1
## 6 7206 KAB. TOLI TOLI 31.7 13.1 29.3 30.7 29.0
library(ggpubr)
ggqqplot(dataku$`2018`,main = "Stunting 2018")
shapiro.test(dataku$`2018`)
##
## Shapiro-Wilk normality test
##
## data: dataku$`2018`
## W = 0.95988, p-value = 0.7518
Berdasarkan persebaran yang diperoleh dari hasil probability plot tampak terdapat data yang sedikit keluar dari garis linear yang menunjukkan data tersebut mungkin tidak normal. Asumsi ini dapat diperkuat lebih lanjut melalui penghitungan shapiro test.
Dari Shapiro test, nilai p-value = 0,7518 > 0,05 sehingga dapat dikatakan kejadian stunting tahun 2018 berdistribusi normal.
ggqqplot(dataku$`2019`, main = "Stunting 2019")
shapiro.test(dataku$`2019`)
##
## Shapiro-Wilk normality test
##
## data: dataku$`2019`
## W = 0.91991, p-value = 0.2502
Berdasarkan Shapiro test, nilai p-value diperoleh sebesar 0,2502 > 0,05 sehingga dikatakan kejadian stunting tahun 2019 berdistribusi normal.
ggqqplot(dataku$`2021`, main = "Stunting 2021")
shapiro.test(dataku$`2021`)
##
## Shapiro-Wilk normality test
##
## data: dataku$`2021`
## W = 0.83011, p-value = 0.01589
Nilai p-value dari Shapiro test sebesar 0,01589 < 0,05 sehingga bisa disimpulkan kejadian stunting tahun 2021 tidak berdistribusi normal.
ggqqplot(dataku$`2022`,main = "Stunting 2022")
shapiro.test(dataku$`2022`)
##
## Shapiro-Wilk normality test
##
## data: dataku$`2022`
## W = 0.934, p-value = 0.384
Berdasarkan persebaran yang diperoleh dari hasil probability plot tampak terdapat data yang sedikit keluar dari garis linear yang menunjukkan data tersebut mungkin tidak normal. Asumsi ini dapat diperkuat lebih lanjut melalui penghitungan shapiro test.
Dari Shapiro test diperoleh nilai p-value sebesar 0,384 > 0,05 sehingga dikatakan kejadian stunting tahun 2022 di Provinsi Sulawesi Tengah berdistribusi normal.
ggqqplot(dataku$`2023`,main = "Stunting 2023")
shapiro.test(dataku$`2023`)
##
## Shapiro-Wilk normality test
##
## data: dataku$`2023`
## W = 0.96863, p-value = 0.8774
Berdasarkan persebaran yang diperoleh dari hasil probability plot tampak terdapat data yang sedikit keluar dari garis linear yang menunjukkan data tersebut mungkin tidak normal. Asumsi ini dapat diperkuat lebih lanjut melalui penghitungan shapiro test.
Dari Shapiro test, nilai p-value sebesar 0,8774 > 0,05. Ini menunjukkan kejadian stunting tahun 2023 berdistribusi normal.
Dari keseluruhan data dari tahun-tahun di atas, ternyata terdapat data di tahun tertentu yang tidak berdistribusi normal sehingga sudah tepat untuk menggunakan Uji Kruskal-Wallis (bukan Uji ANOVA).
library(reshape2)
# Transformasi data ke long format
dataku_long <- melt(dataku[, c("2018","2019","2021","2022","2023")],
variable.name = "Tahun", value.name = "Nilai")
## No id variables; using all as measure variables
# Uji Kruskal-Wallis
kruskal.test(Nilai ~ Tahun, data = dataku_long)
##
## Kruskal-Wallis rank sum test
##
## data: Nilai by Tahun
## Kruskal-Wallis chi-squared = 10.746, df = 4, p-value = 0.02957
Karena p-value (0.02957) kurang dari tingkat signifikansi α (0.05), maka hipotesis nol ditolak. Ini menunjukkan bahwa ada perbedaan yang signifikan dalam distribusi dari nilai antar kelompok-kelompok yang dibandingkan.
Interpretasi p-value dari uji Dunn post-hoc sangat penting untuk memahami perbedaan signifikan antara kelompok setelah melakukan uji Kruskal-Wallis.
Siegel (1956) menjelaskan Uji Dunn sering kali disertai dengan koreksi Bonferroni sebagai cara untuk mengatasi masalah pengujian hipotesis berganda dengan mengurangi tingkat kesalahan tipe I (false positives). Metode ini melibatkan pembagian tingkat signifikansi yang diinginkan (α) dengan jumlah perbandingan yang dilakukan, untuk menentukan tingkat signifikansi yang lebih ketat pada setiap uji individual.
library(dunn.test)
# Uji Post-Hoc Dunn dengan koreksi Bonferroni
dunn_test_result <- dunn.test(dataku_long$Nilai, dataku_long$Tahun, method = "bonferroni")
## Kruskal-Wallis rank sum test
##
## data: x and group
## Kruskal-Wallis chi-squared = 10.746, df = 4, p-value = 0.03
##
##
## Comparison of x by group
## (Bonferroni)
## Col Mean-|
## Row Mean | 2018 2019 2021 2022
## ---------+--------------------------------------------
## 2019 | 0.352658
## | 1.0000
## |
## 2021 | 1.804781 1.452122
## | 0.3555 0.7323
## |
## 2022 | 2.105578 1.752919 0.300796
## | 0.1762 0.3981 1.0000
## |
## 2023 | 2.686427 2.333768 0.881645 0.580849
## | 0.0361 0.0980 1.0000 1.0000
##
## alpha = 0.05
## Reject Ho if p <= alpha/2
Dari koreksi Bonferroni, diperoleh hasil Kruskal-Wallis Chi-Squared sebesar 10.746 dengan derajat kebebasan 4 dan p-value: 0.03.
Karena p-value < 0.05, maka disimpulkan menolak hipotesis nol. Ini berarti ada perbedaan yang signifikan diantara kelompok-kelompok secara keseluruhan.
Interpretasi Hasil Post-Hoc:
Perbandingan 2019 vs 2018: p-value = 1.0000 (Tidak signifikan).
Perbandingan 2021 vs 2018: p-value = 0.3555 (Tidak signifikan).
Perbandingan 2022 vs 2018: p-value = 0.1762 (Tidak signifikan).
Perbandingan 2023 vs 2018: p-value = 0.0361 Signifikan (p-value < 0.025 setelah koreksi Bonferroni).
Perbandingan 2021 vs 2019: p-value = 0.7323 (Tidak signifikan).
Perbandingan 2022 vs 2019: p-value = 0.3981 (Tidak signifikan).
Perbandingan 2023 vs 2019: p-value = 0.0980 (Tidak signifikan).
Perbandingan 2022 vs 2021: p-value = 1.0000 (Tidak signifikan).
Perbandingan 2023 vs 2021: p-value = 1.0000 (Tidak signifikan).
Perbandingan 2023 vs 2022: p-value = 1.0000 (Tidak signifikan).
Kesimpulan:
Hasil uji Kruskal-Wallis menunjukkan bahwa ada perbedaan signifikan dalam distribusi nilai antar kelompok secara keseluruhan.
Hasil uji Dunn post-hoc menunjukkan bahwa setelah koreksi Bonferroni, hanya perbandingan antara 2023 dan 2018 yang menunjukkan perbedaan signifikan.
Perbandingan ini menunjukkan bahwa nilai pada tahun 2023 secara signifikan berbeda dari nilai pada tahun 2018, sementara perbandingan lainnya tidak menunjukkan perbedaan signifikan setelah koreksi untuk banyak perbandingan.
p <- ggplot(dataku_long, aes(x = Tahun, y = Nilai)) +
geom_boxplot(aes(fill = Tahun)) +
labs(title = "Kruskal-Wallis Test with Dunn's Post-Hoc",
x = "Tahun", y = "Nilai Stunting") +
theme_minimal()
print(p)
Boxplot di atas menunjukkan distribusi data untuk setiap kelompok (tahun).
Conover, W. J. (1999). Practical Nonparametric Statistics (3rd ed.). John Wiley & Sons.
Kementerian Kesehatan Republik Indonesia. (2019). Survei Status Gizi Balita Indonesia (SSGBI) 2019. Jakarta: Kementerian Kesehatan Republik Indonesia.
Kementerian Kesehatan Republik Indonesia. (2021). Buku Saku Hasil Studi Status Gizi Indonesia (SSGI) Tahun 2021. Jakarta: Kementerian Kesehatan Republik Indonesia.
Kementerian Kesehatan Republik Indonesia. (2022). Buku Saku Hasil Studi Status Gizi Indonesia (SSGI) Tahun 2022. Jakarta: Kementerian Kesehatan Republik Indonesia.
Kementerian Kesehatan Republik Indonesia. (2023). Laporan Survei Kesehatan Indonesia (SKI) 2023. Jakarta: Kementerian Kesehatan Republik Indonesia.
Siegel, S. (1956). Nonparametric Statistics for the Behavioral Sciences. New York: McGraw-Hill.
Direktorat Statistik Kesejahteraan Rakyat, BPS, saptahas@bps.go.id