Uji Statistik Non Parametrik: Mann-Whitney, Wilcoxon, dan Kruskal-Wallis
TL;DR
Uji statistik non parametrik adalah uji yang nggak butuh asumsi sebaran normal karena bekerja dengan peringkat data, bukan nilai aslinya. Mann-Whitney U dipakai buat dua kelompok bebas, Wilcoxon signed-rank buat dua pengukuran pada objek yang sama, dan Kruskal-Wallis buat tiga kelompok bebas atau lebih. Hasilnya dilaporkan pakai median tiap kelompok, nilai statistik ujinya, dan p-value.
Uji statistik non parametrik adalah uji yang nggak butuh asumsi sebaran normal, karena dia kerja pakai peringkat data, bukan nilai aslinya.
Tiga yang paling sering kepakai: Mann-Whitney U buat dua kelompok bebas, Wilcoxon signed-rank buat dua pengukuran pada objek yang sama, dan Kruskal-Wallis buat tiga kelompok atau lebih.
Kabar baiknya, langkah di SPSS-nya nggak lebih ribet dari t-test. Yang beda cuma cara baca outputnya dan cara nulis hasilnya.
Di bawah ini cara kerjanya, langkah ketiga uji itu di SPSS dan Python, contoh angka dari data toko, dan format pelaporan yang bener.
Apa itu uji statistik non parametrik?
Uji non parametrik adalah uji yang nggak berasumsi apa-apa soal bentuk sebaran data di populasi. Dia ngubah nilai jadi peringkat dulu, terus ngebandingin peringkat antar kelompok. Karena nilai aslinya nggak dipakai langsung, sebaran yang miring atau adanya nilai ekstrem nggak ngerusak hasilnya.
Contoh gampangnya: kalau data belanja kamu berisi Rp 15.000, Rp 18.000, dan Rp 2.000.000, uji non parametrik cuma lihat itu sebagai peringkat 1, 2, dan 3. Nilai dua juta tadi nggak bisa narik hasil ke mana-mana.
Itu kekuatannya sekaligus batasnya. Kamu jadi kebal sama nilai ekstrem, tapi kehilangan informasi soal seberapa jauh jaraknya.
Kapan uji non parametrik lebih tepat dari t-test?
Tiga situasi yang paling sering muncul:
- Sebaran nggak normal dan sampel kecil. Di bawah 30 per kelompok, t-test mulai nggak bisa diandalkan kalau datanya miring.
- Skala datanya ordinal. Peringkat kepuasan, tingkat pendidikan, dan urutan preferensi masuk sini. Rata-rata dari data ordinal nggak punya arti yang jelas.
- Ada nilai ekstrem yang nyata. Pembelian borongan di data warung itu kejadian beneran, bukan salah input. Kamu nggak boleh hapus, tapi juga nggak mau dia narik rata-rata.
Kalau datamu normal dan sampelnya besar, uji parametrik tetap pilihan pertama. Syarat lengkapnya ada di uji statistik parametrik.
Gimana cara uji Mann-Whitney U di SPSS?
Mann-Whitney U ngebandingin dua kelompok yang isinya objek berbeda. Ini pengganti independent t-test.
Susunan datanya penting: satu kolom berisi nilai, satu kolom lagi berisi kode kelompok (misalnya 1 dan 2). Jangan dipisah jadi dua kolom nilai.
- Klik Analyze, pilih Nonparametric Tests, lalu Legacy Dialogs, lalu 2 Independent Samples.
- Masukin variabel nilai ke kotak Test Variable List.
- Masukin variabel kelompok ke kotak Grouping Variable.
- Klik Define Groups, isi 1 dan 2 sesuai kode kelompokmu, klik Continue.
- Pastikan Mann-Whitney U tercentang di bagian Test Type.
- Klik OK.
Output-nya dua tabel. Tabel Ranks nunjukin rata-rata peringkat tiap kelompok, dan tabel Test Statistics nunjukin nilai U plus Asymp. Sig. (2-tailed). Angka terakhir itu p-value-nya. Kalau di bawah 0,05, dua kelompok itu beda.
Versi Python-nya satu baris:
from scipy.stats import mannwhitneyu
u, p = mannwhitneyu(kelompok_a, kelompok_b, alternative="two-sided")
print("U:", u, "p-value:", round(p, 5))
Detail parameternya ada di dokumentasi scipy mannwhitneyu.
Gimana cara uji Wilcoxon signed-rank di SPSS?
Wilcoxon signed-rank dipakai kalau objeknya sama tapi diukur dua kali. Sebelum dan sesudah pelatihan, sebelum dan sesudah promo, pre-test dan post-test.
Susunan datanya kebalikan dari Mann-Whitney: dua kolom nilai, satu baris satu objek.
- Klik Analyze, Nonparametric Tests, Legacy Dialogs, 2 Related Samples.
- Klik kolom nilai pertama, terus kolom nilai kedua, masukin sebagai satu pasangan.
- Pastikan Wilcoxon tercentang.
- Klik OK.
Baca tabel Ranks dulu. Di situ ada Negative Ranks (nilai turun), Positive Ranks (nilai naik), dan Ties (nggak berubah). Tiga angka ini yang ngasih tau arah perubahannya.
Baru lihat tabel Test Statistics buat nilai Z dan p-value-nya. Uji ini cuma bilang ada perubahan atau nggak. Arahnya kamu baca sendiri dari tabel Ranks.
from scipy.stats import wilcoxon
stat, p = wilcoxon(sebelum, sesudah)
print("statistik:", stat, "p-value:", round(p, 5))
Gimana cara uji Kruskal-Wallis di SPSS?
Kruskal-Wallis dipakai buat tiga kelompok bebas atau lebih. Ini pengganti one-way ANOVA.
- Klik Analyze, Nonparametric Tests, Legacy Dialogs, K Independent Samples.
- Masukin variabel nilai ke Test Variable List, variabel kelompok ke Grouping Variable.
- Klik Define Range, isi nilai minimum dan maksimum kode kelompokmu, misalnya 1 dan 3.
- Pastikan Kruskal-Wallis H tercentang, klik OK.
Hasilnya berupa nilai H, derajat bebas, dan p-value. Kalau p di bawah 0,05, artinya minimal ada satu kelompok yang beda dari yang lain.
Di sini banyak orang berhenti, dan itu keliru. Kruskal-Wallis nggak ngasih tau kelompok mana yang beda.
Buat nemuin pasangannya, lanjut ke uji post hoc Dunn dengan koreksi Bonferroni. Jangan jalanin Mann-Whitney berkali-kali tanpa koreksi, karena tiap perbandingan tambahan naikin peluang nemu beda palsu.
from scipy.stats import kruskal
h, p = kruskal(kelompok_1, kelompok_2, kelompok_3)
print("H:", round(h, 3), "p-value:", round(p, 5))
Tabel padanan uji parametrik dan non parametrik
| Kondisi | Uji parametrik | Uji non parametrik | Statistik yang dilaporkan |
|---|---|---|---|
| 1 kelompok vs nilai acuan | One sample t-test | Wilcoxon signed-rank | Z |
| 2 kelompok bebas | Independent t-test | Mann-Whitney U | U |
| 2 pengukuran, objek sama | Paired t-test | Wilcoxon signed-rank | Z |
| 3 kelompok bebas atau lebih | One-way ANOVA | Kruskal-Wallis | H |
| 3 pengukuran berpasangan atau lebih | Repeated measures ANOVA | Friedman | Chi-square |
| Hubungan 2 variabel | Korelasi Pearson | Korelasi Spearman | rho |
Cara milih baris mana yang berlaku buat kasusmu ada di pohon keputusan jenis uji statistik.
Contoh kasus: nilai belanja dua cabang toko_berkah
Data toko_berkah punya Ngulik Data isinya 8.400 transaksi warung kelontong di Semarang. Pertanyaannya: apakah nilai belanja di cabang Tembalang beda dari cabang Banyumanik?
Sebaran nilai belanjanya miring ke kanan di dua cabang, karena ada pembelian borongan warung yang nilainya di atas Rp 500.000. Uji Kolmogorov-Smirnov ngasih p di bawah 0,001, jadi normalitasnya gagal.
Aku jalanin dua uji sekaligus buat ngebandingin hasilnya.
| Uji | Ukuran pusat Tembalang | Ukuran pusat Banyumanik | Selisih | p-value |
|---|---|---|---|---|
| t-test (rata-rata) | Rp 24.700 | Rp 21.300 | Rp 3.400 | < 0,001 |
| Mann-Whitney (median) | Rp 18.900 | Rp 18.400 | Rp 500 | 0,003 |
Dua-duanya bilang ada beda. Tapi besaran bedanya jauh banget: Rp 3.400 versus Rp 500.
Selisih rata-rata tadi hampir seluruhnya datang dari 3 persen transaksi teratas berupa pembelian borongan di Tembalang. Perilaku belanja pelanggan harian di dua cabang itu sebenernya hampir sama.
Kalau pemilik toko baca angka t-test doang, dia bakal nyimpulin pelanggan Tembalang lebih royal dan nyusun strategi harga dari situ. Median ngasih gambaran yang lebih jujur soal pelanggan kebanyakan.
Ini alasan praktis kenapa uji non parametrik kepakai, di luar urusan lolos syarat normalitas.
Gimana cara nulis hasilnya di skripsi?
Format pelaporannya beda dari uji parametrik. Empat hal yang harus ada:
- Median tiap kelompok, plus rentang antar kuartil. Jangan pakai rata-rata dan simpangan baku.
- Nama uji dan nilai statistiknya: U buat Mann-Whitney, Z buat Wilcoxon, H buat Kruskal-Wallis.
- Jumlah sampel tiap kelompok.
- Nilai p-value yang tepat, bukan cuma keterangan signifikan. Arti angkanya ada di glossary p-value.
Contoh kalimat yang bisa kamu pakai:
Uji Mann-Whitney U nunjukin nilai belanja di cabang Tembalang (median Rp 18.900, n = 4.312) berbeda dari cabang Banyumanik (median Rp 18.400, n = 4.088), dengan U = 8.427.116 dan p = 0,003.
Kesalahan umum waktu pakai uji non parametrik
Nulis rata-rata di hasil non parametrik. Ujinya bandingin peringkat, jadi ukuran pusat yang nyambung itu median. Nulis rata-rata bikin pembaca ngira kamu jalanin t-test.
Berhenti di Kruskal-Wallis yang signifikan. Kamu baru tau ada beda, belum tau di mana. Lanjutin ke uji Dunn.
Salah milih antara Mann-Whitney dan Wilcoxon. Kelompok bebas pakai Mann-Whitney, pengukuran berulang pakai Wilcoxon. Namanya mirip dan sering ketuker karena Mann-Whitney kadang disebut Wilcoxon rank-sum.
Langsung lompat ke non parametrik tanpa cek apa-apa. Kalau datamu normal dan sampelnya besar, uji parametrik lebih peka. Cek dulu, baru pindah.
Hapus nilai ekstrem terus tetap pakai non parametrik. Kalau outlier-nya kejadian nyata, biarin aja. Justru itu alasan kamu pilih uji ini.
FAQ
Kapan harus pakai uji non parametrik?
Tiga situasi. Pertama, sebaran datamu nggak normal dan sampelnya kecil, di bawah 30 per kelompok. Kedua, skala datamu ordinal seperti peringkat kepuasan atau tingkat pendidikan. Ketiga, ada nilai ekstrem yang narik rata-rata dan kamu nggak mau hapus datanya. Di ketiga kondisi itu, uji non parametrik ngasih kesimpulan yang lebih bisa dipercaya daripada t-test.
Apa bedanya Mann-Whitney dan Wilcoxon?
Mann-Whitney U dipakai buat dua kelompok yang isinya objek berbeda, misalnya pelanggan cabang A dibanding cabang B. Wilcoxon signed-rank dipakai buat dua pengukuran pada objek yang sama, misalnya omzet toko sebelum dan sesudah promo. Nama keduanya sering ketuker karena Mann-Whitney kadang disebut Wilcoxon rank-sum, yang beda dari Wilcoxon signed-rank.
Kruskal-Wallis signifikan, terus harus ngapain?
Hasil Kruskal-Wallis cuma bilang ada minimal satu kelompok yang beda, tanpa nyebut yang mana. Buat tau pasangan mana yang berbeda, lanjut ke uji post hoc Dunn dengan koreksi Bonferroni. Di SPSS versi baru, uji lanjutannya muncul otomatis kalau kamu klik dua kali hasil Kruskal-Wallis di Model Viewer. Jangan pakai Mann-Whitney berkali-kali tanpa koreksi.
Uji non parametrik hasilnya kurang kuat ya?
Kalau datanya beneran normal, uji non parametrik memang sedikit kurang peka dibanding t-test, sekitar 5 persen lebih rendah dalam kondisi ideal. Tapi kalau datanya miring atau ada nilai ekstrem, dia justru lebih andal. Jadi ini bukan soal kuat atau lemah, tapi soal cocok sama bentuk data yang kamu punya.
Gimana cara nulis hasil uji non parametrik di skripsi?
Laporkan median dan rentang antar kuartil tiap kelompok, bukan rata-rata dan simpangan baku. Sebutin nama ujinya, nilai statistiknya (U buat Mann-Whitney, H buat Kruskal-Wallis), jumlah sampel tiap kelompok, dan p-value-nya. Contohnya: median cabang A Rp 18.900 dan cabang B Rp 18.400, Mann-Whitney U = 1.204.500, p = 0,003.
Penutup
Yang perlu kamu simpan:
- Mann-Whitney buat dua kelompok bebas, Wilcoxon buat pengukuran berulang, Kruskal-Wallis buat tiga kelompok ke atas
- Laporkan median, bukan rata-rata
- Kruskal-Wallis yang signifikan masih butuh uji lanjutan Dunn
Coba ambil data yang normalitasnya gagal, jalanin uji non parametrik yang sesuai, terus bandingin median sama rata-ratanya. Selisih dua angka itu sering jadi temuan yang paling menarik di analisismu.
Lanjut baca uji hipotesis buat analis buat dasar logika keputusannya, atau statistik deskriptif buat cara ngitung median dan kuartil yang bakal kamu laporin.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Pandas groupby: Agregasi Data ala Pivot di Python (2026)
groupby ngelompokin baris berdasarkan kolom, lalu ngitung ringkasan per grup kayak total atau rata-rata. Ini pivot-nya pandas.
Pandas to_excel: Ekspor DataFrame ke Excel (2026)
to_excel nyimpen DataFrame pandas jadi file Excel .xlsx. Ini cara pakainya, dari satu sheet sampai banyak sheet, plus setelan yang bikin hasilnya rapi.
Pandas read_excel: Baca File Excel di Python
pandas read_excel baca file Excel jadi DataFrame, bisa pilih sheet tertentu dan lompatin baris judul yang berantakan. Ini cara pakai plus parameter penting dengan contoh data toko.