TL;DR
Nilai signifikansi atau p-value adalah peluang kamu ngeliat hasil seekstrem data kamu, seandainya sebenernya nggak ada efek apa-apa. Kalau p di bawah 0,05, hasilnya disebut signifikan secara statistik, artinya polanya kecil kemungkinan muncul cuma gara-gara kebetulan. Tapi p-value nggak ngasih tau seberapa besar efeknya dan nggak ngasih tau apakah hasilnya penting buat bisnis kamu.
Nilai signifikansi (p-value) adalah peluang kamu dapet hasil seekstrem data kamu, seandainya sebenernya nggak ada efek apa-apa. Makin kecil angkanya, makin susah hasil itu dijelasin sebagai kebetulan.
Itu definisinya. Sekarang bagian yang bikin orang keder.
Kamu klik Analyze di SPSS, tabelnya keluar, ada kolom "Sig. (2-tailed)" isinya 0,032. Terus apa? Boleh bilang promo kamu berhasil, atau belum?
Aku bakal jelasin cara bacanya tanpa satu pun rumus integral, plus tiga hal yang p-value nggak bilang tapi sering dikira dia bilang.
Nilai signifikansi adalah angka antara 0 sampai 1 yang ngukur seberapa nyambung data kamu sama anggapan "nggak ada efek". Anggapan itu namanya hipotesis nol. Kalau p-value-nya kecil, data kamu aneh banget buat dunia tanpa efek, jadi kamu nolak anggapan itu.
Bahasa gampangnya gini. Kamu lempar koin 10 kali, keluar angka 10 kali berturut-turut.
Peluang kejadian itu kalau koinnya jujur? Sekitar 0,001. Itu p-value-nya.
Kamu nggak bisa buktiin koinnya curang. Tapi 0,001 cukup kecil buat kamu berhenti nganggap koin itu jujur.
Uji statistik kerjanya persis gitu. Bedanya, yang dilempar bukan koin, tapi selisih rata-rata antara dua kelompok.
Baca satu angka aja: kolom Sig. Kalau isinya di bawah 0,05, hasilnya signifikan secara statistik. Kalau di atas 0,05, kamu belum punya bukti cukup. Di SPSS kolomnya sering ditulis "Sig. (2-tailed)", artinya uji dua arah, kamu cuma nanya "ada beda nggak", bukan "lebih besar atau lebih kecil".
Tabel cepatnya:
| Nilai Sig. | Bacanya | Yang kamu tulis |
|---|---|---|
| 0,001 ke bawah | Bukti kuat banget | p < 0,001 |
| 0,001 sampai 0,05 | Signifikan di ambang 5% | p = 0,032 |
| 0,05 sampai 0,10 | Bukti lemah, jangan diklaim | p = 0,068 |
| Di atas 0,10 | Nggak ada bukti | p = 0,41 |
Satu jebakan yang paling sering kena mahasiswa: SPSS nulis ,000. Itu bukan nol. SPSS cuma motong di tiga angka desimal, jadi artinya p-nya lebih kecil dari 0,0005. Tulis p < 0,001 di skripsi kamu, jangan p = 0,000.
Kalau kamu pakai Python, angkanya keluar apa adanya:
from scipy import stats
# omzet harian sebelum dan sesudah promo
sebelum = [4.1, 3.8, 4.4, 3.9, 4.2, 4.0, 3.7]
sesudah = [4.9, 5.2, 4.6, 5.4, 5.0, 4.8, 5.1]
t, p = stats.ttest_ind(sebelum, sesudah, equal_var=False)
print(f"t = {t:.3f}, p = {p:.6f}")
Detail parameter dan asumsinya ada di dokumentasi resmi scipy.stats.ttest_ind.
Nggak harus. Angka 0,05 itu kebiasaan, bukan aturan alam. Ronald Fisher nyebut angka itu di tahun 1920-an sebagai patokan praktis, terus semua orang ikut. Artinya kamu rela salah nolak hipotesis nol sekitar 5 kali dari 100 percobaan.
Kalau salah ngambil keputusan itu murah, 0,05 aman. Kalau mahal, ketatin.
Yang penting: tentuin ambangnya sebelum lihat hasilnya. Geser ambang setelah p-value keluar itu curang, dan gampang ketauan penguji.
Ini bagian yang paling sering salah kaprah. Ada tiga hal yang p-value nggak pernah jawab.
p = 0,001 nggak berarti efeknya gede. Dia cuma berarti efeknya susah dianggap kebetulan. Ukuran efek dihitung terpisah, misalnya pakai Cohen's d atau selisih rata-rata mentah.
p = 0,03 bukan berarti "ada 97% kemungkinan teoriku bener". p-value ngitung peluang data, bukan peluang hipotesis. Ini beda arah, dan sering kebalik di penulisan skripsi.
Sampel gede bikin selisih kecil jadi signifikan. Ini yang bakal kamu lihat di contoh di bawah.
Dataset toko_berkah punya 8.257 transaksi selesai. Toko ini ngetes promo gratis ongkir selama 14 hari, dibandingin sama 14 hari sebelumnya.
| Periode | Jumlah struk | Rata-rata nilai struk | Standar deviasi |
|---|---|---|---|
| Sebelum promo | 1.842 | Rp 178.400 | Rp 412.000 |
| Selama promo | 2.109 | Rp 191.700 | Rp 438.000 |
Hasil uji t dua sampel: t = 0,983, p = 0,326.
p-nya jauh di atas 0,05. Jadi selisih Rp 13.300 per struk itu belum bisa dibedain dari kebetulan.
Tapi ceritanya belum selesai. Aku cek metrik lain, jumlah struk per hari.
| Periode | Rata-rata struk per hari | Hasil uji |
|---|---|---|
| Sebelum promo | 131,6 | t = 3,41, p = 0,002 |
| Selama promo | 150,6 |
Nah ini signifikan. Promo gratis ongkir nggak bikin orang belanja lebih banyak per struk, tapi bikin lebih banyak orang belanja. Naik 19 struk per hari, atau sekitar 14,4%.
Keputusan yang lahir dari dua p-value ini beda total. Kalau toko_berkah cuma ngukur nilai struk, promonya bakal dicap gagal dan dimatiin. Padahal yang naik itu volume.
Buat narik angka rata-rata dan hitungan kayak gini dari database, kamu bakal sering pakai fungsi AVG sama COUNT. Istilah dasarnya ada di glossary p-value.
Udah dibahas di atas, tapi ini kesalahan nomor satu di skripsi. Ganti jadi p < 0,001.
p = 0,32 artinya kamu belum nemu bukti perbedaan. Bukan berarti bedanya nggak ada. Sampel kecil sering bikin efek nyata jadi nggak kedeteksi.
Kalau kamu uji 20 variabel di ambang 0,05, secara peluang bakal ada sekitar 1 yang keluar signifikan walau semuanya nggak ada efek. Ini namanya masalah perbandingan ganda. Kalau kamu emang uji banyak, pakai koreksi kayak Bonferroni.
Uji t punya syarat, misalnya data mendekati normal dan varians dua kelompok mirip. Kalau syaratnya jebol, p-value-nya nggak bisa dipercaya. Cek dulu sebarannya lewat statistik deskriptif sebelum jalanin uji apa pun.
p kecil di data observasi cuma nunjukin pola, bukan sebab. Buat klaim sebab-akibat, kamu butuh desain eksperimen yang bener.
Itu bukan nol beneran. SPSS cuma nampilin tiga angka di belakang koma, jadi 0,000 artinya p-value-nya lebih kecil dari 0,0005. Cara nulisnya yang bener di laporan: p < 0,001, bukan p = 0,000. Peluangnya kecil banget, tapi secara matematis nggak pernah persis nol. Dosen penguji sering banget nanya ini, jadi mending kamu tulis dari awal pakai format p < 0,001.
Nggak gagal, cuma belum cukup bukti buat nolak hipotesis nol di ambang 0,05. Bedanya 0,06 sama 0,04 itu tipis banget, dan sering cuma soal jumlah sampel. Yang bener kamu lakuin: laporin angka aslinya, laporin ukuran efeknya, dan bilang buktinya lemah. Jangan ngutak-atik data sampai p-nya turun di bawah 0,05, itu namanya p-hacking dan bikin hasilnya nggak bisa dipercaya.
Signifikan secara statistik cuma berarti polanya kecil kemungkinan kebetulan. Penting berarti efeknya cukup besar buat ngubah keputusan. Dua-duanya beda. Dengan sampel 50.000 transaksi, selisih omzet Rp 900 per struk bisa keluar p < 0,001, padahal buat bisnis angka segitu nggak ada artinya. Selalu lihat ukuran efeknya, bukan cuma kolom Sig.
Angka 0,05 itu kesepakatan yang dipopulerkan Ronald Fisher di tahun 1920-an, bukan hukum alam. Artinya kamu rela salah nolak hipotesis nol 5 kali dari 100. Bidang lain pakai ambang beda. Fisika partikel minta jauh lebih ketat, uji klinis kadang pakai 0,01. Kalau salah ambil keputusan itu mahal buat kamu, turunin ambangnya jadi 0,01.
Nggak boleh. Ambang signifikansi ditentuin sebelum kamu jalanin uji, bareng sama hipotesis. Kalau kamu geser ambang setelah lihat p-value-nya 0,07 biar jadi signifikan, kamu udah ngerusak logika ujinya. Praktik yang aman: tulis hipotesis, ambang, dan uji yang dipakai di proposal atau catatan analisis, baru jalanin ujinya.
Tiga hal yang bikin kamu aman baca kolom Sig.:
Kalau kamu masih bingung sama H0 dan H1 yang jadi dasar semua ini, mampir dulu ke panduan uji hipotesis. Habis itu balik ke output SPSS kamu, dan baca ulang kolom Sig.-nya. Kemungkinan besar sekarang kebaca.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Kolom datetime nyimpen tanggal, jam, hari, semuanya nempel jadi satu. Accessor .dt di pandas ngeluarin tiap bagian jadi kolom sendiri buat dianalisa.
Nama toko ketik campur huruf besar-kecil, spasi nyasar di ujung, atau kode produk nempel jadi satu. Accessor .str di pandas ngerapiin semua itu tanpa loop.
Model machine learning cuma ngerti angka, bukan teks kayak merah atau biru. get_dummies ngubah kolom kategori jadi kolom 0/1 dalam satu baris kode.