KUIS STATISTIK (WEEK 13)

Confidence Interval ~ Week 13 ~

Nakeisha Aulia Zahra

Data Science Undergraduate Student

R Programming Data Science Statistics

1 Study Kasus 1

Interval Kepercayaan untuk Rata-rata, \(\sigma\) Diketahui: Sebuah platform e-commerce ingin mengestimasi rata-rata jumlah transaksi harian per pengguna setelah meluncurkan fitur baru. Berdasarkan data historis skala besar, standar deviasi populasi diketahui. \[ \begin{aligned} \sigma &= 3.2 && (\text{population standard deviation}) \\ n &= 100 && (\text{sample size}) \\ \bar{x} &= 12.6 && (\text{sample mean}) \end{aligned} \]

Tugas:

  1. Identifikasi uji statistik yang tepat dan berikan alasan (justifikasi) atas pilihan Anda.
  2. Hitung Interval Kepercayaan (Confidence Intervals) untuk:
    • 90%
    • 95%
    • 99%
  3. Buatlah sebuah isualisasi perbandingan dari ketiga interval kepercayaan tersebut.
  4. Interpretasikan hasilnya dalam konteks analisis bisnis.

1.1 Jawaban Study Kasus 1: Uji Statistik

1.1.1 Identifikasi Uji Statistik dan Justifikasi

Uji statistik yang tepat untuk digunakan adalah Z-Interval (Confidence Interval for the Mean with \(\sigma\) Known).

Justifikasi:

  • Populasi Standar Deviasi (\(\sigma\)) Diketahui: Nilai \(\sigma = 3.2\) diberikan secara eksplisit.
  • Ukuran Sampel Besar: Sampel (\(n = 100\)) memenuhi syarat Teorema Limit Pusat (Central Limit Theorem) karena \(n \geq 30\).
  • Tujuan: Mencari estimasi rentang rata-rata populasi (\(\mu\)).

1.1.2 Perhitungan Confidence Intervals

Rumus umum yang digunakan adalah:

\[MoE = Z_{\alpha/2} \cdot \frac{\sigma}{\sqrt{n}}\] Keterangan Komponen:

  • \(MoE\): Margin of Error (Margin Kesalahan).
  • \(Z_{\alpha/2}\): Nilai Kritis Z yang didapat dari Tabel Z berdasarkan tingkat kepercayaan.
  • \(\sigma\): Deviasi standar populasi.
  • \(n\): Ukuran sampel (jumlah data).

Diketahui: \[ \begin{aligned} \sigma &= 3.2 && (\text{population standard deviation}) \\ n &= 100 && (\text{sample size}) \\ \bar{x} &= 12.6 && (\text{sample mean}) \end{aligned} \] Langkah Perhitungan: 90%

  • \(\alpha = 1 - 0,90 = 0,10\)
  • \(\alpha/2 = 0,10 / 2 = 0,05\)
  • \(Z_{0,05} = 1,645\) (tabel)

Margin of Error (MoE):

\[MoE = 1,645 \cdot \frac{3,2}{\sqrt{100}} = 1,645 \times 0,32 = 0,5264\] Batas Kepercayaan:

  • Batas atas \(= 12,6 - 0,5264 = 12,074\)
  • Batas bawah \(= 12,6 + 0,5264 = 13,126\)

Langkah Perhitungan: 95%

  • \(\alpha = 1 - 0,95 = 0,05\)
  • \(\alpha/2 = 0,05 / 2 = 0,025\)
  • \(Z_{0,025} = 1,96\) (tabel)

Margin of Error (MoE):

\[MoE = 1,96 \cdot \frac{3,2}{\sqrt{100}} = 1,96 \times 0,32 = 0,6272\] Batas Kepercayaan:

  • Batas atas = \(12,6 - 0,6272 = 11,973\)
  • Batas bawah = \(12,6 + 0,6272 = 13,227\)

Langkah Perhitungan: 99%

  • \(\alpha = 1 - 0,99 = 0,01\)
  • \(\alpha/2 = 0,01 / 2 = 0,005\)
  • \(Z_{0,005} = 2,576\) (tabel)

Margin of Error (MoE):

\[MoE = 2,576 \cdot \frac{3,2}{\sqrt{100}} = 2,576 \times 0,32 = 0,8243\]

Batas Kepercayaan (99%):

  • Batas atas \(= 12,6 - 0,8243 = 11,776\)
  • Batas bawah \(= 12,6 + 0,8243 = 13,424\)
library(knitr)
library(kableExtra)

# 1. Menyiapkan Data
data_ci <- data.frame(
  Confidence_Level = c("90%", "95%", "99%"),
  Z_score = c(1.645, 1.96, 2.576),
  Margin_of_Error = c(0.5264, 0.6272, 0.8243),
  Confidence_Interval = c("12.074 to 13.126", "11.973 to 13.227", "11.776 to 13.424")
)

# 2. Membuat Tabel Berwarna
data_ci %>%
  kbl(col.names = c("Confidence Level", "Z-score (z)", "Margin of Error (z·0.32)", "Confidence Interval (CI)"),
      align = "c", caption = "Tabel Analisis Confidence Interval") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), 
                full_width = F, 
                position = "center") %>%
  # Mewarnai Header
  row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>% 
  # Mewarnai Baris Berdasarkan Tingkat Kepercayaan
  row_spec(1, background = "#D5F5E3") %>% # Hijau Muda untuk 90%
  row_spec(2, background = "#AED6F1") %>% # Biru Muda untuk 95%
  row_spec(3, background = "#FAD7A0") %>% # Oranye Muda untuk 99%
  # Memberikan border/garis
  column_spec(1:4, border_left = T, border_right = T)
Tabel Analisis Confidence Interval
Confidence Level Z-score (z) Margin of Error (z·0.32) Confidence Interval (CI)
90% 1.645 0.5264 12.074 to 13.126
95% 1.960 0.6272 11.973 to 13.227
99% 2.576 0.8243 11.776 to 13.424

1.1.3 Visualisasi Perbandingan

library(ggplot2)

# Menyiapkan data
df_ci <- data.frame(
  confidence = factor(c("90%", "95%", "99%"), levels = c("90%", "95%", "99%")),
  lower = c(12.07, 11.97, 11.78),
  upper = c(13.13, 13.23, 13.42),
  mean = c(12.6, 12.6, 12.6)
)

# Gunakan geom_errorbar dengan orientation untuk menggantikan geom_errorbarh (menghapus warning)
ggplot(df_ci, aes(y = confidence, x = mean)) +
  geom_errorbar(aes(xmin = lower, xmax = upper), 
                width = 0.3,           # Lebar ujung garis
                color = "royalblue", 
                linewidth = 1.5) +     # Menggunakan linewidth (menghapus warning)
  geom_point(size = 6, color = "darkred") +
  theme_minimal(base_size = 12) +      # Ukuran teks ditingkatkan agar terlihat besar
  labs(
    title = "Perbandingan Interval Kepercayaan",
    subtitle = "Semakin tinggi tingkat kepercayaan, rentang interval semakin lebar",
    x = "Rata-rata Transaksi Harian",
    y = "Tingkat Kepercayaan"
  ) +
  theme(
    plot.title = element_text(face = "bold", size = 22),
    panel.grid.minor = element_blank()
  ) +
  xlim(11.5, 13.5)

Interpretasi:

1. Hubungan Positif antara Kepercayaan dan Lebar Rentang

Grafik tersebut dengan jelas mengilustrasikan prinsip dasar statistik: semakin tinggi tingkat kepercayaan (90% → 95% → 99%), semakin lebar pula intervalnya.

  • 90% CI (Tersempit): Memberikan estimasi yang paling presisi tetapi memiliki risiko kegagalan (margin of error) yang lebih tinggi (10%).
  • 99% CI (Terlebar): Memberikan tingkat kepastian yang sangat tinggi, namun rentang nilainya menjadi sangat luas sehingga kurang spesifik dibandingkan yang lain.

2. Konsistensi Titik Estimasi (Mean)

Titik merah yang berada tepat di tengah (\(12,6\)) menunjukkan bahwa Mean Sampel tidak berubah terlepas dari tingkat kepercayaan yang dipilih. Interval kepercayaan dibangun “melebar” keluar dari titik pusat yang sama.

3. Analisis Nilai Batas

Berdasarkan data yang Anda masukkan dalam kode R tersebut:

  • Pada tingkat 90%, kita cukup yakin rata-rata transaksi berada di antara 12,07 hingga 13,13.
  • Namun, jika kita ingin sangat yakin (99%), kita harus memperluas perkiraan kita menjadi antara 11,78 hingga 13,42.

1.1.4 Interpretasi dalam Konteks Bisnis

Dalam konteks platform e-commerce ini, hasil tersebut berarti:

  • Estimasi Transaksi: Kita dapat menyatakan dengan tingkat kepercayaan 95% bahwa rata-rata jumlah transaksi harian per pengguna yang sebenarnya berada di kisaran 11.97 hingga 13.23 transaksi.
  • Keandalan Fitur Baru: Jika sebelum fitur baru diluncurkan rata-rata transaksi berada di bawah 11.97, maka kita memiliki bukti statistik yang kuat bahwa fitur baru tersebut berhasil meningkatkan aktivitas pengguna.
  • Pengambilan Keputusan: Manajemen dapat menggunakan angka batas bawah (seperti 11.77 pada 99% CI) sebagai skenario terburuk (worst-case scenario) untuk perencanaan kapasitas server atau proyeksi pendapatan.

2 Study Kasus 2

Interval Kepercayaan untuk Rata-rata, \(\sigma\) Tidak Diketahui: Sebuah tim Riset UX menganalisis waktu penyelesaian tugas (dalam menit) untuk sebuah aplikasi seluler baru. Data dikumpulkan dari 12 pengguna:

\[8.4, \ 7.9, \ 9.1, \ 8.7, \ 8.2, \ 9.0, \ 7.8, \ 8.5, \ 8.9, \ 8.1, \ 8.6, \ 8.3\]

Tugas:

  1. Identifikasi uji statistik yang tepat dan jelaskan alasannya.
  2. Hitung Interval Kepercayaan (Confidence Intervals) untuk:
    • 90%
    • 95%
    • 99%
  3. Visualisasikan ketiga interval tersebut dalam satu plot tunggal.
  4. Jelaskan bagaimana ukuran sampel (sample size) dan tingkat kepercayaan (confidence level) memengaruhi lebar interval.

2.1 Jawaban Study Kasus 2: Uji Statistik

2.1.1 Identifikasi Uji Statistik

Uji yang tepat: Distribusi-t Student (t-distribution atau One-Sample t-Interval).

Alasannya:

  • Standar deviasi populasi (\(\sigma\)) tidak diketahui, sehingga kita menggunakan standar deviasi sampel (\(s\)).
  • Ukuran sampel kecil (\(n < 30\)), dalam hal ini \(n = 12\).
  • Asumsi bahwa data waktu penyelesaian tugas berdistribusi normal (umum dalam riset UX).

2.1.2 Perhitungan Interval Kepercayaan (Confidence Intervals)

Rumus umum yang digunakan adalah:

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] Keterangan Komponen:

  • \(MoE\): Margin of Error (Margin Kesalahan).
  • \(t_{\alpha/2}\): Nilai Kritis \(t\) yang didapat dari Tabel \(t\) berdasarkan tingkat kepercayaan dan derajat kebebasan (\(df = n - 1\)).
  • \(s\): Deviasi standar sampel.
  • \(n\): Ukuran sampel (jumlah data).

Diketahui:

  • \(s = 0.42\)
  • \(n = 12\)
  • \(\bar{x} = 8.46\)
  • \(df = n - 1 = 12 - 1 = 11\)

Langkah Perhitungan:

a) Interval Kepercayaan 90%

  • \(\alpha = 1 - 0.90 = 0.10\)
  • \(\alpha/2 = 0.10/2 = 0.05\)
  • \(t_{0.05, 11} = 1.796\)

Hitung Margin of Error (MoE):

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] \[MoE = 1.796 \times \frac{0.42}{\sqrt{12}}\] \[MoE = 1.796 \times \frac{0.42}{3.464}\] \[MoE = 1.796 \times 0.121 = 0.217 \approx 0.22\] Batas Interval:

  • Batas Bawah: \(8.46 - 0.22 = 8.24\)
  • Batas Atas: \(8.46 + 0.22 = 8.68\)
  • CI 90% = (8.24, 8.68)

b) Interval Kepercayaan 95%

  • \(\alpha = 1 - 0.95 = 0.05\)
  • \(\alpha/2 = 0.05/2 = 0.025\)
  • \(t_{0.025, 11} = 2.201\)

Hitung Margin of Error (MoE):

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] \[MoE = 2.201 \times \frac{0.42}{\sqrt{12}}\] \[MoE = 2.201 \times \frac{0.42}{3.464}\] \[MoE = 2.201 \times 0.121 = 0.266 \approx 0.27\] Batas Interval:

  • Batas Bawah: \(8.46 - 0.27 = 8.19\)
  • Batas Atas: \(8.46 + 0.27 = 8.73\)
  • CI 95% = (8.19, 8.73)

c) Interval Kepercayaan 99%

  • \(\alpha = 1 - 0.99 = 0.01\)
  • \(\alpha/2 = 0.01/2 = 0.005\)
  • \(t_{0.005, 11} = 3.106\)

Hitung Margin of Error (MoE):

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] \[MoE = 3.106 \times \frac{0.42}{\sqrt{12}}\] \[MoE = 3.106 \times \frac{0.42}{3.464}\] \[MoE = 3.106 \times 0.121 = 0.375 \approx 0.38\]

Batas Interval:

  • Batas Bawah: \(8.46 - 0.38 = 8.08\)
  • Batas Atas: \(8.46 + 0.38 = 8.84\)
  • CI 99% = (8.08, 8.84)
# Menghilangkan warning agar tidak muncul di output
suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

# 1. Menyiapkan Data
data_t_interval <- data.frame(
  Tingkat_Kepercayaan = c("90%", "95%", "99%"),
  Nilai_Kritis = c("1.796", "2.201", "3.106"),
  Margin_of_Error = c("0.218", "0.267", "0.377"),
  Interval_Kepercayaan = c("[8.240, 8.676]", "[8.191, 8.725]", "[8.081, 8.835]")
)

# 2. Membuat Tabel dengan 4 Warna (Header + 3 Baris)
data_t_interval %>%
  kbl(col.names = c("Tingkat Kepercayaan", "Nilai Kritis (t pada df = 11)", 
                    "Margin of Error (ME)", "Interval Kepercayaan (Menit)"),
      align = "c", 
      caption = "Tabel Analisis Interval Kepercayaan dengan Distribusi t") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna 1: Header (Biru Tua / Navy)
  row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>% 
  # Warna 2: Baris 1 (Hijau Pastel)
  row_spec(1, background = "#D5F5E3") %>% 
  # Warna 3: Baris 2 (Biru Pastel)
  row_spec(2, background = "#D6EAF8") %>% 
  # Warna 4: Baris 3 (Kuning/Oranye Pastel)
  row_spec(3, background = "#FCF3CF") %>% 
  # Menambahkan garis pembatas agar rapi
  column_spec(1:4, border_left = T, border_right = T)
Tabel Analisis Interval Kepercayaan dengan Distribusi t
Tingkat Kepercayaan Nilai Kritis (t pada df = 11) Margin of Error (ME) Interval Kepercayaan (Menit)
90% 1.796 0.218 [8.240, 8.676]
95% 2.201 0.267 [8.191, 8.725]
99% 3.106 0.377 [8.081, 8.835]

2.1.3 Visualisasi Perbandingan

library(readr)
library(ggplot2)
library(knitr)
library(DT)
library(statip)

# 1. Data (Sama seperti sebelumnya)
x_bar_manual <- 8.458
results <- data.frame(
  Kepercayaan = c("90%", "95%", "99%"),
  Mean = rep(x_bar_manual, 3),
  Lower = c(8.247, 8.199, 8.093), 
  Upper = c(8.669, 8.717, 8.823) 
)

# 2. Visualisasi Horizontal tanpa pesan peringatan
ggplot(results, aes(y = Kepercayaan, x = Mean)) + 
  # Menggunakan width (bukan height) untuk menghindari pesan translasi
  geom_errorbar(aes(xmin = Lower, xmax = Upper, color = Kepercayaan), width = 0.2, linewidth = 1.8) + 
  geom_point(size = 6, color = "black") +
  geom_text(aes(label = paste0("(", sprintf("%.3f", Lower), ", ", sprintf("%.3f", Upper), ")")),
            vjust = -1.5, size = 6, fontface = "bold") +
  labs(title = "Visualisasi Interval Kepercayaan (Study Kasus 2)",
       subtitle = "Hasil disamakan persis dengan hitungan manual (3 desimal)",
       x = "Waktu Penyelesaian (Menit)",
       y = "Tingkat Kepercayaan") +
  theme_minimal(base_size = 18) +
  theme(
    plot.title = element_text(size = 22, face = "bold"),
    legend.position = "none"
  )

Interpretasi:

1. Hubungan Presisi dan Keyakinan

Semakin tinggi tingkat kepercayaan yang Anda gunakan (dari 90% ke 99%), maka interval (rentang) akan semakin lebar.

  • Kepercayaan 90%: Memiliki rentang paling sempit (8.247 – 8.669). Ini adalah estimasi yang paling “presisi” tetapi memiliki risiko kesalahan tertinggi (10%).
  • Kepercayaan 99%: Memiliki rentang paling lebar (8.093 – 8.823). Rentang ini memberikan tingkat kepastian yang sangat tinggi, namun estimasinya menjadi kurang spesifik karena cakupan angkanya yang luas.

2. Konsistensi Titik Tengah (Mean)

Titik hitam di tengah setiap garis menunjukkan Mean Sampel (\(\bar{x} = 8.458\)). Nilai ini tetap konstan di semua kategori, yang menunjukkan bahwa perubahan tingkat kepercayaan hanya memengaruhi margin of error, bukan nilai rata-rata yang diperoleh dari data sampel.

3. Makna Statistik untuk Pengambil Keputusan

Jika Anda menggunakan hasil ini untuk perencanaan praktis:

  • Interpretasi 95% (Standar Umum): Anda bisa menyatakan bahwa Anda “95% yakin” bahwa rata-rata waktu penyelesaian yang sebenarnya di populasi berada di antara 8.199 hingga 8.717 menit.
  • Risiko: Ada kemungkinan 5% bahwa rata-rata yang sebenarnya berada di luar rentang tersebut (di bawah 8.199 atau di atas 8.717).

2.1.4 Pengaruh Ukuran Sampel dan Tingkat Kepercayaan

  • Pengaruh Tingkat Kepercayaan (Confidence Level): Semakin tinggi tingkat kepercayaan (misal dari 90% ke 99%), maka interval akan semakin lebar. Hal ini karena kita membutuhkan rentang nilai yang lebih besar agar kita lebih yakin (“confident”) bahwa nilai rata-rata populasi yang sebenarnya berada di dalam rentang tersebut.

  • Pengaruh Ukuran Sampel (Sample Size): Semakin besar ukuran sampel (\(n\)), maka interval akan semakin sempit (akurat). Secara matematis, \(n\) berada di penyebut dalam rumus Standar Error (\(SE = \frac{s}{\sqrt{n}}\)). Jika \(n\) meningkat, Standar Error akan mengecil, sehingga Margin of Error berkurang dan hasil estimasi menjadi lebih presisi.

3 Study Kasus 3

Interval Kepercayaan untuk Proporsi, Pengujian A/B: Sebuah tim data science menjalankan sebuah uji A/B pada desain tombol Call-To-Action (CTA) yang baru. Eksperimen tersebut menghasilkan: \[ \begin{aligned} n &= 400 && (\text{total users}) \\ x &= 156 && (\text{users who clicked the CTA}) \end{aligned} \]

Tugas:

  1. Hitung proporsi sampel \(\hat{p}\).
  2. Hitung Interval Kepercayaan untuk proporsi pada tingkat:
    • 90%
    • 95%
    • 99%
  3. Visualisasikan dan bandingkan ketiga interval tersebut.
  4. Jelaskan bagaimana tingkat kepercayaan memengaruhi pengambilan keputusan dalam eksperimen produk.

3.1 Jawaban Study Kasus 3: Uji Statistik

3.1.1 Menghitung Proporsi Sampel (\(\hat{p}\))

Proporsi sampel adalah jumlah keberhasilan dibagi dengan total ukuran sampel.

\[\hat{p} = \frac{x}{n} = \frac{156}{400} = 0,39\] Jadi, proporsi pengguna yang mengklik CTA adalah 0,39 atau 39%.


3.1.2 Menghitung Interval Kepercayaan (CI)

Rumus umum yang digunakan adalah:

\(MoE = z_{\alpha/2} \times \sqrt{\frac{\hat{p} \times q}{n}}\)

Keterangan Komponen:

  • \(MoE\): Margin of Error (Margin Kesalahan), yaitu rentang nilai yang menunjukkan seberapa besar kesalahan maksimal yang mungkin terjadi dalam estimasi.
  • \(z_{\alpha/2}\): Nilai Kritis \(z\) yang didapat dari Tabel Distribusi Normal Standar berdasarkan tingkat kepercayaan (misal: untuk tingkat kepercayaan 95%, nilai \(z\) adalah 1,96).
  • \(\hat{p}\): Proporsi sampel (estimasi peluang keberhasilan).
  • \(q\): Peluang kegagalan, yang dihitung dengan rumus \(q = 1 - \hat{p}\).
  • \(n\): Ukuran sampel (jumlah total data).

Diketahui:

  • \(n = 400\)
  • \(x = 156\)
  • \(\hat{p} = \frac{x}{n} = \frac{156}{400} = 0,39\)
  • \(q = 1 - \hat{p} = 1 - 0,39 = 0,61\)

Langkah Perhitungan:

A. Tingkat Kepercayaan 90%

  • \(\alpha = 1 - 0,90 = 0,10\)
  • \(\alpha/2 = 0,10 / 2 = 0,05\)
  • \(z_{0,05} = 1,645\)

Hitung Margin of Error (MoE):

\[MoE = z_{\alpha/2} \times \sqrt{\frac{\hat{p} \times q}{n}}\] \[MoE = 1,645 \times \sqrt{\frac{0,39 \times 0,61}{400}}\] \[MoE = 1,645 \times 0,0244 = 0,0401\] Batas Interval:

  • Batas Bawah: \(0,39 - 0,0401 = \mathbf{0,3499}\)
  • Batas Atas: \(0,39 + 0,0401 = \mathbf{0,4301}\)

B. Tingkat Kepercayaan 95%

  • \(\alpha = 1 - 0,95 = 0,05\)
  • \(\alpha/2 = 0,05 / 2 = 0,025\)
  • \(z_{0,025} = 1,96\)

Hitung Margin of Error (MoE):

\[MoE = z_{\alpha/2} \times \sqrt{\frac{\hat{p} \times q}{n}}\] \[MoE = 1,96 \times \sqrt{\frac{0,39 \times 0,61}{400}}\] \[MoE = 1,96 \times 0,0244 = 0,0478\] Batas Interval:

  • Batas Bawah: \(0,39 - 0,0478 = \mathbf{0,3422}\)
  • Batas Atas: \(0,39 + 0,0478 = \mathbf{0,4378}\)

C. Tingkat Kepercayaan 99%

  • \(\alpha = 1 - 0,99 = 0,01\)
  • \(\alpha/2 = 0,01 / 2 = 0,005\)
  • \(z_{0,005} = 2,576\)

Hitung Margin of Error (MoE): \[MoE = z_{\alpha/2} \times \sqrt{\frac{\hat{p} \times q}{n}}\] \[MoE = 2,576 \times \sqrt{\frac{0,39 \times 0,61}{400}}\] \[MoE = 2,576 \times 0,0244 = 0,0628\] Batas Interval:

  • Batas Bawah: \(0,39 - 0,0628 = \mathbf{0,3272}\)
  • Batas Atas: \(0,39 + 0,0628 = \mathbf{0,4528}\)
# Menghilangkan warning agar tidak muncul di output laporan
suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

# 1. Menyiapkan Data
data_proporsi <- data.frame(
  Tingkat_Kepercayaan = c("90%", "95%", "99%"),
  Skor_z = c("1.645", "1.96", "2.576"),
  Margin_of_Error = c("$1.645 \\times 0.0244 = 0.0401$", 
                      "$1.96 \\times 0.0244 = 0.0478$", 
                      "$2.576 \\times 0.0244 = 0.0628$"),
  Interval_Kepercayaan = c("0.3499 s/d 0.4301 (35.0% - 43.0%)", 
                           "0.3422 s/d 0.4378 (34.2% - 43.8%)", 
                           "0.3272 s/d 0.4528 (32.7% - 45.3%)")
)

# 2. Membuat Tabel dengan kableExtra (Tema Biru Pastel)
data_proporsi %>%
  kbl(col.names = c("Tingkat Kepercayaan", "Skor-z (z)", 
                    "Margin of Error ($z \\times SE$)", "Interval Kepercayaan"),
      align = "c", 
      escape = FALSE, 
      caption = "Estimasi Interval Kepercayaan untuk Proporsi (Tema Biru Pastel)") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna Header: Biru Navy Gelap
  row_spec(0, bold = TRUE, color = "white", background = "#2E5984") %>% 
  # Baris 1: Biru Pastel Paling Muda (Alice Blue)
  row_spec(1, background = "#F0F8FF") %>% 
  # Baris 2: Biru Pastel Sedang (Light Cyan)
  row_spec(2, background = "#E0FFFF") %>% 
  # Baris 3: Biru Pastel Lebih Pekat (Pale Turquoise)
  row_spec(3, background = "#AFEEEE") %>% 
  # Memberikan garis pembatas kolom
  column_spec(1:4, border_left = T, border_right = T)
Estimasi Interval Kepercayaan untuk Proporsi (Tema Biru Pastel)
Tingkat Kepercayaan Skor-z (z) Margin of Error (\(z \times SE\)) Interval Kepercayaan
90% 1.645 \(1.645 \times 0.0244 = 0.0401\) 0.3499 s/d 0.4301 (35.0% - 43.0%)
95% 1.96 \(1.96 \times 0.0244 = 0.0478\) 0.3422 s/d 0.4378 (34.2% - 43.8%)
99% 2.576 \(2.576 \times 0.0244 = 0.0628\) 0.3272 s/d 0.4528 (32.7% - 45.3%)

3.1.3 Visualisasi Perbandingan

library(ggplot2)

# Data input sesuai perhitungan manual
p_hat <- 0.39
results_prop <- data.frame(
  Kepercayaan = c("90%", "95%", "99%"),
  Lower = c(0.3499, 0.3422, 0.3272),
  Upper = c(0.4301, 0.4378, 0.4528),
  Proporsi = c(0.39, 0.39, 0.39)
)

# Visualisasi Horizontal
ggplot(results_prop, aes(y = Kepercayaan, x = Proporsi)) + # Tukar x dan y
  geom_errorbar(aes(xmin = Lower, xmax = Upper, color = Kepercayaan), 
                width = 0.2, linewidth = 1.8) + # Gunakan xmin dan xmax
  geom_point(size = 6) +
  # Menampilkan label angka 4 desimal
  geom_text(aes(label = paste0("[", sprintf("%.4f", Lower), ", ", sprintf("%.4f", Upper), "]")), 
            vjust = -1.5, size = 6, fontface = "bold") +
  labs(title = "Visualisasi Interval Kepercayaan Proporsi (Study Kasus 3)",
       subtitle = "Hasil disesuaikan dengan perhitungan manual (4 desimal)",
       x = "Proporsi Klik (CTR)", 
       y = "Tingkat Kepercayaan") +
  theme_minimal(base_size = 18) +
  theme(
    plot.title = element_text(size = 22, face = "bold"),
    legend.position = "none",
    plot.margin = unit(c(1,1,1,1), "cm")
  )

Interpretasi:

1. Hubungan Tingkat Kepercayaan dengan Rentang Interval

yang paling menonjol dari grafik tersebut adalah presisi vs. keyakinan:

  • Semakin tinggi tingkat kepercayaan (90% ke 99%), semakin lebar rentang intervalnya.
    • Pada 90%, rentangnya paling sempit: [0.3498, 0.4302].
    • Pada 99%, rentangnya paling lebar: [0.3271, 0.4529].
  • Logikanya: Untuk mendapatkan tingkat keyakinan yang lebih tinggi (99%) bahwa parameter populasi berada di dalam rentang tersebut, kita harus memperlebar “jaring” estimasi kita.

2. Statistik (Per Tingkat Kepercayaan)

Dilihat dari titik tengah (\(\hat{p} = 0.39\)), kita dapat menyimpulkan:

library(knitr)

# Data untuk tabel
Tingkat_Kepercayaan <- c("90%", "95%", "99%")
Interpretasi <- c(
  "Kita yakin sebesar **90%** bahwa proporsi klik yang sebenarnya di populasi berada di antara **34,98% hingga 43,02%**.",
  "Kita yakin sebesar **95%** bahwa proporsi klik yang sebenarnya di populasi berada di antara **34,22% hingga 43,78%**.",
  "Kita yakin sebesar **99%** bahwa proporsi klik yang sebenarnya di populasi berada di antara **32,71% hingga 45,29%**."
)

# Membuat Data Frame
tabel_confidence_interval <- data.frame(Tingkat_Kepercayaan, Interpretasi)

# Membuat tabel dengan kable
kable(tabel_confidence_interval, 
      format = "markdown", 
      col.names = c("Tingkat Kepercayaan", "Interpretasi"),
      caption = "**Interpretasi Selang Kepercayaan (Confidence Interval) untuk Proporsi Klik**")
Interpretasi Selang Kepercayaan (Confidence Interval) untuk Proporsi Klik
Tingkat Kepercayaan Interpretasi
90% Kita yakin sebesar 90% bahwa proporsi klik yang sebenarnya di populasi berada di antara 34,98% hingga 43,02%.
95% Kita yakin sebesar 95% bahwa proporsi klik yang sebenarnya di populasi berada di antara 34,22% hingga 43,78%.
99% Kita yakin sebesar 99% bahwa proporsi klik yang sebenarnya di populasi berada di antara 32,71% hingga 45,29%.

3. Analisis Teknis Visualisasi

  • Titik Tengah (Dot): Semua interval berpusat pada proporsi sampel (\(\hat{p}\)) yang sama, yaitu 0.39. Ini menunjukkan bahwa estimasi titik kita tidak berubah, yang berubah hanyalah batas ketidakpastiannya (margin of error).
  • Margin of Error: Jarak dari titik tengah ke ujung garis atas/bawah mewakili Margin of Error. Visualisasi Anda menunjukkan dengan jelas bahwa Margin of Error pada 99% jauh lebih besar daripada pada 90%.

4. Pengambilan Keputusan

Jika studi kasus ini digunakan untuk menentukan efektivitas sebuah kampanye atau fitur:

  • Bahkan dalam skenario terburuk (batas bawah 99%), proporsi klik masih berada di angka 32,71%.
  • Jika target performa minimal perusahaan adalah 30%, maka berdasarkan data ini, kita bisa sangat percaya diri bahwa performa saat ini sudah melampaui target tersebut karena batas bawah terendah (0.3271) masih di atas 0.30.

3.1.4 Pengaruh Tingkat Kepercayaan pada Pengambilan Keputusan

Dalam eksperimen produk (seperti uji A/B ini), tingkat kepercayaan memengaruhi keputusan sebagai berikut:

  • Keseimbangan Risiko vs. Kecepatan: Menggunakan tingkat kepercayaan 95% adalah standar industri. Ini memberikan keseimbangan yang baik antara kepastian hasil dan jumlah data yang dibutuhkan.
  • Tingkat Keyakinan: Jika tim produk sangat konservatif dan tidak ingin mengambil risiko salah langkah, mereka akan menggunakan tingkat 99%. Namun, ini memerlukan hasil yang lebih signifikan atau sampel yang lebih besar untuk mencapai kesimpulan.
  • Akurasi Prediksi: Interval kepercayaan memberitahu kita bahwa jika fitur ini diluncurkan ke seluruh pengguna, performa aslinya kemungkinan besar akan jatuh dalam rentang tersebut. Jika batas bawah interval (misal pada 99% yaitu 32,7%) masih lebih tinggi dari target bisnis, maka fitur tersebut aman untuk diluncurkan.

4 Study Kasus 4

Perbandingan Presisi (Uji-Z vs Uji-t): Dua tim data mengukur atensi API (dalam milidetik) di bawah kondisi yang berbeda.

Tim A \[ \begin{aligned} n &= 36 && (\text{sample size}) \\ \bar{x} &= 210 && (\text{sample mean}) \\ \sigma &= 24 && (\text{population standard deviation known}) \end{aligned} \]

Tim B \[ \begin{aligned} n &= 36 && (\text{sample size}) \\ \bar{x} &= 210 && (\text{sample mean}) \\ s &= 24 && (\text{sample standard deviation}) \end{aligned} \]

Tugas:

  1. Identifikasi uji statistik yang digunakan oleh masing-masing tim.
  2. Hitung Interval Kepercayaan untuk 90%, 95%, dan 99%.
  3. Buatlah visualisasi yang membandingkan semua interval tersebut.
  4. Jelaskan mengapa lebar interval berbeda, meskipun dengan data yang serupa.

4.1 Jawaban Study Kasus 4: Uji Statistik

4.1.1 Identifikasi Uji Statistik

Perbedaan utama antara kedua tim terletak pada apakah standar deviasi populasi diketahui atau tidak.

  • Tim A: Menggunakan Uji-Z (Z-Distribution). Hal ini dikarenakan standar deviasi populasi (\(\sigma\)) diketahui secara pasti.
  • Tim B: Menggunakan Uji-t (t-Distribution). Hal ini dikarenakan standar deviasi populasi tidak diketahui, sehingga digunakan standar deviasi sampel (\(s\)). Karena \(n=36\), derajat kebebasan (\(df\)) adalah \(n - 1 = 35\).

4.1.2 Perhitungan Interval Kepercayaan (Confidence Interval)

Rumus umum yang digunakan adalah:

Rumus umum: \(\text{Mean} \pm (\text{Critical Value} \times \text{Standard Error})\)

TIM A (Uji- Z)

\[MoE = z_{\alpha/2} \times \frac{\sigma}{\sqrt{n}}\] Keterangan Komponen:

  • \(MoE\): Margin of Error (Margin Kesalahan).
  • \(Z_{\alpha/2}\): Nilai Kritis Z yang didapat dari Tabel Z berdasarkan tingkat kepercayaan.
  • \(\sigma\): Deviasi standar populasi.
  • \(n\): Ukuran sampel (jumlah data).

Standard Error (\(SE_A\)) = \(\frac{\sigma}{\sqrt{n}} = \frac{24}{\sqrt{36}} = \frac{24}{6} = 4\)

suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

# 1. Menyiapkan Data
data_z_score <- data.frame(
  Confidence_Level = c("90%", "95%", "99%"),
  Z_score = c("1.645", "1.96", "2.576"),
  Margin_of_Error = c("$1.645 \\times 4 = 6.58$", 
                      "$1.96 \\times 4 = 7.84$", 
                      "$2.576 \\times 4 = 10.30$"),
  Confidence_Interval = c("203.42 - 216.58", "202.16 - 217.84", "199.70 - 220.30")
)

# 2. Membuat Tabel dengan 3 Gradasi Biru Pastel
data_z_score %>%
  kbl(col.names = c("Confidence Level", "Z-score ($z^*$)", 
                    "Margin of Error ($z^* \\times 4$)", "Confidence Interval"),
      align = "c", 
      escape = FALSE, 
      caption = "Estimasi Interval Kepercayaan Menggunakan Skor-z (Tema Biru Pastel)") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna Header: Biru Navy Gelap
  row_spec(0, bold = TRUE, color = "white", background = "#2E5984") %>% 
  # Baris 1: Biru Pastel Paling Muda
  row_spec(1, background = "#F0F8FF") %>% 
  # Baris 2: Biru Pastel Sedang
  row_spec(2, background = "#E0FFFF") %>% 
  # Baris 3: Biru Pastel Lebih Pekat
  row_spec(3, background = "#AFEEEE") %>% 
  # Menambahkan garis pembatas kolom
  column_spec(1:4, border_left = T, border_right = T)
Estimasi Interval Kepercayaan Menggunakan Skor-z (Tema Biru Pastel)
Confidence Level Z-score (\(z^*\)) Margin of Error (\(z^* \times 4\)) Confidence Interval
90% 1.645 \(1.645 \times 4 = 6.58\) 203.42 - 216.58
95% 1.96 \(1.96 \times 4 = 7.84\) 202.16 - 217.84
99% 2.576 \(2.576 \times 4 = 10.30\) 199.70 - 220.30

TIM B (Uji- T)

\[MoE = t_{\alpha/2, df} \times \frac{s}{\sqrt{n}}\] Keterangan Komponen:

  • \(MoE\): Margin of Error (Margin Kesalahan).
  • \(t_{\alpha/2}\): Nilai Kritis \(t\) yang didapat dari Tabel \(t\) berdasarkan tingkat kepercayaan dan derajat kebebasan (\(df = n - 1\)).
  • \(s\): Deviasi standar sampel.
  • \(n\): Ukuran sampel (jumlah data).

Standard Error (\(SE_B\)) = \(\frac{s}{\sqrt{n}} = \frac{24}{\sqrt{36}} = 4\)

# Menghilangkan warning agar output bersih
suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

# 1. Menyiapkan Data
data_t_score <- data.frame(
  Confidence_Level = c("90%", "95%", "99%"),
  t_score = c("1.689", "2.030", "2.724"),
  Margin_of_Error = c("$1.689 \\times 4 = 6.756$", 
                      "$2.030 \\times 4 = 8.120$", 
                      "$2.724 \\times 4 = 10.896$"),
  Confidence_Interval = c("203.24 - 216.76", "201.88 - 218.12", "199.10 - 220.90")
)

# 2. Membuat Tabel dengan 3 Gradasi Biru Pastel
data_t_score %>%
  kbl(col.names = c("Confidence Level", "t-score ($t^*$)", 
                    "Margin of Error ($t^* \\times 4$)", "Confidence Interval"),
      align = "c", 
      escape = FALSE, 
      caption = "Estimasi Interval Kepercayaan (Tema Biru Pastel)") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna Header: Biru Navy Gelap
  row_spec(0, bold = TRUE, color = "white", background = "#2E5984") %>% 
  # Baris 1: Biru Pastel Paling Muda (Alice Blue)
  row_spec(1, background = "#F0F8FF") %>% 
  # Baris 2: Biru Pastel Sedang (Light Cyan)
  row_spec(2, background = "#E0FFFF") %>% 
  # Baris 3: Biru Pastel Lebih Pekat (Pale Turquoise)
  row_spec(3, background = "#AFEEEE") %>% 
  # Menambahkan garis pembatas kolom
  column_spec(1:4, border_left = T, border_right = T)
Estimasi Interval Kepercayaan (Tema Biru Pastel)
Confidence Level t-score (\(t^*\)) Margin of Error (\(t^* \times 4\)) Confidence Interval
90% 1.689 \(1.689 \times 4 = 6.756\) 203.24 - 216.76
95% 2.030 \(2.030 \times 4 = 8.120\) 201.88 - 218.12
99% 2.724 \(2.724 \times 4 = 10.896\) 199.10 - 220.90

TIM A

Karena standar deviasi populasi (\(\sigma\)) diketahui.

Diketahui:

  • \(\sigma = 24\)
  • \(n = 36\)
  • \(\bar{x} = 210\)
  • \(Standard Error (SE) = \frac{\sigma}{\sqrt{n}} = \frac{24}{\sqrt{36}} = \frac{24}{6} = 4\)

Rumus: \(MoE = z_{\alpha/2} \times \frac{\sigma}{\sqrt{n}}\)

Langkah Perhitungan 90%:

  • \(\alpha = 1 - 0.90 = 0.10\)
  • \(\alpha/2 = 0.10 / 2 = 0.05\)
  • \(Z_{0.05} = 1.645\) (tabel)

Hitung Margin of Error (MoE):

\[MoE = 1,645 \cdot \frac{24}{\sqrt{36}} = 1,645 \times 4 = 6,58\] Batas Interval:

  • Batas Bawah \(= 210 - 6.58 = 203.42\)
  • Batas Atas \(= 210 + 6.58 = 216.58\)

Langkah Perhitungan 95%:

  • \(\alpha = 1 - 0.95 = 0.05\)
  • \(\alpha/2 = 0.05 / 2 = 0.025\)
  • \(Z_{0.025} = 1.96\) (tabel)

Hitung Margin of Error (MoE): \[MoE = 1,96 \cdot \frac{24}{\sqrt{36}} = 1,96 \times 4 = 7,84\] Batas Interval:

  • Batas Bawah \(= 210 - 7.84 = 202.16\)
  • Batas Atas \(= 210 + 7.84 = 217.84\)

Langkah Perhitungan 99%:

  • \(\alpha = 1 - 0.99 = 0.01\)
  • \(\alpha/2 = 0.01 / 2 = 0.005\)
  • \(Z_{0.005} = 2.576\) (tabel)

Hitung Margin of Error (MoE): \[MoE = 2,576 \cdot \frac{24}{\sqrt{36}} = 2,576 \times 4 = 10,304\] Batas Interval:

  • Batas Bawah \(= 210 - 10.304 = 199.696 \approx 199.70\)
  • Batas Atas \(= 210 + 10.304 = 220.304 \approx 220.30\)

TIM B

Karena hanya standar deviasi sampel (\(s\)) yang diketahui.

Diketahui:

  • \(s = 24\)
  • \(n = 36\)
  • \(\bar{x} = 210\)
  • \(df = n - 1 = 36 - 1 = 35\)
  • \(Standard Error (SE) = \frac{s}{\sqrt{n}} = \frac{24}{\sqrt{36}} = 4\)

Rumus: \(MoE = t_{\alpha/2, df} \times \frac{s}{\sqrt{n}}\)

Langkah Perhitungan 90%:

  • \(\alpha = 1 - 0.90 = 0.10\)
  • \(\alpha/2 = 0.10 / 2 = 0.05\)
  • \(t_{0.05, 35} = 1.689\) (tabel t)

Hitung Margin of Error (MoE):

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] \[MoE = 1,689 \times \frac{24}{\sqrt{36}}\] \[MoE = 1,689 \times \frac{24}{6}\] \[MoE = 1,689 \times 4 = 6,756\] Batas Interval:

  • Batas Bawah \(= 210 - 6.756 = 203.244 \approx 203.24\)
  • Batas Atas \(= 210 + 6.756 = 216.756 \approx 216.76\)

Langkah Perhitungan 95%:

  • \(\alpha = 1 - 0.95 = 0.05\)
  • \(\alpha/2 = 0.05 / 2 = 0.025\)
  • \(t_{0.025, 35} = 2.030\) (tabel t)

Hitung Margin of Error (MoE):

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] \[MoE = 2.030 \times \frac{24}{\sqrt{36}}\] \[MoE = 2.030 \times \frac{24}{6}\] \[MoE = 2.030 \times 4 = 8.12\] Batas Interval:

  • Batas Bawah \(= 210 - 8.12 = 201.88\)
  • Batas Atas \(= 210 + 8.12 = 218.12\)

Langkah Perhitungan 95%:

  • \(\alpha = 1 - 0.99 = 0.01\)
  • \(\alpha/2 = 0.01 / 2 = 0.005\)
  • \(t_{0.005, 35} = 2.724\) (tabel t)

Hitung Margin of Error (MoE):

\[MoE = t_{\alpha/2} \times \frac{s}{\sqrt{n}}\] \[MoE = 2,724 \times \frac{24}{\sqrt{36}}\] \[MoE = 2,724 \times \frac{24}{6}\] \[MoE = 2,724 \times 4 = 10,896\] Batas Interval:

  • Batas Bawah \(= 210 - 10.896 = 199.104 \approx 199.10\)
  • Batas Atas \(= 210 + 10.896 = 220.896 \approx 220.90\)
# Menghilangkan warning agar output bersih
suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

# 1. Menyiapkan Data
data_uji <- data.frame(
  Tingkat_Kepercayaan = c("90%", "95%", "99%"),
  Tim_A_Z = c("203.42 - 216.58", "202.16 - 217.84", "199.70 - 220.30"),
  Tim_B_t = c("203.24 - 216.76", "201.88 - 218.12", "199.10 - 220.90")
)

# 2. Membuat Tabel Berwarna
data_uji %>%
  kbl(col.names = c("Tingkat Kepercayaan", "Tim A (Uji-Z)", "Tim B (Uji-t)"),
      align = "c", 
      caption = "Perbandingan Interval Kepercayaan: Tim A vs Tim B") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna 1: Header (Biru Tua)
  row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>% 
  # Warna 2: Baris 90% (Hijau Pastel)
  row_spec(1, background = "#D5F5E3") %>% 
  # Warna 3: Baris 95% (Biru Pastel)
  row_spec(2, background = "#D6EAF8") %>% 
  # Warna 4: Baris 99% (Kuning Pastel)
  row_spec(3, background = "#FCF3CF") %>% 
  # Menambahkan garis pembatas
  column_spec(1:3, border_left = T, border_right = T)
Perbandingan Interval Kepercayaan: Tim A vs Tim B
Tingkat Kepercayaan Tim A (Uji-Z) Tim B (Uji-t)
90% 203.42 - 216.58 203.24 - 216.76
95% 202.16 - 217.84 201.88 - 218.12
99% 199.70 - 220.30 199.10 - 220.90

4.1.3 Visualisasi Perbandingan

library(ggplot2)

# 1. Data sesuai perhitungan manual Study Kasus 4
results_4 <- data.frame(
  Metode = rep(c("Tim A (Uji-Z)", "Tim B (Uji-t)"), each = 3),
  Kepercayaan = rep(c("90%", "95%", "99%"), 2),
  Lower = c(203.42, 202.16, 199.70, 203.24, 201.88, 199.10),
  Upper = c(216.58, 217.84, 220.30, 216.76, 218.12, 220.90),
  Mean = 210
)

# Mengatur urutan faktor agar tampilan rapi
results_4$Kepercayaan <- factor(results_4$Kepercayaan, levels = c("90%", "95%", "99%"))

# 2. Visualisasi Horizontal
ggplot(results_4, aes(y = Kepercayaan, x = Mean, color = Metode)) +
  # Menggunakan xmin dan xmax untuk orientasi horizontal
  geom_errorbar(aes(xmin = Lower, xmax = Upper), 
                width = 0.3, linewidth = 2, position = position_dodge(0.8)) + 
  geom_point(size = 6, position = position_dodge(0.8)) +
  
  # Meletakkan label di atas garis masing-masing (vjust negatif mendorong teks ke atas)
  geom_text(aes(label = paste0("[", sprintf("%.2f", Lower), ", ", sprintf("%.2f", Upper), "]")),
            position = position_dodge(0.8),
            vjust = -1.8,         # Mengatur jarak teks agar berada tepat di atas garis
            size = 4.5, 
            fontface = "bold",
            show.legend = FALSE) +
  
  labs(title = "Perbandingan Presisi Interval Kepercayaan: Tim A vs Tim B",
       subtitle = "Visualisasi horizontal dengan perbandingan dua metode (Z-test vs t-test)",
       x = "Atensi API (Milidetik)", 
       y = "Tingkat Kepercayaan") +
  theme_minimal(base_size = 18) +
  theme(
    plot.title = element_text(size = 24, face = "bold"),
    legend.position = "bottom",
    plot.margin = unit(c(1, 1, 1, 1), "cm")
  )

Interpretasi:

1. Hubungan Tingkat Kepercayaan dengan Rentang Interval

Secara keseluruhan, baik pada Tim A maupun Tim B, kita melihat bahwa semakin tinggi tingkat kepercayaan (dari 90% ke 99%), maka rentang interval (garis vertikal) semakin panjang.

  • Ini adalah konsekuensi logis dalam statistik: Untuk mendapatkan kepastian yang lebih tinggi (99%) bahwa nilai rata-rata populasi berada dalam rentang tersebut, kita harus memperlebar rentangnya.
  • Contoh: Pada 90%, rentangnya sempit (lebih presisi tapi risiko meleset lebih besar), sedangkan pada 99%, rentangnya sangat lebar (kurang presisi tapi lebih pasti).

2. Tim A (Uji-Z) vs Tim B (Uji-t)

Jika kita perhatikan posisi garis yang berdampingan di setiap kategori:

  • Interval Tim A (Z) selalu sedikit lebih pendek/sempit dibandingkan Tim B (t).
  • Interpretasi: Tim A menggunakan Uji-Z yang biasanya mengasumsikan standar deviasi populasi diketahui atau ukuran sampel besar. Hal ini menghasilkan estimasi yang lebih presisi (garis lebih pendek).
  • Interpretasi Tim B: Tim B menggunakan Uji-t yang memperhitungkan ketidakpastian tambahan (karena menggunakan standar deviasi sampel). Oleh karena itu, intervalnya sedikit lebih lebar untuk mengompensasi potensi variansi tersebut.

3. Konsistensi Titik Tengah (Mean)

  • Kedua tim memiliki titik tengah (dot merah dan biru) yang sama di angka 210 ms.
  • Ini menunjukkan bahwa estimasi titik (point estimate) untuk rata-rata atensi API tidak berubah; yang berbeda hanyalah estimasi margin of error atau tingkat ketelitian di sekitar nilai rata-rata tersebut.

4. Analisis Presisi (Margin of Error)

Dilihat dari label angka di sisi kiri setiap garis:

  • Pada tingkat 95%, Tim A memiliki rentang \([202.16, 217.84]\), sementara Tim B sedikit lebih lebar di \([201.88, 218.12]\).
  • Selisih ini menunjukkan bahwa jika organisasi menginginkan hasil yang lebih “ketat” atau presisi, metode Tim A terlihat lebih unggul secara matematis, selama asumsi penggunaan Uji-Z terpenuhi.

5. Untuk Pengambil Keputusan

Visualisasi ini menunjukkan bahwa Metode Tim A (Uji-Z) memberikan hasil yang lebih presisi (interval lebih sempit) dibandingkan Tim B pada semua tingkat kepercayaan. Namun, jika ukuran sampel kecil, interval Tim B (Uji-t) sebenarnya jauh lebih aman dan konservatif untuk digunakan guna menghindari kesalahan estimasi.


4.1.4 Mengapa Lebar Interval Berbeda?

Meskipun nilai \(\bar{x}\), \(n\), dan angka standar deviasinya sama (24), interval Tim B selalu lebih lebar daripada Tim A karena alasan berikut:

  • Ketidakpastian Tambahan: Tim B menggunakan standar deviasi sampel (\(s\)) sebagai estimasi. Karena \(s\) hanyalah estimasi dari populasi, distribusi-t memiliki “ekor” yang lebih tebal (heavy tails) untuk mengompensasi ketidakpastian tersebut.
  • Nilai Kritis: Nilai kritis \(t^*\) selalu lebih besar daripada nilai kritis \(z^*\) pada tingkat kepercayaan yang sama. Hal ini mengakibatkan Margin of Error pada Uji-t menjadi lebih besar.
  • Presisi: Tim A dianggap memiliki informasi yang lebih “sempurna” (karena tahu \(\sigma\) populasi), sehingga intervalnya lebih presisi (sempit).

5 Study Kasus 5

Interval Kepercayaan Satu Sisi (One-Sided Confidence Interval): Sebuah perusahaan Software as a Service (SaaS) ingin memastikan bahwa setidaknya 70% dari pengguna aktif mingguan menggunakan fitur premium.

Dari eksperimen tersebut diperoleh data: \[ \begin{aligned} n &= 250 && (\text{total users}) \\ x &= 185 && (\text{active premium users}) \end{aligned} \]

Pihak manajemen hanya tertarik pada batas bawah (lower bound) dari estimasi tersebut.

Tugas:

  1. Identifikasi tiap Interval Kepercayaan dan uji statistik yang tepat.
  2. Hitung Interval Kepercayaan satu sisi (batas bawah) pada tingkat:
    • 90%
    • 95%
    • 99%
  3. Visualisasikan batas bawah untuk semua tingkat kepercayaan tersebut.
  4. Tentukan apakah target 70% telah terpenuhi secara statistik.

5.1 Jawaban Study Kasus 5: Uji Statistik

5.1.1 Identifikasi Interval Kepercayaan dan Uji Statistik

  • Jenis Data: Data proporsi binominal (menggunakan fitur premium atau tidak).
  • Uji Statistik: Karena ukuran sampel cukup besar (\(n = 250\) dan asumsi \(np > 5\), \(nq > 5\) terpenuhi), kita menggunakan Z-test untuk Proporsi Tunggal.
  • Parameter: Kita mencari Batas Bawah (Lower Bound) untuk mengestimasi proporsi populasi \(p\).

5.1.2 Perhitungan Batas Bawah (Lower Bound)

Rumus Batas Bawah: \[\text{Lower Bound} = \hat{p} - z_{\alpha} \cdot \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\] Keteranagn Komponen:

  • \(n\) (Ukuran Sampel): Jumlah total pengguna yang diamati dalam eksperimen (\(n = 250\)).
  • \(x\) (Jumlah Sukses): Jumlah pengguna aktif premium yang ditemukan dalam sampel (\(x = 185\)).
  • \(\hat{p}\) (Proporsi Sampel): Estimasi titik dari proporsi pengguna premium, dihitung dengan \(\frac{x}{n}\) (\(\hat{p} = 0,74\)).
  • \(q\) (Proporsi Gagal): Peluang pengguna bukan premium, dihitung dengan \(1 - \hat{p}\) (\(q = 0,26\)).

Nilai Kritis \(z_{\alpha}\) untuk Satu Sisi:

  • 90% Confidence Level (\(\alpha = 0,10\)): \(z = 1,282\)
  • 95% Confidence Level (\(\alpha = 0,05\)): \(z = 1,645\)
  • 99% Confidence Level (\(\alpha = 0,01\)): \(z = 2,326\)

Standard Error (SE) \(= \sqrt{\frac{0,74 \times 0,26}{250}} \approx 0,0277\)

suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

data_lower_bound <- data.frame(
  Tingkat_Kepercayaan = c("90%", "95%", "99%"),
  Perhitungan = c("$0.74 - (1.282 \\times 0.0277)$", 
                  "$0.74 - (1.645 \\times 0.0277)$", 
                  "$0.74 - (2.326 \\times 0.0277)$"),
  Batas_Bawah = c("70.45%", "69.44%", "67.56%")
)

# 2. Membuat Tabel Berwarna
data_lower_bound %>%
  kbl(col.names = c("Tingkat Kepercayaan", "Perhitungan", "Batas Bawah (Lower Bound)"),
      align = "c", 
      escape = FALSE, # Agar simbol matematika LaTeX muncul dengan benar
      caption = "Analisis Batas Bawah (Lower Bound) Berdasarkan Tingkat Kepercayaan") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna Header: Biru Navy Gelap
  row_spec(0, bold = TRUE, color = "white", background = "#2E5984") %>% 
  # Baris 1: Biru Pastel Paling Muda
  row_spec(1, background = "#F0F8FF") %>% 
  # Baris 2: Biru Pastel Sedang
  row_spec(2, background = "#E0FFFF") %>% 
  # Baris 3: Biru Pastel Lebih Pekat
  row_spec(3, background = "#AFEEEE") %>% 
  # Menambahkan garis pembatas kolom
  column_spec(1:3, border_left = T, border_right = T)
Analisis Batas Bawah (Lower Bound) Berdasarkan Tingkat Kepercayaan
Tingkat Kepercayaan Perhitungan Batas Bawah (Lower Bound)
90% \(0.74 - (1.282 \times 0.0277)\) 70.45%
95% \(0.74 - (1.645 \times 0.0277)\) 69.44%
99% \(0.74 - (2.326 \times 0.0277)\) 67.56%

Diketahui:

  • \(n = 250\)
  • \(\bar{x} = 185\)
  • \(\bar{p} = \frac{185}{250} = 0,74\)
  • \(q = 1 - 0,74 = 0,26\)

Rumus: \[MoE = z_a \times \sqrt{\frac{\bar{p} \times q}{n}}\] Langkah Perhitungan:

1. Tingkat kepercayaan 90%

  • \(\alpha = 1 - 0,90 = 0,10\)
  • \(z_{0,10} = 1,282\)

\[MoE = Z_{\alpha} \times \sqrt{\frac{p \times q}{n}}\] \[MoE = 1,282 \times \frac{\sqrt{0,74 \times 0,26}}{250}\] \[MoE = 1,282 \times \frac{0,1924}{250}\] \[MoE = 1,282 \times 0,277 = 0,0355\] Batas Interval:

\(Batas\ Bawah = 0,74 - 0,0355 = 0,7045\ (70,45\%)\)


2. Tingkat Kepercayaan 95%

  • \(\alpha = 1 - 0,95 = 0,05\)
  • \(Z_{0,05} = 1,645\)

\[MoE = Z_{\alpha} \times \sqrt{\frac{p \times q}{n}}\] \[MoE = 1,645 \times \frac{\sqrt{0,74 \times 0,26}}{250}\] \[MoE = 1,645 \times \frac{0,1924}{250}\] \[MoE = 1,645 \times 0,277 = 0,0456\] Batas Interval:

\(Batas\ Bawah = 0,74 - 0,0456 = 0,6944\ (69,44\%)\)


3. Tingkat kepercayaan 99%

  • \(a = 1 - 0,99 = 0,01\)
  • \(Z_{0,01} = 2,326\)

\[MoE = Za \times \frac{\sqrt{\hat{p} \times q}}{n}\] \[MoE = 2,326 \times \frac{\sqrt{0,74 \times 0,26}}{250}\] \[MoE = 2,326 \times \frac{0,1924}{250}\] \[MoE = 2,326 \times 0,277 = 0,0644\] Batas Interval:

\(Batas\ Bawah = 0,74 - 0,0644 = 0,6756\ (67,56\%)\)


5.1.3 Visualisasi Batas Bawah

library(ggplot2)

# Data hasil perhitungan Study Kasus 5
results_5 <- data.frame(
  Tingkat = factor(c("90%", "95%", "99%"), levels = c("90%", "95%", "99%")),
  LowerBound = c(0.7045, 0.6944, 0.6756)
)

# Visualisasi dengan posisi label berbeda khusus untuk 90%
ggplot(results_5, aes(x = Tingkat, y = LowerBound)) +
  # Garis target 70%
  geom_hline(yintercept = 0.70, linetype = "dashed", color = "red", linewidth = 1.5) +
  
  # Titik data
  geom_point(size = 8, color = "#2c3e50") +
  
  # Pengaturan Label: Khusus 90% di atas, selain itu di samping kiri
  geom_text(aes(label = sprintf("%.2f%%", LowerBound * 100),
                vjust = ifelse(Tingkat == "90%", -2, 0.5),  # -2 untuk ke atas (khusus 90%)
                hjust = ifelse(Tingkat == "90%", 0.5, 1.3)), # 0.5 untuk tengah (khusus 90%), 1.3 untuk samping
            size = 6, 
            fontface = "bold", 
            color = "black") +
  
  # Keterangan Target
  annotate("text", x = 0.5, y = 0.705, label = "Target 70%", 
           color = "red", fontface = "bold", size = 6, hjust = 0) +
           
  labs(title = "Estimasi Batas Bawah Pengguna Aktif Mingguan",
       subtitle = "Label 90% berada di atas titik, lainnya berada di depan (samping kiri) titik",
       y = "Proporsi Pengguna", x = "Tingkat Kepercayaan") +
  
  scale_y_continuous(labels = scales::percent, limits = c(0.65, 0.76)) +
  
  theme_minimal(base_size = 18) +
  theme(
    plot.title = element_text(face = "bold", size = 26),
    panel.grid.minor = element_blank()
  )

Interpretasi:

1. Performa Terhadap Target (Threshold 70%)

Garis putus-putus merah merepresentasikan Target 70%. Secara visual, kita dapat melihat posisi relatif dari batas bawah kepercayaan terhadap target ini:

  • Tingkat Kepercayaan 90%: Berada di angka 70.45%. Ini adalah satu-satunya skenario di mana kita bisa menyatakan dengan yakin bahwa performa berada di atas target, karena seluruh nilai berada di area hijau (di atas garis merah).
  • Tingkat Kepercayaan 95% & 99%: Berada di angka 69.44% dan 67.56%. Keduanya berada di bawah target.

2. Hubungan Antara Kepercayaan dan Ketidak pastian

Grafik ini mengilustrasikan prinsip dasar statistik mengenai hubungan antara tingkat kepercayaan dan margin kesalahan:

  • Semakin tinggi tingkat kepercayaan (99%), semakin rendah batas bawahnya. Hal ini terjadi karena untuk menjadi “lebih yakin” (99% yakin), kita harus memperlebar rentang estimasi, yang akhirnya menarik batas bawah ke angka yang lebih konservatif (lebih kecil).
  • Interpretasi Bisnis: Jika perusahaan ingin sangat yakin (99%), maka ada risiko bahwa proporsi pengguna aktif sebenarnya hanya sebesar 67.56%.

3. Analisis Pengambilan Keputusan

Berdasarkan visualisasi tersebut, kesimpulan yang dapat diambil adalah:

  • Optimis: Jika kita menggunakan standar industri yang umum (90%), performa saat ini sudah memenuhi target.
  • Konservatif: Jika kita menggunakan standar yang lebih ketat (95% atau 99%), kita belum bisa menjamin secara statistik bahwa performa sudah mencapai 70%. Ada kemungkinan performa asli masih sedikit di bawah target.
# Menghilangkan warning agar tidak muncul di output laporan
suppressWarnings(suppressMessages(library(knitr)))
suppressWarnings(suppressMessages(library(kableExtra)))

# 1. Menyiapkan Data
data_status <- data.frame(
  Tingkat_Kepercayaan = c("90%", "95%", "99%"),
  Batas_Bawah = c("70.45%", "69.44%", "67.56%"),
  Status = c("Lolos Target", "Sedikit di bawah target", "Di bawah target")
)

# 2. Membuat Tabel Berwarna
data_status %>%
  kbl(col.names = c("Tingkat Kepercayaan", "Batas Bawah (Lower Bound)", "Status Terhadap Target (70%)"),
      align = "c", 
      caption = "Evaluasi Kelolosan Target Berdasarkan Interval Kepercayaan") %>%
  kable_styling(full_width = F, position = "center") %>%
  # Warna Header: Biru Navy Gelap
  row_spec(0, bold = TRUE, color = "white", background = "#2E5984") %>% 
  # Baris 1: Biru Pastel Paling Muda
  row_spec(1, background = "#F0F8FF") %>% 
  # Baris 2: Biru Pastel Sedang
  row_spec(2, background = "#E0FFFF") %>% 
  # Baris 3: Biru Pastel Lebih Pekat
  row_spec(3, background = "#AFEEEE") %>% 
  # Membuat teks pada kolom Status menjadi Tebal
  column_spec(3, bold = TRUE) %>%
  # Menambahkan garis pembatas kolom
  column_spec(1:3, border_left = T, border_right = T)
Evaluasi Kelolosan Target Berdasarkan Interval Kepercayaan
Tingkat Kepercayaan Batas Bawah (Lower Bound) Status Terhadap Target (70%)
90% 70.45% Lolos Target
95% 69.44% Sedikit di bawah target
99% 67.56% Di bawah target

Catatan Kecil: Penempatan label pada 90% yang berada di atas titik (berbeda dari yang lain) sangat efektif untuk menonjolkan bahwa hanya poin tersebut yang berhasil melampaui garis target merah.


5.1.4 Kesimpulan: Apakah Target 70% Terpenuhi?

Target manajemen adalah setidaknya 70%.

  • Pada tingkat kepercayaan 90%, target terpenuhi karena batas bawah (70,45%) masih di atas target 70%.
  • Pada tingkat kepercayaan 95% dan 99%, target tidak terpenuhi secara statistik karena batas bawahnya (69,44% dan 67,56%) berada di bawah angka 70%. Artinya, ada kemungkinan proporsi sebenarnya lebih rendah dari 70%.

Kesimpulan: Secara statistik, kita hanya bisa yakin 90% bahwa target telah tercapai. Jika manajemen menuntut tingkat keyakinan yang lebih tinggi (95% atau 99%), target tersebut belum bisa dikatakan tercapai secara meyakinkan.