Data eksperimen menuntut analisis statistik yang benar, bukan sekadar rata-rata. Proyek ini melatih disiplin analisis eksperimen: merancang analisis sebelum menyentuh data, merangkum data dengan statistik deskriptif, menguji signifikansi perbedaan antar perlakuan, lalu menafsirkan hasil dengan jujur termasuk keterbatasannya.
Alur tahapannya:
- perancangan analisis — menetapkan hipotesis, variabel, dan rencana uji statistik,
- statistik deskriptif — merangkum tiap kelompok perlakuan,
- analisis statistik — uji normalitas, uji perbedaan, dan interval kepercayaan,
- interpretasi hasil — menarik kesimpulan yang didukung data beserta batasannya.
Seluruh kode sumber setiap tahap tersedia pada bagian Berkas Sumber di bawah halaman setiap bagian. Studi kasusnya: eksperimen waktu produksi tiga metode (A, B, C) dengan 10 replikat per metode. Kita membangun setiap uji statistik secara manual dari rumus dasar — ANOVA, uji t, sampai p-value — sehingga semuanya berjalan di MATLAB maupun Octave tanpa Statistics Toolbox, dan seluruh angkanya deterministik karena data dibangun dari nilai tetap, bukan rand.
Perilaku yang Diharapkan #
Satu panggilan jalankanAnalisis() menjalankan seluruh pipeline: membangun data eksperimen dan menyimpannya ke CSV, mencetak tabel statistik per metode, menguji normalitas, menjalankan ANOVA satu arah, melanjutkan ke uji posthoc Bonferroni, menggambar box plot pembanding, mencetak kesimpulan, dan menulis laporan.txt. Transkrip berikut adalah hasil nyata menjalankan fungsi tersebut:
=== Analisis Data Eksperimen Waktu Produksi ===
Desain: 3 metode (A, B, C) x 10 replikat, alpha = 0.05
Data eksperimen tersimpan: data_eksperimen.csv
--- Statistik deskriptif per metode ---
Metode n mean std median SE CI95- CI95+ min max
A 10 50.00 1.90 49.65 0.60 48.82 51.18 47.30 52.90
B 10 45.00 1.95 44.90 0.62 43.79 46.21 42.60 47.60
C 10 52.00 2.83 51.80 0.89 50.25 53.75 48.50 56.10
--- Uji normalitas (g1 skewness, g2 kurtosis) ---
Metode g1 g2 |g1| < 0.5
A 0.151 -1.190 cukup normal
B 0.029 -1.627 cukup normal
C 0.082 -1.440 cukup normal
--- ANOVA satu arah ---
Sumber SS df MS F p
Antara 260.00 2 130.00 25.30 6.46e-07
Dalam 138.74 27 5.14
Total 398.74 29
F kritis (df 2, 27; alpha 0.05) = 3.35, eta^2 = 0.652
Keputusan: p < alpha -> H0 ditolak; minimal satu metode berbeda.
--- Posthoc: uji t berpasangan + Bonferroni ---
Jumlah perbandingan: 3, alpha Bonferroni = 0.05 / 3 = 0.0167
Pasangan selisih t p keputusan
A - B +5.00 +5.80 1.698e-05 signifikan
A - C -2.00 -1.86 0.07994 tidak signifikan
B - C -7.00 -6.45 4.565e-06 signifikan
--- Box plot per metode ---
A: Q1=48.5 med=49.65 Q3=51.6 whisker=47.3-52.9 outlier=0
B: Q1=43.1 med=44.9 Q3=46.8 whisker=42.6-47.6 outlier=0
C: Q1=49.1 med=51.8 Q3=54.7 whisker=48.5-56.1 outlier=0
Grafik tersimpan: box-plot-eksperimen.png
--- Kesimpulan ---
ANOVA signifikan (F(2,27) = 25.30, p = 6.46e-07): minimal satu metode berbeda.
Metode tercepat: B (mean 45.00 menit, SE 0.62).
A - C: tidak cukup bukti perbedaan (p = 0.07994).
Laporan tersimpan: laporan.txtFitur yang Dibangun #
| Fitur | Perilaku |
|---|---|
| Data eksperimen sintetis | 3 metode x 10 replikat dari formula tetap; tersimpan sebagai data_eksperimen.csv (guard writematrix/dlmwrite) |
| Statistik deskriptif | Per metode: n, mean, std sampel, median, SE, CI95 (mean +/- 1.96*SE), min, max |
| Uji normalitas ringan | Skewness g1 dan kurtosis g2 dari rumus momen; kriteria praktis |g1| < 0.5 |
| ANOVA satu arah manual | SSbetween/SSwithin, df, MSB/MSW, F, p-value persis lewat betainc, nilai kritis lewat betaincinv, eta-squared |
| Posthoc Bonferroni | Uji t pooled untuk 3 pasangan dengan ambang alpha/3; tabel keputusan |
| Box plot manual | Kotak dari quantile + fill + line — tanpa Statistics Toolbox; lima bilangan tiap grup dicetak |
| Laporan otomatis | laporan.txt ditulis dari struct hasil sehingga angkanya selalu konsisten dengan tabel Command Window |
| Uji otomatis | tests/uji_analisis.m: 26 kasus assert termasuk determinisme dua kali eksekusi |
Tujuan Pembelajaran #
- Merancang rencana analisis lengkap sebelum melihat data — hipotesis, alpha, dan urutan uji dikunci di awal.
- Menghitung statistik deskriptif per kelompok dan membedakan std, standard error, dan confidence interval.
- Menguji normalitas lewat momen g1/g2 dan mengetahui batasnya dibanding uji formal.
- Membangun ANOVA satu arah dari rumus dasar: SS, df, MS, F, p-value, dan effect size eta-squared.
- Menerapkan koreksi Bonferroni untuk uji posthoc dan menjelaskan alasan family-wise error.
- Menghitung p-value persis tanpa toolbox memakai
betainc/betaincinv. - Menulis laporan analisis dari struct hasil dan menguji seluruh pipeline secara deterministik.
Prasyarat #
Materi berikut perlu dikuasai sebelum memulai proyek ini:
- Statistik Deskriptif, Confidence Interval, Hypothesis Testing, dan Analisis Variansi dari section Statistik dan Analisis Data
- Interpretasi Hasil Statistik dari section Statistik dan Analisis Data — dasar kejujuran pelaporan yang dipakai di Bagian 4
- Box Plot dari section Visualisasi Data — pola
quantile+filldipakai ulang di sini - Membaca File CSV dan Menulis File Data dari section Import dan Export Data
- Membuat Function dan Local Functions dari section Fungsi
- Assertions dan Unit Testing dari section Debugging dan Pengujian
Struktur Proyek #
Kode dipisah menjadi fungsi analisis di src/ dan satu berkas uji di tests/:
analisis-data-eksperimen/
├── _index.md
├── bagian/
│ ├── perancangan-analisis/
│ │ └── index.md
│ ├── statistik-deskriptif/
│ │ └── index.md
│ ├── analisis-statistik/
│ │ └── index.md
│ └── interpretasi-hasil/
│ └── index.md
├── src/
│ ├── buatDataEksperimen.m - data sintetis deterministik + CSV
│ ├── statistikKelompok.m - statistik deskriptif per metode
│ ├── ujiNormalitas.m - skewness/kurtosis momen
│ ├── ujiAnova.m - one-way ANOVA manual + p-value
│ ├── ujiPostHoc.m - uji t berpasangan + Bonferroni
│ └── jalankanAnalisis.m - orkestrasi + box plot + laporan
└── tests/
└── uji_analisis.m - 26 kasus uji otomatisCara Menjalankan #
Buka folder src/ lalu panggil jalankanAnalisis dari Command Window:
% dari folder src/
hasil = jalankanAnalisis();Semua berkas keluaran — data_eksperimen.csv, box-plot-eksperimen.png, laporan.txt — ditulis di folder kerja aktif, jadi pastikan kita menjalankan fungsi dari folder yang bisa ditulisi. Struct hasil memuat seluruh hasil antara (hasil.anova, hasil.posthoc, dan seterusnya) kalau kita ingin memeriksa angkanya lebih jauh. Setiap fungsi analisis juga bisa dipanggil sendiri untuk eksperimen, misalnya statistikKelompok(data) setelah data = buatDataEksperimen();.
Tahapan Pengerjaan #
Proyek dikerjakan dalam empat bagian berurutan; setiap bagian menghasilkan fungsi yang langsung bisa diuji:
- Bagian 1: Perancangan Analisis — konteks eksperimen, hipotesis, variabel, rencana uji, dan data sintetis deterministik.
- Bagian 2: Statistik Deskriptif — statistik per kelompok beserta makna SE dan CI, ditambah box plot pembanding.
- Bagian 3: Analisis Statistik — uji normalitas, ANOVA manual lengkap dengan p-value, dan posthoc Bonferroni.
- Bagian 4: Interpretasi Hasil — membaca hasil utuh, laporan tertulis, keterbatasan, dan uji otomatis.
Mulailah dari Bagian 1: keputusan perancangan di sana menentukan apa yang boleh dan tidak boleh kita simpulkan di Bagian 4.
Susun rencana analisis: hipotesis, kelompok perlakuan, dan data eksperimen sintetis yang realistis.
Buka → # Bagian 2: Statistik DeskriptifRangkum tiap kelompok: mean, std, median, dan visual box plot pembanding.
Buka → # Bagian 3: Analisis StatistikUji signifikansi antar kelompok dan bangun interval kepercayaan selisih mean.
Buka → # Bagian 4: Interpretasi HasilTafsirkan hasil uji, laporkan efek dan keterbatasan, dan susun kesimpulan akhir.
Buka →