Perbedaan yang terlihat pada data belum tentu perbedaan yang nyata, karena kebetulan pengambilan sampel juga menghasilkan pola. Pengujian hipotesis memberi kerangka untuk menimbang pola tersebut, yaitu menetapkan hipotesis nihil, menghitung statistik uji, dan menerjemahkannya menjadi p-value. Topik ini membahas kerangka tersebut beserta penerapannya pada nilai ujian dua kelas dengan uji t, cara membaca keputusannya, dan risiko salah keputusan yang melekat pada setiap pengujian.
Hipotesis nihil dan alternatif#
Pengujian dimulai dari dua pernyataan yang saling berhadapan. Hipotesis nihil (null hypothesis) menyatakan tidak ada efek, misalnya mean (rata-rata) dua kelas sama, sedangkan hipotesis alternatif menyatakan efek itu ada. Keduanya dituliskan secara ringkas sebagai berikut, dengan dan sebagai mean populasi masing-masing kelas:
Prosedur pengujian bekerja dengan mengasumsikan benar, lalu menilai seberapa tidak lazim data yang teramati di bawah asumsi itu. Apabila data tergolong sangat tidak lazim, hipotesis nihil ditolak. Ambang penilainya disebut tingkat signifikansi dan dilambangkan , yang ditetapkan sebelum data dilihat. Nilai yang lazim digunakan adalah 0,05. Nilai 0,05 menyatakan risiko menolak yang masih diterima, dan nilai lain tetap dapat dipilih dengan alasannya.
Dua keputusan yang mungkin adalah menolak atau gagal menolak . Kata gagal dipilih dengan sengaja, karena tidak menemukan cukup bukti berbeda dengan membuktikan tidak adanya efek. Perbedaan bahasa ini menjadi inti interpretasi yang hati-hati dan diuraikan lebih rinci setelah contoh dihitung.
Statistik uji pada dua kelompok#
Statistik uji (test statistic) mengubah jarak antara data teramati dan dugaan menjadi satu bilangan yang sebanding dengan sebarannya. Untuk membandingkan mean dua kelompok, uji t (t-test) membagi selisih mean sampel dengan standard error selisihnya, yaitu sebaran selisih yang wajar muncul dari kebetulan:
Selisih mean yang sama memberi statistik yang berbeda bergantung pada sebaran dan ukuran kelompoknya, dan itulah gunanya normalisasi ini. Nilai yang besar berarti selisih yang teramati jauh melampaui yang wajar terjadi karena kebetulan. Kode berikut menerapkan uji t dua sampel bebas dari scipy pada nilai ujian dua kelas berukuran 24, dengan argumen equal_var=False yang menggunakan bentuk rumus di atas tanpa mengasumsikan simpangan baku kedua populasi sama.
import numpy as np
from scipy import stats
# nilai ujian dua kelas pada materi yang sama (skala 0 sampai 100)
kelas_a = np.array([62, 65, 66, 68, 70, 71, 72, 73, 73, 74, 75, 75,
76, 76, 77, 78, 79, 80, 81, 82, 84, 85, 88, 90])
kelas_b = np.array([58, 61, 63, 65, 66, 67, 68, 69, 70, 71, 72, 72,
73, 74, 74, 75, 76, 77, 78, 79, 80, 82, 85, 88])
hasil = stats.ttest_ind(kelas_a, kelas_b, equal_var=False)
# ukuran efek: selisih mean dibagi simpangan baku gabungan
n1, n2 = len(kelas_a), len(kelas_b)
s_gabung = np.sqrt(((n1 - 1) * kelas_a.std(ddof=1) ** 2
+ (n2 - 1) * kelas_b.std(ddof=1) ** 2) / (n1 + n2 - 2))
d_cohen = (kelas_a.mean() - kelas_b.mean()) / s_gabung
print(f"mean kelas A : {kelas_a.mean():.2f}")
print(f"mean kelas B : {kelas_b.mean():.2f}")
print(f"selisih mean : {kelas_a.mean() - kelas_b.mean():.2f}")
print(f"statistik t : {hasil.statistic:.3f}")
print(f"p-value : {hasil.pvalue:.4f}")
print(f"ukuran efek d: {d_cohen:.2f}")mean kelas A : 75.83
mean kelas B : 72.62
selisih mean : 3.21
statistik t : 1.533
p-value : 0.1322
ukuran efek d: 0.44Kelas A rata-rata 75,83 dan kelas B 72,62, sehingga selisih sampelnya 3,21 poin. Statistik t sebesar 1,533 menghasilkan p-value 0,1322, yang melampaui ambang 0,05. Keputusannya adalah gagal menolak , dan data ini belum memberikan cukup bukti bahwa kedua kelas berbeda. Selisih 3,21 poin tetap nyata pada sampel yang ada, tetapi dengan ukuran kelompok 24 dan sebaran yang lebar, selisih sebesar itu masih dapat muncul dari kebetulan.
Selain p-value, keluaran menyertakan ukuran efek (effect size) berupa d sebesar 0,44, yaitu selisih mean yang dibagi simpangan baku gabungan. Angka ini menyatakan besar efek dalam satuan sebaran dan memudahkan perbandingan antarstudi. p-value dan ukuran efek menjawab pertanyaan yang berbeda, yaitu seberapa kuat bukti melawan dan seberapa besar efeknya, sehingga keduanya dilaporkan berdampingan.
Membaca keputusan pengujian#
Frasa menolak berarti data memberi bukti yang cukup melawan hipotesis nihil pada tingkat signifikansi yang ditetapkan. Frasa gagal menolak berarti bukti yang tersedia belum cukup, dan kalimat ini tidak setara dengan hipotesis nihil terbukti benar. Keputusan gagal menolak hanya menyatakan bahwa data seukuran ini belum sanggup membedakan efek dari kebetulan.
Kekeliruan lain yang sering terjadi adalah menyamakan signifikansi statistik dengan besar efek. Kode berikut mengulang uji t pada dua kelompok simulasi berseed tetap yang populasi aslinya hanya berbeda 0,4 poin, tetapi setiap kelompoknya berisi 8.000 data.
import numpy as np
from scipy import stats
rng = np.random.default_rng(42)
# dua kelompok dari populasi yang hampir sama: mean 75,4 dan 75,0, simpangan baku 8
a = rng.normal(75.4, 8, 8000)
b = rng.normal(75.0, 8, 8000)
hasil = stats.ttest_ind(a, b, equal_var=False)
keputusan = "tolak H0" if hasil.pvalue < 0.05 else "gagal tolak H0"
print(f"banyak data per kelompok : {len(a)}")
print(f"selisih mean sampel : {a.mean() - b.mean():.2f}")
print(f"statistik t : {hasil.statistic:.3f}")
print(f"p-value : {hasil.pvalue:.4f}")
print(f"keputusan pada alpha 0.05 : {keputusan}")banyak data per kelompok : 8000
selisih mean sampel : 0.39
statistik t : 3.077
p-value : 0.0021
keputusan pada alpha 0.05 : tolak H0Selisih mean sampel hanya 0,39 poin, namun p-value 0,0021 jauh di bawah ambang, sehingga ditolak. Ukuran sampel yang besar mengecilkan standard error, sehingga selisih kecil menjadi mudah dideteksi. Keputusan tolak pada selisih sekecil ini benar secara statistik dan tetap mungkin tidak berguna secara praktis, karena 0,39 poin pada skala 100 jarang mengubah apa pun. Signifikansi menjawab keandalan bukti, sedangkan ukuran efek menjawab kepentingannya, dan keputusan akhir menimbang keduanya.
Risiko salah keputusan#
Setiap pengujian dapat keliru dengan dua cara. Menolak padahal benar disebut kesalahan tipe I (Type I error), yaitu efek yang tidak ada dianggap ada. Gagal menolak padahal efeknya ada disebut kesalahan tipe II (Type II error). Tingkat signifikansi adalah batas peluang kesalahan tipe I yang ditoleransi, sedangkan peluang kesalahan tipe II terkait daya uji (power), yaitu peluang mendeteksi efek yang benar-benar ada.
| Keputusan | benar | salah |
|---|---|---|
| menolak | kesalahan tipe I | keputusan yang tepat |
| gagal menolak | keputusan yang tepat | kesalahan tipe II |
Kedua risiko saling menekan. Ambang yang diperketat mengurangi kesalahan tipe I sekaligus memperbesar kemungkinan gagal mendeteksi efek yang benar-benar ada. Cara paling langsung untuk menekan keduanya sekaligus adalah memperbesar ukuran sampel, dan pertimbangan inilah yang menjadi dasar perhitungan ukuran sampel dalam desain eksperimen. Ambang 5% pada pengujian dan tingkat kepercayaan 95% pada interval kepercayaan merupakan dua bentuk dari aturan yang sama, yaitu membatasi peluang kesalahan tipe I. Tabel di atas juga menjelaskan mengapa satu pengujian diperlakukan sebagai satu keputusan sekali jalan, karena pengujian yang diulang pada data yang sama melipatgandakan peluang kesalahan tipe I tanpa menambah bukti baru apa pun.
Ringkasan#
- Pengujian hipotesis menimbang data terhadap hipotesis nihil melalui statistik uji yang sebanding dengan sebarannya.
- p-value di bawah ambang yang ditetapkan lebih dulu berujung pada keputusan menolak , apabila tidak keputusannya gagal menolak.
- Gagal menolak bukan bukti bahwa benar, dan tolak pada sampel besar tidak menyatakan efek yang penting secara praktis.
- Kesalahan tipe I dibatasi oleh , sedangkan kesalahan tipe II ditekan dengan ukuran sampel dan efek yang lebih besar.
Referensi#
- scipy.stats — SciPy Project
— Dokumentasi stats.ttest_ind beserta argumen
equal_varpada uji t dua sampel bebas. - OpenIntro Statistics — OpenIntro — Bab pengujian hipotesis yang membahas hipotesis nihil, tingkat signifikansi, dan kesalahan keputusan.
- Dokumentasi resmi numpy — NumPy Project — Dokumentasi Generator untuk membangkitkan data simulasi dengan seed tetap.