Berikut adalah simulasi efek sebaran populasi pada performa uji nilai tengah satu populasi, dengan ketentuan:

  • Sebaran : Normal, Seragam, Eksponensial(1)

  • Ukuran contoh : 10, 20, 40

  • Kondisi nilai tengah populasi : \(\mu_0=\mu_0,\mu_0+0.5\sigma, \mu_0+\sigma, \mu_0+1.5\sigma\)

  • Respon : proporsi H0 ditolak

1 Parameter Simulasi

set.seed(123)

B <- 1000              # banyak simulasi
alpha <- 0.05          # taraf nyata

n_vec <- c(10, 20, 40)

shift_vec <- c(0, 0.5, 1, 1.5)
shift_label <- c("mu0",
                 "mu0+0.5sigma",
                 "mu0+sigma",
                 "mu0+1.5sigma")

dist_vec <- c("Normal",
              "Uniform",
              "Exponential")

2 Parameter Populasi

mu0 <- 0
sigma <- 1

3 Perulangan Simulasi

hasil <- data.frame()

for(dist in dist_vec){
  for(n in n_vec){
    for(i in 1:length(shift_vec)){
      shift <- shift_vec[i]

      # mean populasi aktual
      mu <- mu0 + shift * sigma

      tolak <- numeric(B)

      # Simulasi sebanyak B kali
      for(b in 1:B){
        # ---------- NORMAL ----------
        if(dist == "Normal"){
          x <- rnorm(n,
                     mean = mu,
                     sd = sigma)}

        # ---------- UNIFORM ----------
        # Uniform(a,b)
        # mean = (a+b)/2
        # sd   = (b-a)/sqrt(12)
        if(dist == "Uniform"){
          a <- mu - sqrt(3)*sigma
          b_uni <- mu + sqrt(3)*sigma
          x <- runif(n,
                     min = a,
                     max = b_uni)}

        # ---------- EXPONENTIAL ----------
        # Exponential standar: mean = sd = 1
        # Supaya punya mean = mu, dilakukan pergeseran X = Exp(1) - 1 + mu
        # Maka:
        # E(X) = mu
        # SD(X) = 1 = sigma
        if(dist == "Exponential"){
          x <- rexp(n, rate = 1) - 1 + mu}

        # =====================================
        # Uji t satu sampel
        # H0 : mean = mu0
        # =====================================

        pval <- t.test(x,
                       mu = mu0)$p.value

        # Tolak H0 jika p-value < alpha
        tolak[b] <- ifelse(pval < alpha, 1, 0)
      }

      # -----------------------------------------
      # Proporsi H0 ditolak
      # -----------------------------------------
      prop_tolak <- mean(tolak)

      # Simpan hasil
      hasil <- rbind(hasil,
                     data.frame(
                       Distribusi = dist,
                       n = n,
                       Kondisi = shift_label[i],
                       Proporsi_Tolak_H0 = prop_tolak
                     ))
    }
  }
}

print(hasil)
##     Distribusi  n      Kondisi Proporsi_Tolak_H0
## 1       Normal 10          mu0             0.045
## 2       Normal 10 mu0+0.5sigma             0.286
## 3       Normal 10    mu0+sigma             0.794
## 4       Normal 10 mu0+1.5sigma             0.988
## 5       Normal 20          mu0             0.051
## 6       Normal 20 mu0+0.5sigma             0.569
## 7       Normal 20    mu0+sigma             0.986
## 8       Normal 20 mu0+1.5sigma             1.000
## 9       Normal 40          mu0             0.047
## 10      Normal 40 mu0+0.5sigma             0.882
## 11      Normal 40    mu0+sigma             1.000
## 12      Normal 40 mu0+1.5sigma             1.000
## 13     Uniform 10          mu0             0.063
## 14     Uniform 10 mu0+0.5sigma             0.260
## 15     Uniform 10    mu0+sigma             0.790
## 16     Uniform 10 mu0+1.5sigma             0.998
## 17     Uniform 20          mu0             0.040
## 18     Uniform 20 mu0+0.5sigma             0.552
## 19     Uniform 20    mu0+sigma             0.989
## 20     Uniform 20 mu0+1.5sigma             1.000
## 21     Uniform 40          mu0             0.037
## 22     Uniform 40 mu0+0.5sigma             0.881
## 23     Uniform 40    mu0+sigma             1.000
## 24     Uniform 40 mu0+1.5sigma             1.000
## 25 Exponential 10          mu0             0.102
## 26 Exponential 10 mu0+0.5sigma             0.203
## 27 Exponential 10    mu0+sigma             0.972
## 28 Exponential 10 mu0+1.5sigma             0.998
## 29 Exponential 20          mu0             0.066
## 30 Exponential 20 mu0+0.5sigma             0.623
## 31 Exponential 20    mu0+sigma             1.000
## 32 Exponential 20 mu0+1.5sigma             1.000
## 33 Exponential 40          mu0             0.070
## 34 Exponential 40 mu0+0.5sigma             0.949
## 35 Exponential 40    mu0+sigma             1.000
## 36 Exponential 40 mu0+1.5sigma             1.000

Hasil simulasi menunjukkan bahwa performa pengujian nilai tengah satu populasi dipengaruhi oleh bentuk sebaran populasi, ukuran sampel, dan besarnya pergeseran nilai tengah terhadap \(\mu_0\).

Pada kondisi (\(\mu=\mu_0\)), proporsi penolakan (\(H_0\)) merepresentasikan tingkat Type 1 Error. Untuk distribusi normal dan seragam, proporsi penolakan berada di sekitar 0.05 sehingga sesuai dengan taraf nyata yang digunakan (\(\alpha\)= 5%). Namun, pada distribusi eksponensial, proporsi penolakan cenderung lebih besar, terutama saat (\(n=10\)) yaitu sebesar 0.102. Hal ini menunjukkan bahwa uji t satu sampel kurang stabil pada data yang sangat menceng dan ukuran sampel kecil.

Ketika nilai tengah populasi bergeser menjadi (\(\mu=\mu_0+0.5\sigma\)), proporsi penolakan meningkat pada seluruh distribusi. Peningkatan tersebut menunjukkan bertambahnya kemampuan uji dalam mendeteksi perbedaan terhadap hipotesis nol. Selain itu, semakin besar ukuran sampel, semakin tinggi proporsi penolakan. Sebagai contoh, pada distribusi normal, proporsi penolakan meningkat dari 0.286 (\(n=10\)) menjadi 0.882 (\(n=40\)).

Pada kondisi (\(\mu=\mu_0+\sigma\)) dan (\(\mu=\mu_0+1.5\sigma\)), hampir seluruh proporsi penolakan mendekati 1. Hal ini menunjukkan bahwa uji memiliki power yang sangat tinggi ketika pergeseran rata-rata populasi cukup besar. Bahkan pada sebagian besar kombinasi dengan \(n\ge20\), hipotesis nol hampir selalu ditolak.

Secara umum, hasil simulasi menunjukkan bahwa:

  • semakin besar ukuran sampel, semakin tinggi power uji;

  • semakin besar pergeseran rata-rata populasi dari (\(\mu_0\)), semakin besar proporsi penolakan (\(H_0\));

  • distribusi yang tidak simetris seperti eksponensial dapat menyebabkan Type 1 Error lebih besar dari taraf nyata, terutama pada ukuran sampel kecil;

  • uji t satu sampel bekerja paling baik pada distribusi normal dan menjadi lebih stabil pada seluruh distribusi ketika ukuran sampel bertambah besar, sesuai dengan Teorema Limit Pusat.