Data nyata jarang berbentuk kurva lonceng. Pendapatan, nilai transaksi, durasi kunjungan — semuanya condong miring ke kanan dengan ekor panjang. Lalu bagaimana bisa metode statistika yang dibangun di atas distribusi normal tetap dipakai untuk data seperti itu? Jawabannya adalah Teorema Limit Pusat (Central Limit Theorem): rata-rata sampel berukuran cukup besar mengikuti distribusi normal, hampir tidak peduli bentuk populasi aslinya. Pada chapter ini kita buktikan klaim itu lewat simulasi pada populasi yang sengaja kita buat miring.

Bunyi Teorema Limit Pusat #

Secara ringkas, Teorema Limit Pusat menyatakan: jika kita mengambil sampel berukuran n dari populasi mana pun yang memiliki rata-rata μ dan simpangan baku σ (dengan σ berhingga), maka untuk n yang cukup besar, distribusi rata-rata sampel xbar akan mendekati distribusi normal dengan rata-rata μ dan galat standar σ/√n. Tiga hal penting perlu digarisbawahi dari pernyataan ini:

UnsurMakna praktis
“Populasi mana pun”Populasi boleh miring, dua puncak, atau rata — hasilnya tetap berlaku
“Rata-rata sampel”Teorema berbicara tentang sebaran xbar, bukan sebaran data mentah
σ/√nGalat standar yang sudah kita kenal di chapter Distribusi Sampling

Perhatikan bedanya dengan Hukum Bilangan Besar. Hukum Bilangan Besar hanya mengatakan ke mana xbar menuju (yakni μ); Teorema Limit Pusat melengkapi dengan bentuk sebaran di sekitar μ — kurva lonceng dengan lebar σ/√n. Bentuk inilah yang membuat rumus z berlaku untuk rata-rata sampel:

text
z = (xbar - μ) / (σ / √n)

Simulasi: Populasi Miring, Rata-rata Hampir Normal #

Kita pakai data pendapatan harian 40 pedagang kaki lima (ribuan rupiah). Mayoritas berpendapatan 60–150 ribu, tetapi beberapa hari untung besar hingga 450 ribu — pola khas miring kanan. Kolom kemiringan (skewness) mengukur asimetri: nol berarti simetris, positif berarti berekor ke kanan. Kita hitung dulu profil populasinya, lalu mengundi 1.000 sampel berukuran n = 30 dan merangkum sebaran rata-ratanya:

python
import numpy as np
from scipy.stats import skew

pendapatan = np.array([
    60, 75, 82, 90, 68, 95, 110, 70, 88, 102,
    65, 78, 92, 115, 72, 85, 99, 125, 62, 80,
    150, 135, 175, 160, 140, 210, 185, 320, 260, 450,
    130, 145, 155, 122, 138, 165, 190, 240, 280, 380,
])

print(f"Jumlah pedagang        : {pendapatan.size}")
print(f"Rata-rata (mu)         : {pendapatan.mean():.2f} ribu rupiah")
print(f"Simpangan baku (sigma) : {pendapatan.std():.2f}")
print(f"Kemiringan             : {skew(pendapatan):.2f}")

rng = np.random.default_rng(42)
n = 30
rata2 = [rng.choice(pendapatan, size=n, replace=True).mean() for _ in range(1000)]

print()
print(f"Rata-rata 1000 xbar (n=30) : {np.mean(rata2):.2f}")
print(f"SE teoretis  sigma/akar(30) : {pendapatan.std() / n**0.5:.2f}")
print(f"SE empiris   sd 1000 xbar   : {np.std(rata2, ddof=1):.2f}")
print(f"Kemiringan 1000 xbar        : {skew(rata2):.2f}")

Output yang Dihasilkan:

text
Jumlah pedagang        : 40
Rata-rata (mu)         : 146.07 ribu rupiah
Simpangan baku (sigma) : 87.52
Kemiringan             : 1.71

Rata-rata 1000 xbar (n=30) : 146.24
SE teoretis  sigma/akar(30) : 15.98
SE empiris   sd 1000 xbar   : 16.18
Kemiringan 1000 xbar        : 0.45

Mari kita telaah hasilnya:

  1. Kemiringan populasi 1,71: ekor kanan yang panjang (450 ribu) menarik asimetri jauh dari nol — populasi ini jelas bukan normal.
  2. Rata-rata 1.000 xbar = 146,24: pusat sebaran rata-rata sampel jatuh tepat di dekat μ = 146,07, konsisten dengan Hukum Bilangan Besar.
  3. SE empiris 16,18 vs teoretis 15,98: lebar sebaran xbar mengikuti janji σ/√n dari Teorema Limit Pusat.
  4. Kemiringan 1.000 xbar = 0,45: kemiringan susut dari 1,71 menjadi 0,45 — sebaran rata-rata sampel jauh lebih simetris daripada populasinya, dan makin simetris lagi bila n dibesarkan.

Ukuran Sampel Meratakan Kemiringan #

Seberapa besar n dibutuhkan? Tidak ada angka pasti — makin miring populasinya, makin besar n yang diperlukan — tetapi simulasi memperlihatkan arahnya dengan jelas:

python
import numpy as np
from scipy.stats import skew

pendapatan = np.array([
    60, 75, 82, 90, 68, 95, 110, 70, 88, 102,
    65, 78, 92, 115, 72, 85, 99, 125, 62, 80,
    150, 135, 175, 160, 140, 210, 185, 320, 260, 450,
    130, 145, 155, 122, 138, 165, 190, 240, 280, 380,
])
rng = np.random.default_rng(42)

print(f"{'n':>3} {'rata-rata xbar':>15} {'SE empiris':>11} {'kemiringan':>11}")
for n in (1, 5, 30):
    rata2 = [rng.choice(pendapatan, size=n, replace=True).mean() for _ in range(1000)]
    print(f"{n:>3} {np.mean(rata2):>15.2f} "
          f"{np.std(rata2, ddof=1):>11.2f} {skew(rata2):>11.2f}")

Output yang Dihasilkan:

text
  n  rata-rata xbar  SE empiris  kemiringan
  1          147.63       88.04        1.71
  5          145.50       39.07        0.72
 30          146.64       16.06        0.43

Baris n = 1 adalah populasi itu sendiri: kemiringan 1,71, SE menyamai σ. Pada n = 5, kemiringan sudah turun lebih dari separuh menjadi 0,72. Pada n = 30, kemiringan tinggal 0,43 dan SE terpangkas menjadi sekitar seperlima σ. Sebagai pegangan kasar yang lazim dipakai praktisi, n ≈ 30 sudah membuat pendekatan normal cukup baik untuk populasi yang sekemiring populasi kita — untuk populasi yang jauh lebih miring atau bertanda dua puncak, ambang nyaman itu naik.

Kontras kedua dunia tersebut paling mudah dilihat lewat histogram:

python
import numpy as np
import matplotlib.pyplot as plt

pendapatan = np.array([
    60, 75, 82, 90, 68, 95, 110, 70, 88, 102,
    65, 78, 92, 115, 72, 85, 99, 125, 62, 80,
    150, 135, 175, 160, 140, 210, 185, 320, 260, 450,
    130, 145, 155, 122, 138, 165, 190, 240, 280, 380,
])
rng = np.random.default_rng(42)
rata2 = [rng.choice(pendapatan, size=30, replace=True).mean() for _ in range(1000)]

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
ax1.hist(pendapatan, bins=12, color="#f59e0b", edgecolor="white")
ax1.set_title("Populasi: pendapatan harian (miring kanan)")
ax1.set_xlabel("Ribuan rupiah")
ax1.set_ylabel("Frekuensi")
ax2.hist(rata2, bins=12, color="#2563eb", edgecolor="white")
ax2.set_title("1000 rata-rata sampel (n = 30)")
ax2.set_xlabel("Ribuan rupiah")
ax2.set_ylabel("Frekuensi")
plt.tight_layout()
plt.show()

Histogram kiri berwarna jingga memperlihatkan populasi yang menumpuk di kiri (60–150 ribu) dengan ekor menipis memanjang ke kanan hingga 450 ribu. Histogram kanan berwarna biru — sebaran 1.000 rata-rata sampel — berbentuk hampir simetris: menjulang di sekitar 146 dan menurun seimbang ke kedua arah, seperti kurva lonceng. Skala horizontal keduanya sama-sama ribuan rupiah, sehingga penyempitan sebaran (rentang kanan jauh lebih pendek) juga terlihat jelas.

Jembatan Menuju Inferensi #

Teorema Limit Pusat adalah alasan utama mengapa statistika inferensi dapat bekerja pada data miring sekalipun. Karena xbar kira-kira normal dengan pusat μ dan lebar σ/√n, kita bisa membangun interval kepercayaan dan menghitung peluang ekstrem untuk uji hipotesis menggunakan tabel z atau t — topik yang menyusul segera. Sebelum sampai ke sana, kita perlu melengkapi satu kosakata penting: bagaimana cara resmi menyebut xbar sebagai “perkiraan μ” dan sifat apa yang membuat perkiraan itu layak dipercaya.

Rangkuman #

  • Teorema Limit Pusat: distribusi rata-rata sampel mendekati normal dengan pusat μ dan lebar σ/√n, hampir terlepas dari bentuk populasi asal.
  • Simulasi pada populasi miring kanan (kemiringan 1,71) menghasilkan 1.000 rata-rata sampel dengan kemiringan hanya 0,45 dan SE yang cocok dengan rumus.
  • Semakin besar n, semakin simetris sebaran xbar dan semakin kecil galat standarnya; n sekitar 30 menjadi pegangan kasar yang lazim.
  • Teorema ini menjustifikasi pemakaian rumus z untuk rata-rata sampel pada data nyata yang tidak normal.

Kini kita pegang dua jaminan besar: rata-rata sampel mendarat di μ (Hukum Bilangan Besar) dan sebarannya berbentuk kurva lonceng (Teorema Limit Pusat). Dua jaminan inilah yang membuat xbar pantas diangkat menjadi perkiraan resmi μ — bahasan chapter Estimasi Parameter.

Referensi #

  1. SciPy — scipy.stats: Statistical Functions
  2. NumPy — numpy.mean