Statistik Inferensial
Dari data sampel kecil ke kesimpulan tentang populasi dunia nyata
Mengapa Bulan Ini Penting?
Statistik deskriptif (Bulan 5-6) hanya menggambarkan data yang sudah Abbas miliki. Statistik inferensial melangkah lebih jauh: Abbas menarik kesimpulan tentang populasi yang jauh lebih besar hanya dari secuil sampel. Ini adalah fondasi dari penelitian ilmiah, uji klinis, survei nasional, dan A/B testing produk.
- Membuat klaim tentang dunia dari data terbatas. Abbas tidak perlu mensurvei 270 juta penduduk Indonesia untuk tahu rata-rata pengeluaran per bulan. Cukup sampel 1.000 orang yang representatif, lalu inferensial memberi Abbas angka beserta tingkat kepercayaannya.
- Probabilitas adalah bahasanya. Setiap kesimpulan inferensial datang dengan peluang: "kami 95% yakin rata-rata populasi ada di antara X dan Y". Tanpa probabilitas, tidak ada klaim yang bisa dipercaya.
- Distribusi normal adalah tulang punggung hampir semua uji statistik. Kenapa? Karena Central Limit Theorem membuktikan bahwa rata-rata sampel selalu mendekati distribusi normal, tidak peduli distribusi data aslinya seperti apa.
- Hypothesis testing adalah cara ilmuwan membuat keputusan. Apakah obat baru benar-benar lebih efektif? Apakah iklan versi B lebih baik dari A? Semua dijawab dengan kerangka "null vs alternative hypothesis" dan nilai p.
- p-value sering disalahpahami, bahkan oleh peneliti senior. Bulan ini Abbas akan paham betul apa arti p-value dan, sama pentingnya, apa yang bukan artinya. Ini keunggulan yang membedakan data analyst yang baik.
- Error tidak bisa dihindari, tapi bisa dikelola. Type I error (false positive) dan Type II error (false negative) selalu ada. Abbas akan belajar bagaimana memilih threshold yang tepat sesuai konteks masalah.
- Chi-square dan ANOVA memperluas kemampuan Abbas ke data kategorikal dan multi-grup. Tidak semua data numerik kontinu. Chi-square mengurus pertanyaan seperti "apakah gender mempengaruhi pilihan jurusan?" tanpa perlu asumsi distribusi normal pada data.
- Korelasi dan regresi adalah pintu masuk ke machine learning. Simple linear regression di bulan ini adalah fondasi dari seluruh supervised learning. Abbas yang memahami regresi dari akar statistiknya akan jauh lebih kuat saat masuk ke ML di bulan-bulan berikutnya.
- Semua konsep ini langsung bisa dipakai di dunia nyata. Apakah rata-rata nilai kelas Abbas berbeda secara signifikan dari rata-rata nasional? Apakah ada hubungan antara waktu belajar dan nilai? Semua pertanyaan ini dijawab persis dengan tools di bulan ini.
Statistik inferensial penuh dengan formula, tapi jangan hafal formula dulu. Setiap kali Abbas menemukan rumus baru, tanya dulu: "apa yang rumus ini sedang hitung, secara intuitif?" Intuisi dulu, formula kemudian. Bulan ini juga sangat berguna jika Abbas punya dataset nilai ujian kelas sendiri untuk dijadikan bahan latihan nyata.
Minggu 1: Probabilitas dan Distribusi
Sebelum bisa menguji hipotesis, Abbas perlu memahami bahasa yang dipakai statistik inferensial: probabilitas dan distribusi. Minggu ini membangun fondasi matematis yang akan dipakai sepanjang bulan.
Minggu 1 - Overview
▼Bayangkan sebuah kantong berisi 100 kelereng: 30 merah, 70 biru. Probabilitas mengambil merah adalah 30/100 = 0,3. Semua konsep probabilitas lanjutan hanyalah perluasan logika sederhana ini ke situasi yang lebih kompleks.
Pelajari tiga konsep dasar. Sample space (S) adalah himpunan semua kemungkinan hasil. Contoh: S untuk pelemparan dadu = {1,2,3,4,5,6}. Event (A) adalah subset dari S. Contoh: A = "muncul angka genap" = {2,4,6}. Probabilitas P(A) = jumlah elemen A dibagi jumlah elemen S = 3/6 = 0,5. Tulis definisi ini di buku catatan Abbas dengan contoh sendiri.
Pelajari dua aturan inti. P(A atau B) untuk event tidak saling eksklusif: P(A) + P(B) - P(A dan B). P(A dan B) untuk event independen: P(A) x P(B). Latihan: dari sebuah kelas 40 siswa, 20 suka matematika, 15 suka fisika, 8 suka keduanya. Berapa yang suka matematika atau fisika? Hitung manual dulu sebelum cek jawaban.
P(A|B) dibaca "probabilitas A terjadi, dengan syarat B sudah terjadi". Formula: P(A|B) = P(A dan B) / P(B). Contoh nyata: dari 100 pelajar, 60 lulus ujian, 40 mengikuti les. Dari 40 yang les, 35 lulus. P(lulus | ikut les) = 35/40 = 0,875. Bandingkan dengan P(lulus tanpa les) = 25/60. Apa kesimpulan Abbas?
Tulis di buku: kapan Abbas perlu memakai P(A atau B) vs P(A dan B)? Buat satu contoh dari kehidupan sehari-hari untuk masing-masing aturan.
Distribusi normal adalah peta yang menunjukkan di mana sebagian besar anggota populasi berada. Rata-rata (mean) adalah pusat peta. Standar deviasi adalah "skala" peta. Z-score adalah koordinat: "Abbas ada di posisi +1,5 standar deviasi dari rata-rata." Koordinat inilah yang membuat semua distribusi bisa dibandingkan dalam satuan yang sama.
Pelajari aturan empiris 68-95-99.7: 68% data ada dalam 1 standar deviasi dari mean, 95% dalam 2 SD, 99.7% dalam 3 SD. Gambarlah kurva normal di kertas, tandai batas-batas tersebut. Contoh: nilai ujian nasional rata-rata 70, SD = 10. Di mana 68% siswa berada? Di antara nilai 60 dan 80.
Formula: z = (x - mu) / sigma. Dimana x adalah nilai individual, mu adalah rata-rata populasi, sigma adalah standar deviasi. Latihan: nilai ujian Abbas = 82, rata-rata kelas = 74, SD = 8. Z = (82-74)/8 = 1,0. Artinya Abbas berada 1 SD di atas rata-rata. Hitung juga: jika nilai Budi = 65, berapa z-score Budi? Interpretasikan hasilnya.
Setelah tahu z-score, Abbas bisa tahu probabilitas. P(X lebih kecil dari x) bisa dicari dari tabel z atau fungsi scipy. Contoh: z = 1,0, P(X kurang dari 82) = 0,8413. Artinya 84,13% siswa di bawah nilai Abbas. Ini disebut "percentile". Latihan: hitung probabilitas siswa mendapat nilai di atas 90, jika mean=74, SD=8.
Sebuah tes IQ dirancang dengan mean 100 dan SD 15. Berapa persen populasi memiliki IQ di atas 130 (definisi "sangat gifted")? Berapa persen di bawah 85? Jawab dengan kode Python, bukan kalkulator.
Bayangkan distribusi nilai ujian kelas Abbas miring ke kanan (banyak yang dapat nilai rendah, sedikit yang tinggi). Jika Abbas ambil 30 sampel acak, hitung rata-ratanya, lalu ulangi proses itu 1.000 kali, distribusi dari 1.000 rata-rata itu akan berbentuk normal sempurna. Tidak peduli seberapa "aneh" distribusi aslinya. Ini CLT: distribusi sampling dari rata-rata selalu normal, jika n cukup besar (biasanya n lebih dari sama dengan 30).
Beda antara distribusi data asli (satu angka per observasi) dan distribusi sampling (distribusi dari statistik, misalnya rata-rata, yang dihitung berulang kali dari banyak sampel). CLT berbicara tentang distribusi sampling. Tulis perbedaan ini dengan kalimat Abbas sendiri.
Standard Deviation mengukur sebaran data individual. Standard Error mengukur sebaran rata-rata sampel. SE = SD / sqrt(n). Semakin besar sampel, SE semakin kecil, artinya rata-rata sampel semakin akurat. Buat tabel: hitung SE untuk n = 5, 10, 30, 100 dengan SD = 15.
Ulangi demonstrasi Aktivitas 2, tapi ganti distribusi seragam dengan distribusi eksponensial: populasi = np.random.exponential(scale=10, size=100000). Apakah distribusi sampling tetap normal untuk n=30? Bandingkan hasilnya.
Tulis jawaban: kenapa CLT sangat penting untuk dunia nyata? Petunjuk: apakah data pendapatan, data harga saham, data jumlah pengunjung toko berdistribusi normal? Tidak. Tapi dengan CLT, Abbas tetap bisa memakai uji statistik yang mengasumsikan normalitas.
Banyak yang salah mengira: "CI 95% artinya ada 95% kemungkinan parameter populasi ada di interval ini." Salah besar. Nilai parameter populasi itu tetap, tidak punya probabilitas. Yang punya probabilitas adalah metodenya: jika Abbas ulangi pengambilan sampel 100 kali dan hitung CI setiap kali, rata-rata 95 dari 100 CI itu akan mencakup nilai parameter yang benar. Bayangkan 100 jaring dilempar ke kolam: 95 jaring menangkap ikan, 5 tidak. CI bukan kotak di mana ikan berenang, tapi jaring yang cukup sering menangkap ikan.
CI = x-bar plus/minus z* x (SD / sqrt(n)). Dimana x-bar adalah rata-rata sampel, z* adalah nilai kritis (1,96 untuk 95%, 2,576 untuk 99%), SD adalah standar deviasi sampel, n adalah ukuran sampel. Latihan manual: sampel 36 siswa, rata-rata nilai = 78, SD = 12. Hitung CI 95%. Jawab: 78 plus/minus 1,96 x (12/sqrt(36)) = 78 plus/minus 3,92 = (74,08; 81,92).
Hitung CI 95% untuk data yang sama (mean=78, SD=12) tapi dengan n = 9, 36, 100, 400. Buat tabel. Apa polanya? Semakin besar n, semakin sempit CI. Artinya sampel yang lebih besar memberikan estimasi yang lebih presisi. Ini alasan survey yang bagus selalu menjelaskan "margin of error" bersama dengan ukuran sampel.
Jika SD populasi diketahui dan n besar (lebih dari 30): pakai distribusi Z. Jika SD populasi tidak diketahui (situasi nyata hampir selalu ini) dan/atau n kecil: pakai distribusi T (Student's t). Distribusi T lebih "lebar" untuk mengkompensasi ketidakpastian tambahan. Dengan n besar (lebih dari 100), Z dan T memberikan hasil hampir identik.
Cari artikel berita Indonesia yang menyebutkan "margin of error". Baca bagaimana mereka menjelaskan CI. Apakah penjelasannya benar secara statistik? Tulis analisis singkat di buku catatan.
Abbas akan mensimulasikan menjadi peneliti pendidikan. Tugas: dari sampel 50 siswa, estimasi rata-rata nilai ujian populasi nasional beserta confidence interval-nya. Lalu bandingkan: seberapa sering CI sampel berhasil "menangkap" nilai populasi sesungguhnya?
Ubah ukuran sampel dari 50 menjadi 10, lalu 200. Bagaimana lebar CI berubah? Apakah persen yang "menangkap" tetap sekitar 95%? Catat temuan Abbas.
Tulis paragraf singkat (5-7 kalimat): "Sebagai peneliti, saya mengambil sampel 50 siswa dari populasi besar dan mendapatkan rata-rata X dengan CI 95% (Y, Z). Ini berarti..." Sertakan interpretasi yang benar tentang apa CI 95% artinya.
Sebelum lanjut ke Minggu 2, pastikan Abbas bisa menjawab: (1) Apa perbedaan distribusi populasi dan distribusi sampling? (2) Kenapa CLT penting meski data tidak normal? (3) Apa artinya CI 95% secara tepat? Jika ada yang belum yakin, ulangi hari yang relevan.
Minggu 2: Hypothesis Testing
Hypothesis testing adalah mesin pengambilan keputusan berbasis data. Minggu ini Abbas belajar cara ilmuwan, dokter, dan product manager membuktikan atau menggugurkan klaim dengan data.
Minggu 2 - Overview
▼Dalam sidang, terdakwa "dianggap tidak bersalah" sampai terbukti sebaliknya. Null hypothesis (H0) adalah "tidak bersalah": tidak ada efek, tidak ada perbedaan. Alternative hypothesis (H1) adalah tuduhan jaksa: ada efek, ada perbedaan. Tugas Abbas adalah mengumpulkan bukti (data) yang cukup kuat untuk "menolak H0". P-value adalah seberapa mungkin bukti sekuat ini muncul jika H0 benar. Jika sangat tidak mungkin (p lebih kecil dari 0,05), Abbas "menolak H0".
Pelajari 5 langkah baku: (1) Rumuskan H0 dan H1. (2) Tentukan alpha (tingkat signifikansi, biasanya 0,05). (3) Hitung statistik uji dari data. (4) Hitung p-value. (5) Bandingkan p-value dengan alpha: jika p kurang dari alpha, tolak H0. Contoh: "Apakah rata-rata nilai kelas Abbas berbeda dari 75?" H0: mu = 75. H1: mu tidak sama dengan 75. Ini two-tailed test.
Definisi tepat: p-value adalah probabilitas mendapatkan hasil se-ekstrem atau lebih ekstrem dari data yang diamati, JIKA null hypothesis benar. Bukan probabilitas H0 benar. Bukan probabilitas Abbas membuat kesalahan. Tulis analogi Abbas sendiri untuk menjelaskan ini ke teman yang belum belajar statistik. Ini latihan pemahaman yang kuat.
Two-tailed: H1 adalah "berbeda" (tidak peduli lebih besar atau lebih kecil). One-tailed: H1 adalah "lebih besar" atau "lebih kecil" secara spesifik. Kapan pakai which? One-tailed lebih powerful, tapi hanya valid jika Abbas sudah punya alasan teoritis sebelum melihat data untuk menduga arah perbedaannya. Jangan pilih one-tailed hanya karena p-value menjadi lebih kecil.
Baca (atau tonton) dua sumber: (1) Artikel American Statistical Association 2016 tentang p-value. (2) Pencarian "p-hacking explained" di YouTube. Tulis: apa itu p-hacking, dan bagaimana cara menghindarinya? Petunjuk: pre-registration, multiple comparison correction (Bonferroni), melaporkan effect size bukan hanya p-value.
Untuk setiap pertanyaan berikut, tulis H0 dan H1 yang tepat: (a) Apakah obat baru menurunkan tekanan darah lebih dari 10 mmHg? (b) Apakah rata-rata waktu pengiriman toko A sama dengan toko B? (c) Apakah siswa yang sarapan mendapat nilai lebih tinggi dari yang tidak? Tentukan juga: one-tailed atau two-tailed, dan mengapa.
Bayangkan Abbas melempar dadu 30 kali dan mendapat rata-rata 3,7. Rata-rata dadu yang adil adalah 3,5. Apakah perbedaan 0,2 ini karena dadunya dicurang, atau hanya kebetulan variasi normal? T-test menjawab pertanyaan ini secara formal: ia mengukur seberapa jauh rata-rata sampel dari nilai hipotesis, dalam satuan standard error. Semakin besar t-statistic, semakin tidak mungkin perbedaan itu terjadi secara kebetulan.
t = (x-bar - mu0) / (s / sqrt(n)). Dimana x-bar adalah rata-rata sampel, mu0 adalah nilai hipotesis (dari H0), s adalah standar deviasi sampel, n adalah ukuran sampel. Nilai t besar (positif atau negatif) menunjukkan data jauh dari H0. Derajat kebebasan (df) = n - 1. Hitung manual: sampel 25 siswa, x-bar = 78, s = 10, H0: mu = 75. t = (78-75)/(10/sqrt(25)) = 3/2 = 1,5.
T-test memiliki asumsi yang harus dicek: (1) Data independen (satu observasi tidak mempengaruhi yang lain). (2) Data berdistribusi normal, atau n cukup besar (CLT membantu). (3) Tidak ada outlier ekstrem yang mendistorsi mean. Cara cek normalitas: histogram, Q-Q plot, atau Shapiro-Wilk test. Tulis kode: stat, p = stats.shapiro(nilai_kelas); print(p). Jika p lebih besar dari 0,05, asumsi normalitas terpenuhi.
P-value signifikan tidak berarti perbedaannya besar secara praktis. Effect size mengukur besarnya perbedaan. Cohen's d = (x-bar - mu0) / s. Panduan: d = 0,2 kecil, d = 0,5 sedang, d = 0,8 besar. Hitung d untuk contoh di atas. Apakah perbedaan yang signifikan secara statistik juga signifikan secara praktis? Tulis interpretasi Abbas.
Two-sample t-test: dua kelompok berbeda orang. Contoh: kelas A vs kelas B. Pertanyaan: apakah rata-rata dua kelompok independen ini berbeda? Paired t-test: kelompok yang sama, dua kondisi berbeda. Contoh: nilai sebelum dan sesudah les tambahan siswa yang sama. Karena setiap orang dibandingkan dengan dirinya sendiri, variasi antar-individu "dikurangi" dan tes ini lebih powerful. Pilih yang salah, kesimpulan bisa menyesatkan.
Buat tabel keputusan: baris = skenario, kolom = jenis t-test. Skenario: (a) Bandingkan gaji pria dan wanita di perusahaan berbeda. (b) Bandingkan berat badan pasien sebelum dan sesudah diet 3 bulan. (c) Bandingkan nilai ujian dua sekolah berbeda. (d) Bandingkan kecepatan membaca siswa sebelum dan sesudah program literasi. Isi kolom dengan "Independent" atau "Paired" beserta alasannya.
Coba pg.ttest(kelas_a, kelas_b, paired=False) dan pg.ttest(sebelum, sesudah, paired=True). Perhatikan kolom "power" di output. Power adalah probabilitas mendeteksi perbedaan nyata jika memang ada. Power yang ideal adalah 0,80 atau lebih. Jika power rendah, apa yang bisa Abbas lakukan? (Jawab: perbesar sampel.)
Detektor asap sengaja dirancang sensitif: lebih baik bunyi alarm karena asap rokok (false positive / Type I error) daripada tidak bunyi saat ada kebakaran nyata (false negative / Type II error). Sebaliknya, dokter yang mendiagnosis kanker lebih takut melewatkan pasien yang benar-benar sakit (Type II error) karena konsekuensinya fatal. Setiap domain punya toleransi berbeda terhadap dua jenis error ini.
Buat tabel: baris = keputusan Abbas (Tolak H0 / Gagal Tolak H0), kolom = realita (H0 Benar / H0 Salah). Isi empat sel: (1) Tolak H0 padahal H0 Benar = Type I Error (alpha). (2) Tolak H0 padahal H0 Salah = Keputusan Benar (Power = 1 - beta). (3) Gagal Tolak H0 padahal H0 Benar = Keputusan Benar (1 - alpha). (4) Gagal Tolak H0 padahal H0 Salah = Type II Error (beta). Hafal tabel ini.
Alpha = P(Type I Error). Beta = P(Type II Error). Power = 1 - Beta. Tradeoff utama: menurunkan alpha (lebih ketat) meningkatkan beta (lebih sering melewatkan efek nyata). Analogi: jika hakim menjadi lebih ketat standar pembuktiannya, lebih sedikit orang tidak bersalah dihukum (alpha turun), tapi lebih banyak orang bersalah yang lolos (beta naik). Ada empat cara meningkatkan power tanpa mengorbankan alpha: perbesar n, perbesar effect size (tidak selalu bisa dikontrol), kurangi variasi data, pakai one-tailed test jika tepat.
Untuk setiap skenario berikut, tentukan alpha yang tepat dan jelaskan mengapa: (a) Uji apakah iklan baru meningkatkan klik 5%. (b) Uji apakah vaksin baru lebih aman dari vaksin lama. (c) Uji apakah warna tombol checkout mempengaruhi konversi. (d) Uji apakah ada hubungan antara makanan tertentu dan kanker. Petunjuk: konsekuensi Type I dan Type II error berbeda drastis di setiap kasus.
Tulis paragraf tentang cara melaporkan hasil t-test yang baik: harus menyertakan (1) nilai t dan p-value, (2) effect size, (3) CI, (4) power jika relevan, (5) interpretasi dalam konteks masalah. Ini standar pelaporan yang dipakai jurnal ilmiah.
Abbas berperan sebagai data analyst di sebuah sekolah. Kepala sekolah ingin tahu: apakah metode pengajaran baru di Kelas B menghasilkan nilai lebih tinggi dari Kelas A yang pakai metode konvensional? Abbas harus menjawab dengan data, bukan opini.
Tulis laporan singkat (setengah halaman) yang ditujukan kepada kepala sekolah non-statistisi. Laporan harus mencakup: pertanyaan penelitian, metodologi (tanpa jargon berlebihan), hasil (p-value, effect size dalam bahasa awam), kesimpulan, dan rekomendasi. Gunakan kalimat seperti "Dengan tingkat kepercayaan 95%, metode baru terbukti meningkatkan nilai rata-rata sebesar X poin."
Pastikan Abbas bisa membedakan: (1) Kapan pakai one-sample vs two-sample vs paired t-test. (2) Apa arti p-value 0,03 secara tepat. (3) Mengapa effect size sama pentingnya dengan p-value. (4) Apa bedanya Type I dan Type II error dalam konteks keputusan nyata.
Minggu 3: Chi-Square dan ANOVA
T-test hanya bisa membandingkan dua kelompok dan hanya untuk data numerik. Minggu ini Abbas mendapat dua senjata baru: chi-square untuk data kategorikal, dan ANOVA untuk membandingkan tiga kelompok atau lebih sekaligus.
Minggu 3 - Overview
▼Bayangkan Abbas punya tabel: baris = jenis kelamin (pria/wanita), kolom = pilihan jurusan (IPA/IPS/Bahasa). Jika gender dan pilihan jurusan tidak berhubungan, distribusi pilihan jurusan harusnya sama untuk pria dan wanita. Chi-square mengukur seberapa jauh frekuensi yang diamati (observed) dari yang diharapkan jika tidak ada hubungan (expected). Semakin jauh, semakin kuat bukti bahwa ada hubungan antara dua variabel kategorik tersebut.
Tabel kontingensi (contingency table) adalah tabel silang frekuensi dua variabel kategorikal. Buat manual: 200 siswa, 100 pria dan 100 wanita. Pria memilih IPA 60, IPS 30, Bahasa 10. Wanita memilih IPA 40, IPS 35, Bahasa 25. Masukkan ke tabel 2x3. Hitung juga "row total" dan "column total" dan "grand total". Ini fondasi chi-square.
Expected frequency untuk sel (i, j) = (row total i x column total j) / grand total. Untuk sel "Pria, IPA": expected = (100 x 100) / 200 = 50. Hitung expected untuk semua 6 sel. Bandingkan dengan observed. Sel mana yang paling jauh menyimpang? Ini yang paling berkontribusi pada nilai chi-square.
Chi-square punya asumsi yang sering diabaikan: (1) Observasi independen. (2) Expected frequency di setiap sel minimal 5. Jika ada sel dengan expected kurang dari 5, pakai Fisher's Exact Test (untuk tabel 2x2) atau gabungkan kategori. Cek apakah data di Aktivitas 3 memenuhi syarat ini. Apa yang Abbas lakukan jika tidak terpenuhi?
Jika resep kue mengatakan tepung:gula:mentega = 3:2:1, setelah menganalisis 100 kue produksi, Abbas ingin tahu: apakah komposisi nyata sesuai dengan resep? Chi-square goodness of fit membandingkan frekuensi observasi dengan frekuensi yang diharapkan dari teori atau distribusi yang telah ditentukan sebelumnya. Ini berbeda dari test of independence karena hanya melibatkan satu variabel, bukan dua.
H0: distribusi data sesuai dengan distribusi yang dihipotesiskan. H1: distribusi tidak sesuai. Contoh klasik: Mendel mengamati 787 biji kacang hijau dan 277 kuning (rasio 3:1 teoritis). Apakah data Mendel cocok dengan teori? Expected: 787+277 = 1064 total. Ekspektasi 3:1 berarti 798 hijau, 266 kuning. Hitung chi2 manual: sum((O-E)^2 / E) = (787-798)^2/798 + (277-266)^2/266 = 0,151 + 0,455 = 0,606.
Goodness of fit juga bisa menguji apakah data berdistribusi normal menggunakan uji Kolmogorov-Smirnov. Buat kode: stat, p = stats.kstest(data, 'norm', args=(np.mean(data), np.std(data))). Coba dengan data yang jelas normal (dari np.random.normal) dan data yang jelas tidak normal (dari np.random.exponential). Bandingkan hasilnya. Catatan: untuk n kecil, Shapiro-Wilk lebih direkomendasikan.
Tulis 3 skenario nyata di dunia data analyst di mana goodness of fit dipakai: (a) Memeriksa apakah distribusi error model machine learning mendekati normal. (b) Memeriksa apakah distribusi permintaan produk per hari sesuai distribusi Poisson (untuk perencanaan stok). (c) Memeriksa apakah proporsi konversi traffic dari berbagai channel sesuai dengan target yang ditetapkan marketing. Tulis H0 dan H1 untuk setiap skenario.
Buat bar chart yang membandingkan observed vs expected untuk kasus grade di Aktivitas 2. Tambahkan label perbedaan (O-E) di atas setiap pasang bar. Ini cara yang jelas untuk menunjukkan sel mana yang paling "tidak sesuai" harapan.
Jika Abbas ingin membandingkan 4 kelompok, ada 6 pasang perbandingan yang harus dilakukan dengan t-test. Dengan alpha = 0,05, setiap uji punya 5% peluang false positive. Untuk 6 uji sekaligus, peluang setidaknya satu false positive melonjak ke 1 - (0,95)^6 = 26,5%. ANOVA menguji semua kelompok sekaligus dalam satu uji, sehingga peluang Type I Error tetap terkontrol di 5%.
ANOVA membandingkan dua sumber variasi. "Between-group variance": seberapa jauh rata-rata setiap kelompok dari grand mean. "Within-group variance": seberapa bervariasinya data di dalam setiap kelompok. Jika between-group variance jauh lebih besar dari within-group variance, kemungkinan kelompok memang berbeda. Rasio ini disebut F-statistic: F = MS_between / MS_within. F yang besar menunjukkan ada kelompok yang berbeda.
ANOVA punya 3 asumsi: (1) Normalitas residual. Cek dengan Q-Q plot atau Shapiro-Wilk per kelompok. (2) Homogenitas varians (homoscedasticity). Cek dengan Levene test. (3) Independensi observasi. Jika asumsi normalitas atau homogenitas varians dilanggar, gunakan alternatif non-parametrik: Kruskal-Wallis test (stats.kruskal(ipa, ips, bahasa, smk)). Tulis kode Kruskal-Wallis dan bandingkan p-value-nya dengan ANOVA.
ANOVA menghasilkan tabel ANOVA (Sum of Squares, df, Mean Squares, F, p). Latihan membaca tabel: SS_between menunjukkan total variasi yang "dijelaskan" oleh perbedaan kelompok. SS_within menunjukkan variasi "residual" dalam kelompok. Eta-squared = SS_between / SS_total adalah proporsi variasi yang dijelaskan oleh kelompok. Hitung eta-squared dari output pingouin dan interpretasikan.
ANOVA yang signifikan (p lebih kecil dari 0,05) hanya memberitahu bahwa setidaknya satu kelompok berbeda dari yang lain. Tapi ANOVA tidak bilang kelompok mana. Seperti seorang detektif yang tahu bahwa ada pelaku di antara 4 tersangka, tapi belum tahu siapa. Post-hoc test (khususnya Tukey HSD) kemudian membandingkan semua pasang kelompok, sambil menyesuaikan untuk multiple comparison sehingga Type I Error tetap terkontrol.
Aturan baku: post-hoc test hanya dilakukan JIKA ANOVA signifikan. Jika ANOVA tidak signifikan, tidak ada kelompok yang berbeda, jadi tidak ada yang perlu dibandingkan lebih lanjut. Jangan lakukan post-hoc test sebelum melihat hasil ANOVA, ini data dredging. Selain Tukey HSD, ada Bonferroni, Scheffe, dan Dunn (untuk non-parametrik). Tukey HSD adalah pilihan default yang seimbang untuk banyak kasus.
Bonferroni correction lebih konservatif (lebih sulit menolak H0) tapi lebih universal. Tukey lebih powerful tapi khusus untuk perbandingan semua pasang kelompok. Coba: pg.pairwise_tests(data=df_long, dv='nilai', between='jurusan', padjust='bonf'). Bandingkan p-value Bonferroni vs Tukey. Mana yang lebih sering signifikan? Mengapa?
Buat flowchart keputusan singkat di buku: (1) Ingin bandingkan 2 kelompok numerik independen? Pakai t-test. (2) Ingin bandingkan lebih dari 2 kelompok? Pakai ANOVA. (3) ANOVA signifikan? Lanjut ke Tukey HSD. (4) Data kategorikal, ingin tahu hubungan antar variabel? Pakai chi-square independence. (5) Data tidak normal atau sampel sangat kecil? Pakai non-parametrik (Mann-Whitney atau Kruskal-Wallis).
Abbas mendapat tugas dari kepala sekolah: "Buktikan dengan data apakah pilihan jurusan siswa berhubungan dengan performa matematika mereka." Ini adalah analisis ANOVA lengkap dari nol: EDA, asumsi, uji, post-hoc, visualisasi, dan pelaporan.
Buat figure dengan 2 subplots: (1) Boxplot per jurusan dengan warna berbeda dan grand mean ditandai. (2) Heatmap p-value dari semua pasang perbandingan Tukey (buat matrix simetris 4x4, warna merah jika signifikan, abu jika tidak). Simpan sebagai anova_final.png. Ini jenis visualisasi yang biasa muncul di paper ilmiah.
Tulis laporan satu halaman dalam format yang bisa dipresentasikan ke guru/kepala sekolah. Struktur: (1) Pertanyaan penelitian. (2) Data yang digunakan (n per kelompok, distribusi). (3) Hasil ANOVA (F, df, p, eta-squared dalam bahasa awam). (4) Hasil post-hoc: pasang jurusan mana yang berbeda signifikan dan berapa besar perbedaannya. (5) Kesimpulan dan implikasi. Gunakan kalimat: "Jurusan berpengaruh signifikan terhadap nilai matematika, F(3,121) = X, p = Y, eta-squared = Z."
Pastikan Abbas paham: (1) Perbedaan chi-square independence vs goodness of fit. (2) Mengapa ANOVA lebih baik dari banyak t-test berulang. (3) Kapan post-hoc test dilakukan dan mengapa. (4) Cara membaca tabel ANOVA dan menginterpretasikan eta-squared. Jika ragu, revisit hari yang relevan sebelum lanjut ke Minggu 4.
Minggu 4: Korelasi dan Regresi Linear Sederhana
Minggu terakhir Bulan 7 ini menghubungkan statistik inferensial ke prediksi. Korelasi mengukur kekuatan hubungan dua variabel, regresi membangun model prediksi. Ini pintu masuk langsung ke machine learning.
Minggu 4 - Overview
▼Bayangkan dua penari. Jika setiap kali penari A melangkah kanan, penari B juga melangkah kanan: korelasi sempurna positif (r = +1). Jika setiap kali A naik, B turun secara konsisten: korelasi sempurna negatif (r = -1). Jika gerakan mereka sama sekali tidak berhubungan: r = 0. Pearson r hanya mengukur hubungan LINEAR, bukan semua bentuk hubungan. Dua variabel bisa sangat berhubungan (kurva U) tapi r mendekati nol.
r = sum((xi - x-bar)(yi - y-bar)) / sqrt(sum((xi - x-bar)^2) x sum((yi - y-bar)^2)). Ini adalah kovarians dibagi perkalian standar deviasi keduanya. Interpretasi: r antara 0,1 dan 0,3 adalah korelasi lemah. r antara 0,3 dan 0,7 adalah sedang. r di atas 0,7 adalah kuat. r negatif menunjukkan arah berlawanan. Hitung manual untuk 5 pasang data: jam_belajar = [2,4,5,7,9] dan nilai = [55,65,70,80,90].
Buat 4 scatter plot: (1) r mendekati +1. (2) r mendekati -0,8. (3) r mendekati 0 (tidak berhubungan). (4) Hubungan kuat tapi non-linear (parabola) dengan r mendekati 0. Ini menunjukkan keterbatasan Pearson r: ia tidak menangkap hubungan non-linear. Untuk kasus 4, gunakan Spearman correlation (stats.spearmanr) dan lihat apakah hasilnya lebih tinggi.
Dari correlation matrix yang dihasilkan, tulis interpretasi untuk setiap pasang variabel yang r-nya lebih besar dari 0,3 atau lebih kecil dari -0,3. Format: "Terdapat korelasi [kuat/sedang/lemah] [positif/negatif] antara X dan Y (r = Z), artinya..."
Jika A dan B berkorelasi kuat, ada tiga kemungkinan: (1) A menyebabkan B. (2) B menyebabkan A. (3) Ada variabel ketiga C yang menyebabkan keduanya (confounding variable). Korelasi tidak bisa membedakan ketiganya. Hanya desain penelitian yang tepat (eksperimen terkontrol, randomized controlled trial) yang bisa membuktikan kausalitas.
Pelajari dan diskusikan 5 contoh korelasi yang mengecoh: (1) Konsumsi es krim berkorelasi dengan angka tenggelam. Penyebab sebenarnya: musim panas (confounding). (2) Jumlah Nicolas Cage muncul di film per tahun berkorelasi dengan kematian akibat tenggelam di kolam renang. Ini korelasi kebetulan murni (spurious). (3) Negara dengan cokelat terbanyak punya pemenang Nobel terbanyak. Kemungkinan: kekayaan negara adalah confounding variable. (4) Sepatu yang lebih besar berkorelasi dengan membaca lebih baik pada anak SD. Penyebab: usia yang lebih tua menyebabkan keduanya. (5) Pemakai topi berkorelasi dengan lebih pintar. Kemungkinan confounding: latar belakang sosial ekonomi. Tulis analisis Abbas untuk setiap kasus.
Pelajari tiga pendekatan: (1) Randomized Controlled Trial (RCT): assign random ke grup treatment vs kontrol. Ini gold standard. Contoh: uji vaksin. (2) Natural experiment: manfaatkan kejadian alami yang bertindak seperti randomisasi. Contoh: siswa yang lahir sedikit sebelum batas usia masuk sekolah vs sedikit sesudahnya. (3) Difference-in-differences, instrumental variables, regression discontinuity: teknik ekonometrika untuk estimasi kausal dari data observasional. Tulis mana yang paling mungkin dipakai untuk menguji: "apakah les menambah nilai?", "apakah makan sarapan meningkatkan konsentrasi?".
Kunjungi spuriouscorrelations.com (jika tersedia) atau cari "funny spurious correlations" di Google. Temukan 2 korelasi absurd yang ternyata r-nya di atas 0,9. Tulis: apa yang membuat korelasi ini spurious? Apakah ada confounding variable, atau ini murni kebetulan dari data?
Buat checklist 5 pertanyaan yang harus Abbas tanyakan setiap kali melihat klaim "X menyebabkan Y" dalam berita atau artikel: (1) Apakah ini hanya berdasarkan korelasi? (2) Apakah ada desain eksperimen? (3) Apakah ada confounding variable yang mungkin? (4) Apakah arah kausalitas bisa terbalik? (5) Apakah sample size cukup besar? Framework ini berlaku seumur hidup, jauh melampaui statistik.
Korelasi menjawab: "seberapa kuat hubungan X dan Y?" Regresi menjawab: "jika X berubah satu unit, berapa Y berubah, dan bisa kita prediksi Y untuk nilai X baru?" Garis regresi y = b0 + b1*x adalah garis yang meminimalkan total kuadrat jarak vertikal dari setiap titik data ke garis (Ordinary Least Squares). b1 adalah kemiringan: "setiap tambahan satu jam belajar, nilai naik b1 poin." b0 adalah intersep: "nilai prediksi jika jam belajar nol."
Residual = nilai aktual - nilai prediksi = yi - y-hat. OLS mencari b0 dan b1 yang meminimalkan sum(residual^2). Kenapa kuadrat? Supaya error positif dan negatif tidak saling menghilangkan, dan error besar dihukum lebih berat dari error kecil. Hitung manual b1 = r x (SD_y / SD_x) dan b0 = mean_y - b1 x mean_x untuk data jam belajar vs nilai dari Hari 1.
Regresi OLS punya 4 asumsi utama (LINE): (L) Linearity: hubungan X dan Y benar-benar linear. (I) Independence: residual tidak saling berkorelasi. (N) Normality: residual berdistribusi normal. (E) Equal variance (homoscedasticity): varians residual konstan di semua nilai X. Pelanggaran asumsi ini tidak membuat model salah total, tapi membuat inferensi (p-value, CI) tidak dapat dipercaya. Tulis cara cek setiap asumsi ini.
Model regresi hanya valid untuk range X yang ada di data training. Jika Abbas membangun model dari data jam belajar 1-10 jam, jangan gunakan model untuk memprediksi nilai siswa yang belajar 20 jam. Ini disebut ekstrapolasi yang berbahaya. Buat contoh: prediksi nilai untuk jam=0, 5, 10, 15, 20. Mana yang masuk akal, mana yang tidak? Bagaimana cara Abbas mengidentifikasi batas aman prediksi?
Rยฒ menjawab: "berapa persen variasi Y bisa dijelaskan model?" Residual plot menjawab: "apakah ada pola yang tidak ditangkap model?" (Pola di residual = model masih punya ruang perbaikan.) RMSE menjawab: "rata-rata seberapa jauh prediksi model dari nilai aktual, dalam satuan yang sama dengan Y?" Ketiganya saling melengkapi dan tidak bisa digantikan satu sama lain.
Rยฒ = 1 - (SS_residual / SS_total). Nilai 0 berarti model tidak lebih baik dari prediksi rata-rata. Nilai 1 berarti model sempurna. Rยฒ selalu naik jika kita tambah variabel baru, bahkan jika variabel itu tidak berguna. Adjusted Rยฒ menghukum penambahan variabel tidak berguna: Adj-Rยฒ = 1 - (1-Rยฒ) x (n-1)/(n-k-1), di mana k adalah jumlah prediktor. Untuk simple linear regression, keduanya hampir sama. Adj-Rยฒ penting saat kita mulai membandingkan model dengan jumlah variabel berbeda.
Output model.summary() punya tiga bagian. Bagian atas: info umum model (Rยฒ, Adj-Rยฒ, F-statistic, AIC, BIC). Bagian tengah: koefisien (nilai, standard error, t-statistic, p-value, 95% CI). Bagian bawah: diagnostik (Durbin-Watson untuk autokorelasi, Jarque-Bera untuk normalitas residual, Condition Number untuk multikolinearitas). Pelajari setiap baris dan tulis interpretasinya.
Buat dua model: (1) Model baik: variabel prediktor yang memang berhubungan. (2) Model buruk: variabel prediktor yang tidak ada hubungannya (random noise). Bandingkan Rยฒ, RMSE, dan residual plot keduanya. Apa yang membedakan diagnostik model baik vs buruk? Ini melatih intuisi untuk mendeteksi model yang overfit atau underfit.
Abbas membangun model prediksi end-to-end: dari raw data ke laporan prediksi yang siap dipresentasikan. Ini latihan workflow data analyst yang sesungguhnya: collect, explore, model, evaluate, communicate.
Tulis laporan mini project satu halaman penuh dengan struktur: (1) Judul dan latar belakang. (2) Data: n siswa, variabel yang diukur, statistik deskriptif. (3) Analisis korelasi: r antara jam belajar dan nilai UAS, interpretasi. (4) Model regresi: persamaan, Rยฒ, RMSE, interpretasi koefisien. (5) Contoh prediksi: "Siswa yang belajar 5 jam per hari diprediksi mendapat nilai UAS X, dengan interval prediksi 95% dari Y sampai Z." (6) Keterbatasan model: apa yang tidak diukur, bahaya ekstrapolasi, korelasi bukan kausalitas. Ini template yang bisa Abbas pakai untuk setiap proyek analisis ke depannya.
Abbas telah menguasai: probabilitas dan distribusi normal, Central Limit Theorem, confidence interval, t-test (one-sample, two-sample, paired), chi-square (independence dan goodness of fit), one-way ANOVA dengan post-hoc Tukey, korelasi Pearson, dan regresi linear sederhana. Ini adalah fondasi statistik inferensial yang dipakai di hampir semua penelitian kuantitatif. Bulan 8 akan membangun di atas fondasi ini untuk masuk ke machine learning.
Buku Referensi Bulan 7
Empat buku ini dipilih karena saling melengkapi: dari intuisi visual, ke rigur matematis, ke aplikasi Python, hingga ke pemikiran kritis tentang kausalitas.
Statistics
Freeman, edisi ke-4
Buku terbaik untuk membangun intuisi statistik tanpa tenggelam dalam matematika. Pendekatan Freedman sangat naratif: setiap konsep diceritakan dari konteks dunia nyata sebelum formula ditampilkan. Khususnya berguna untuk Bab probabilitas, distribusi, dan hypothesis testing di Minggu 1 dan 2. Abbas akan sering kembali ke buku ini untuk "rereset" pemahaman ketika merasa bingung dengan derivasi matematis.
Bab 13-19 (sampling, chance error, confidence intervals), Bab 26-29 (tests of significance, chi-square). Baca naratifnya dulu, abaikan latihan soal yang terlalu teoritis, kerjakan yang punya konteks nyata.
Naked Statistics: Stripping the Dread from the Data
W. W. Norton, 2013
Wheelan menulis statistik seperti seorang jurnalis bercerita: penuh anekdot, humor, dan contoh dari kehidupan nyata mulai dari Liga Baseball hingga uji klinis vaksin. Tidak ada satu formula pun yang ditampilkan tanpa konteks yang membuat pembaca peduli. Buku ini adalah antidote terbaik jika Abbas mulai merasa statistik kering dan abstrak. Baca satu bab per malam sebagai bacaan ringan sebelum tidur, bukan sebagai buku teks.
Bab 7 (Central Limit Theorem), Bab 8 (inference), Bab 9 (hypothesis testing), Bab 11 (regression). Buku ini tidak akan mengajarkan cara coding, tapi akan membuat Abbas paham KENAPA kita melakukan semua ini.
Think Stats: Exploratory Data Analysis in Python
O'Reilly, edisi ke-2 (tersedia gratis online)
Downey mengajarkan statistik melalui simulasi komputer, bukan derivasi matematika. Ketika konsep distribusi sampling muncul, Abbas tidak menghafal rumus, melainkan mensimulasikannya sendiri dan mengamati hasilnya. Pendekatan ini sangat cocok dengan cara Abbas sudah belajar di bulan-bulan sebelumnya. Buku ini bisa didownload gratis dari greenteapress.com dan semua kode tersedia di GitHub.
Buka Jupyter Notebook, baca satu seksi, lalu langsung run kodenya, modifikasi parameter, dan amati apa yang berubah. Jangan sekadar membaca. Bab 6 (probability), Bab 7 (estimation), Bab 9 (hypothesis testing) adalah yang paling relevan untuk Bulan 7.
The Book of Why: The New Science of Cause and Effect
Basic Books, 2018
Pearl adalah pemenang Turing Award yang revolusioner. Buku ini mempertanyakan fondasi statistik klasik: bahwa korelasi tidak pernah bisa berbicara tentang kausalitas tanpa intervensi. Ia memperkenalkan "causal ladder": association (korelasi), intervention (do-calculus), dan counterfactual. Buku ini bukan untuk dipahami semuanya di Bulan 7, tapi untuk mulai Abbas sadari: statistik yang sudah dipelajari baru berada di anak tangga pertama. Ini bacaan untuk pembentukan mindset, bukan untuk hafalan teknis.
Baca Bab 1 dan 2 setelah selesai Hari 2 Minggu 4 (correlation is not causation). Pearl akan memperdalam intuisi Abbas tentang mengapa "correlation is not causation" bukan sekadar peringatan, melainkan perbedaan fundamental tentang cara kerja dunia.
Tools dan Library Bulan 7
Enam library ini membentuk toolkit statistik inferensial Python yang lengkap. Masing-masing punya kekuatan berbeda dan saling melengkapi, bukan saling menggantikan.
SciPy (scipy.stats)
Library statistik inferensial utama Python. Mencakup semua distribusi probabilitas, uji hipotesis, goodness of fit, korelasi, dan banyak lagi. Ini adalah pilihan default pertama Abbas untuk hampir semua uji statistik di Bulan 7.
stats.ttest_1samp() - one-sample t-teststats.ttest_ind() - two-sample t-test independenstats.ttest_rel() - paired t-teststats.f_oneway() - one-way ANOVAstats.chi2_contingency() - chi-square independencestats.chisquare() - chi-square goodness of fitstats.pearsonr() - korelasi Pearson + p-valuestats.spearmanr() - korelasi Spearman (non-parametrik)stats.linregress() - regresi linear sederhanastats.norm.cdf() / .pdf() - distribusi normalstats.shapiro() - uji normalitasstats.levene() - uji homogenitas variansStatsmodels
Library untuk model statistik yang lebih lengkap, dengan output yang mendekati format R dan SPSS. Khususnya kuat untuk regresi: output-nya mencakup koefisien, standard error, t-stat, p-value, CI, Rยฒ, F-test, dan diagnostik dalam satu blok. Ini yang dipakai di Minggu 4 untuk regresi linear.
sm.OLS(y, X).fit() - Ordinary Least Squares regressionmodel.summary() - output lengkap mirip format jurnalmodel.get_prediction() - prediksi dengan confidence/prediction intervalsm.add_constant(X) - tambah intercept ke matrix prediktormodel.resid - residual untuk diagnostikmodel.rsquared, .rsquared_adj - Rยฒ dan Adjusted Rยฒmodel.fittedvalues - nilai prediksi (y-hat)sklearn cocok untuk prediksi (machine learning). statsmodels cocok untuk inferensi (p-value, CI, hipotesis). Di Bulan 7 Abbas butuh inferensi, bukan hanya prediksi. Bulan 9 (ML) akan banyak memakai sklearn.
Pingouin
Library statistik yang dirancang khusus untuk psikologi dan ilmu sosial, tapi sangat berguna untuk semua domain. Kekuatannya: output sangat informatif (selalu menyertakan effect size dan power), sintaks bersih, dan mendukung banyak uji yang scipy tidak cover langsung (Tukey HSD, partial correlation, power analysis).
pg.ttest(x, y) - t-test dengan output lengkap + cohen-d + powerpg.anova(data, dv, between) - ANOVA dengan eta-squaredpg.pairwise_tukey(data, dv, between) - Tukey HSD post-hocpg.corr(x, y) - korelasi + CI + powerpg.partial_corr(data, x, y, covar) - partial correlationpg.power_ttest(d, n, alpha) - power analysis untuk t-testpg.chi2_independence(data, x, y) - chi-square dengan Cramer VNumPy
Fondasi dari semua komputasi numerik Python. Sudah dipakai sejak Bulan 3, tapi di Bulan 7 Abbas menggunakannya untuk hal yang lebih spesifik: simulasi distribusi, hitung statistik deskriptif yang dibutuhkan sebelum uji inferensial, dan manipulasi array data untuk dimasukkan ke scipy atau statsmodels.
np.random.normal(mu, sigma, n) - generate data normalnp.random.seed(n) - reproducibilitynp.mean(), np.std(ddof=1) - mean dan sample SDnp.sqrt(), np.abs() - operasi matematika dasarnp.concatenate(), np.arange() - manipulasi arraynp.polyfit(x, y, 1) - quick linear fit untuk visualisasiMatplotlib
Library visualisasi utama yang sudah dikenal sejak Bulan 4. Di Bulan 7, Abbas memakai matplotlib untuk jenis plot baru yang relevan untuk statistik inferensial: residual plots, Q-Q plots, histogram distribusi, visualisasi CI, dan boxplot multi-grup untuk ANOVA. Setiap analisis statistik harus selalu disertai visualisasi.
plt.subplots(rows, cols) - multi-panel figure untuk diagnostikax.boxplot(data, labels, patch_artist) - boxplot untuk ANOVAax.scatter(x, y, alpha) - scatter plot korelasi dan regresiax.fill_between(x, lower, upper) - prediction interval bandax.axhline(0), ax.axvline(mu) - garis referensistats.probplot(residuals, plot=ax) - Q-Q plot (via scipy)Jamovi
Software statistik GUI gratis yang tampilannya mirip SPSS, tapi lebih modern dan lebih ringan. Sangat berguna ketika Abbas ingin cepat verifikasi hasil analisis Python tanpa menulis kode, atau saat perlu menjelaskan analisis ke orang lain yang tidak bisa Python. Jamovi menjalankan semua uji yang ada di Bulan 7 dengan beberapa klik. Tersedia untuk macOS (termasuk Apple Silicon M5 milik Abbas).
Setelah Abbas menyelesaikan analisis di Python, impor dataset yang sama ke Jamovi dan replikasi hasil. Jika hasil Jamovi dan Python berbeda, cari tahu kenapa: apakah ada perbedaan setting (equal variance, alternative hypothesis)? Proses debugging ini sangat memperdalam pemahaman Abbas tentang pilihan-pilihan di balik setiap fungsi Python.
Download di jamovi.org, gratis, tidak perlu registrasi. File .csv dari pandas bisa langsung dibuka di Jamovi.
Minggu 1 dan 2: fokus di scipy.stats dan numpy untuk membangun intuisi dari bawah. Minggu 2 dan 3: tambahkan pingouin untuk output yang lebih kaya (effect size, power). Minggu 3: mulai eksplorasi Jamovi untuk verifikasi silang. Minggu 4: perkenalkan statsmodels untuk regresi dengan inferensi lengkap. Jangan coba kuasai semuanya sekaligus: kuasai scipy dulu, yang lain menyusul.
Tips Praktis dan Jebakan Pemula
Statistik inferensial punya banyak jebakan yang bahkan peneliti senior pun kadang jatuh ke sana. Bagian ini mengumpulkan kesalahan paling umum yang akan Abbas temui, lengkap dengan cara menghindarinya.
Ini jebakan terbesar dan paling sering terjadi. p-value bukan probabilitas bahwa H0 benar. p-value bukan probabilitas bahwa Abbas salah. p-value bukan ukuran seberapa besar efek yang Abbas temukan.
Definisi yang benar: p-value adalah probabilitas mendapatkan hasil setidaknya sepola ini (atau lebih ekstrem), dengan asumsi H0 benar.
Analogi: Bayangkan Abbas curiga sebuah koin curang. Abbas lempar 10 kali, keluar kepala 9 kali. p-value menjawab: "Jika koin ini jujur, seberapa sering Abbas bisa dapat 9 atau 10 kepala hanya karena kebetulan?" Jawabannya kira-kira 1%. Itu bukan berarti koin 99% curang. Itu berarti hasil seperti ini sangat langka jika koin jujur.
Yang benar untuk dikatakan: "Hasil ini tidak konsisten dengan H0 (p = 0.01)." Bukan: "H0 terbukti salah dengan probabilitas 99%."
Dengan sampel yang sangat besar, perbedaan yang sangat kecil pun bisa menghasilkan p < 0.05. Contoh: platform e-commerce menguji dua warna tombol beli. Dengan 1 juta pengguna, mereka menemukan warna biru menghasilkan konversi 2.01% dan warna hijau 2.00%. p-value: 0.001. Sangat signifikan!
Tapi apakah perbedaan 0.01% itu worth biaya redesign seluruh platform? Tentu tidak.
Solusi: Selalu hitung effect size bersamaan dengan p-value. Untuk t-test pakai Cohen's d. Untuk korelasi, nilai r-nya sendiri sudah jadi effect size. Untuk ANOVA pakai eta-squared.
Setiap uji statistik punya asumsi. Melanggar asumsi bisa membuat p-value Abbas tidak valid sama sekali.
T-test mengasumsikan: data mendekati normal (atau n besar), dan varians kedua grup hampir sama (untuk independent t-test). Chi-square mengasumsikan: frekuensi ekspektasi tiap sel minimal 5. ANOVA mengasumsikan: normalitas residual dan homogenitas varians.
Kebiasaan yang harus dibangun: sebelum menjalankan uji apa pun, selalu cek asumsi terlebih dahulu.
Jika Abbas menguji 20 hipotesis sekaligus dengan alpha 0.05, secara matematika Abbas hampir pasti akan mendapat minimal satu hasil yang "signifikan" hanya karena kebetulan, bahkan jika semua H0 benar. Ini disebut inflasi Type I error.
Analogi: Jika Abbas melempar koin jujur 20 kali berturut-turut, probabilitas mendapat setidaknya sekali "6 kepala berturut-turut" (kebetulan langka) jauh lebih besar dari yang Abbas kira. Semakin banyak percobaan, semakin tinggi peluang kebetulan.
Solusi: Koreksi Bonferroni: bagi alpha dengan jumlah uji. Untuk 20 uji dengan alpha 0.05, gunakan threshold p < 0.0025 per uji.
Jangan pernah langsung lari ke uji statistik tanpa melihat datanya terlebih dahulu. Histogram, boxplot, dan scatter plot sering mengungkap sesuatu yang angka p-value sembunyikan: outlier ekstrem, distribusi bimodal, hubungan non-linear, atau subgrup tersembunyi di dalam data.
Urutan yang benar: Plot dulu, cek distribusi, baru uji. Jika plot terlihat aneh, selidiki sebelum melanjutkan.
Batas 0.05 adalah konvensi, bukan hukum alam. p = 0.051 dan p = 0.049 secara praktis hampir identik, tapi sering diperlakukan sangat berbeda. Peneliti kadang mengatakan p = 0.051 "tidak ada temuan" padahal efeknya sama besarnya.
Yang lebih baik: Laporkan nilai p tepatnya (bukan hanya "p < 0.05"), sertakan confidence interval, dan bahas effect size. Pembaca bisa menilai sendiri apakah efek itu bermakna.
Contoh pelaporan yang baik: "Grup perlakuan mendapat skor rata-rata 2.3 poin lebih tinggi dari kontrol (95% CI: 0.8 hingga 3.8, p = 0.003, Cohen's d = 0.41)." Jauh lebih informatif dari sekadar "hasilnya signifikan."
Jika data Abbas tidak memenuhi asumsi normalitas dan sampel terlalu kecil untuk mengandalkan CLT, jangan dipaksakan menggunakan t-test atau ANOVA. Scipy menyediakan alternatif non-parametrik yang tidak mengasumsikan distribusi tertentu.
Kelemahan non-parametrik: sedikit lebih lemah (butuh efek lebih besar untuk terdeteksi) dan tidak memberikan confidence interval semudah parametrik. Tapi lebih valid jika asumsi dilanggar.
Cara terbaik memahami p-value secara intuitif adalah dengan mensimulasikannya sendiri. Kode di bawah mendemonstrasikan apa yang p-value benar-benar hitung: berapa kali data bisa "seekstrem ini" jika H0 benar.
Latihan Tambahan
Latihan di bawah dirancang lebih menantang dari latihan di minggu belajar. Abbas perlu menggabungkan beberapa konsep sekaligus dan membuat keputusan analitis sendiri, persis seperti skenario dunia nyata.
Konteks: Abbas adalah analis di sebuah startup edukasi. Tim produk ingin tahu apakah notifikasi belajar malam hari meningkatkan skor latihan soal. Mereka mengacak 200 pengguna: 100 dapat notifikasi (Grup B), 100 tidak (Grup A). Tugasmu: lakukan analisis lengkap dari nol.
Yang harus dilakukan: (1) Generate data simulasi, (2) visualisasi distribusi kedua grup, (3) cek asumsi, (4) pilih uji yang tepat, (5) hitung effect size, (6) buat kesimpulan dalam bahasa bisnis.
Konteks: Abbas ingin memperkirakan rata-rata waktu belajar harian siswa SMA di Indonesia. Abbas punya sampel 50 siswa. Tapi distribusinya miring (skewed) karena beberapa siswa belajar sangat lama. Uji parametrik biasa kurang tepat. Gunakan bootstrap untuk membangun CI tanpa asumsi distribusi.
Konsep kunci: Bootstrap mengambil resample dengan penggantian dari data yang ada ribuan kali, menghitung statistik di setiap resample, lalu distribusi statistik itu dipakai untuk memperkirakan ketidakpastian.
Pertanyaan refleksi: Bandingkan hasil bootstrap CI dengan CI parametrik dari stats.t.interval(). Seberapa berbeda hasilnya? Mengapa bisa berbeda pada data yang miring?
Konteks: Sekolah menguji tiga metode belajar: buku teks tradisional, video YouTube, dan aplikasi interaktif. 30 siswa dibagi merata ke tiga kelompok. Setelah 2 minggu, mereka diuji. Apakah ada perbedaan nyata antar metode, dan metode mana yang terbaik?
Konteks: Banyak orang menggunakan regresi linear tanpa mengecek apakah asumsinya terpenuhi. Latihan ini mengajarkan Abbas cara membaca dan menginterpretasikan 4 plot diagnostik regresi yang krusial: residual vs fitted, Q-Q plot, scale-location, dan leverage.