Pengujian Hipotesis

Uji-t, literasi p-value, dan penyalahgunaan yang paling umum ditemui.

Daftar isi

Pengujian hipotesis menjadikan pertanyaan “apakah beda ini sungguhan” menjadi keputusan yang terukur, dengan p-value sebagai ukuran keheranannya terhadap data bila beda itu tidak ada. Topik ini mengeksekusi satu uji-t lengkap pada dataset latihan, membedah setiap komponen keputusannya, dan melatih literasi p-value yang menyelamatkan laporan dari tiga penyalahgunaan yang paling umum. Setelah membacanya, angka p-value pada laporan disertai hipotesisnya, ambangnya, dan ukuran efeknya.

Hipotesis nol dan struktur keputusan#

Setiap pengujian dimulai dari dua pernyataan yang bertanding. Hipotesis nol menyatakan ketiadaan efek, misalnya “rata-rata PM2.5 kedua stasiun sama”, sedangkan hipotesis alternatif menyatakan yang hendak dibuktikan, misalnya “rata-ratanya berbeda”. Pengujian tidak pernah membuktikan hipotesis nol, melainkan menilai seberapa keheranan data bila hipotesis nol yang benar.

Keputusan diambil dengan ambang yang disepakati sebelum data dilihat, dan ambang yang lazim adalah 0.05. Apabila p-value lebih kecil dari ambang, hipotesis nol ditolak dan perbedaan disebut nyata secara statistik, sedangkan p-value yang lebih besar hanya menyatakan bukti yang belum cukup, bukan bukti ketiadaan efek.

Uji-t dua sampel membandingkan rata-rata dua kelompok dengan mempertimbangkan sebaran dan ukuran keduanya. Varian Welch yang tidak menyetarakan simpangan kedua kelompok menjadi pilihan bawaan yang sehat, karena asumsi simpangan sama jarang benar pada data nyata.

Satu uji-t lengkap#

Pertanyaan dataset latihan ini tegas, yaitu apakah PM2.5 Stasiun B memang lebih tinggi daripada Stasiun A, atau selisih 21 unit yang terlihat pada modul segmentasi hanya kebetulan sampel. Skrip berikut menjalankan uji-t Welch atas kedua kelompok yang sudah dibersihkan.

python uji_t.py
"""Uji-t Welch: apakah PM2.5 dua stasiun berbeda?"""
from scipy import stats

import pandas as pd

data = pd.read_csv(
    "ukuran_udara.csv",
    na_values=["kosong", "-999.0"],
    dtype={"pm25": "string", "kelembapan": "string"},
)
data["pm25"] = data["pm25"].astype("float")
data["stasiun"] = (
    data["stasiun"].str.strip().str.replace(r"\s+", " ", regex=True).str.title()
)
sah = data[data["pm25"] < 500]

a = sah.loc[sah["stasiun"] == "Stasiun A", "pm25"].dropna()
b = sah.loc[sah["stasiun"] == "Stasiun B", "pm25"].dropna()

hasil = stats.ttest_ind(a, b, equal_var=False)
print(f"Stasiun A: n={len(a)} mean={a.mean():.1f} | Stasiun B: n={len(b)} mean={b.mean():.1f}")
print(f"t = {hasil.statistic:.2f} | p-value = {hasil.pvalue:.2e}")
text Keluaran
Stasiun A: n=26 mean=34.3 | Stasiun B: n=26 mean=55.4
t = -12.84 | p-value = 3.32e-17

Keluarannya tegas, yaitu p-value 3.32e-17 yang jauh di bawah ambang 0.05, sehingga hipotesis nol ditolak dan perbedaan kedua stasiun dinyatakan nyata. Statistik t yang bernilai -12.84 menyatakan jarak antar rata-rata yang sangat besar dibandingkan sebaran dalam kelompoknya, dan ukuran sampel 26 per kelompok cukup bagi asumsi CLT pada topik sebelumnya.

Kalimat laporannya menyatukan tiga bagian, yaitu ukuran efeknya, hasil pengujian beserta ambangnya, dan datanya, misalnya “PM2.5 Stasiun B rata-rata 21.1 lebih tinggi daripada Stasiun A, beda nyata (uji-t Welch, p < 0.001, n = 26 per kelompok)”.

Literasi p-value#

p-value adalah peluang memperoleh data yang sama atau lebih ekstrem dari data ini bila hipotesis nol benar, dan definisi itu melahirkan tiga kekeliruan yang paling sering menyebar. Pertama, p-value bukan peluang hipotesis nol benar, karena pengujian yang sama adalah peluang atas data, bukan atas hipotesis. Kedua, p-value besar bukan bukti ketiadaan efek, karena sampel kecil membuat hampir semua pengujian berakhir “belum cukup bukti”. Ketiga, p-value tidak menyatakan besarnya efek, sehingga perbedaan yang nyata tetap harus dilaporkan bersama ukurannya.

Praktik p-hacking adalah penyakit yang menyebar dari kekeliruan tersebut, yaitu mencoba banyak pemenggalan, ambang, atau varian pengujian sampai satu di antaranya berhasil. Setiap percobaan tambahan memperbesar peluang menemukan p-value kecil secara kebetulan, dan penangkalnya adalah menyatakan hipotesis beserta ambangnya sebelum data dilihat, dengan koreksi bila pengujian benar-benar banyak.

Pasangan yang selalu menyertai p-value adalah interval kepercayaan atas perbedaannya, karena interval menunjukkan besar efek beserta keraguannya, sementara p-value hanya menyatakan keheranan. Keduanya diperoleh dari perhitungan yang sama dan saling melengkapi pada laporan.

Kesalahan umum#

Kesalahan pertama adalah memilih ambang setelah melihat p-value. Ambang 0.05 yang melentur menjadi 0.1 agar hasil “lolos” menghancurkan makna seluruh prosedurnya, dan keputusan yang sama diulang pada setiap laporan berikutnya.

Kesalahan kedua adalah uji berulang pada data yang sama tanpa koreksi. Dua puluh pemenggalan dengan ambang 0.05 hampir pasti memunculkan satu p-value kecil secara kebetulan, dan daftar pengujian yang direncanakan lebih dahulu menjadi pengaman terbaiknya.

Kesalahan ketiga adalah menafsirkan p-value besar sebagai samanya kelompok. Kalimat yang benar adalah “bukti belum cukup untuk menolak hipotesis nol”, disertai interval kepercayaan yang menunjukkan seberapa besar efek masih mungkin.

Ringkasan#

  • Pengujian menilai keheranan data terhadap hipotesis nol, dengan ambang yang disepakati sebelum data dilihat.
  • Uji-t Welch membandingkan dua rata-rata tanpa asumsi simpangan sama, dan dataset latihan menghasilkan p-value 3.32e-17 untuk selisih 21.1.
  • p-value bukan peluang hipotesis benar, bukan besar efek, dan tidak menyatakan kesamaan bila besar.
  • Ukuran efek beserta intervalnya selalu menyertai p-value pada laporan.

Referensi#