Confidence Interval Analysis
Assignment ~ Week 13
Boma Satrio
Wicaksono D.
NIM: 52250061
PENDAHULUAN
Dalam dunia Data Science dan Business Analytics, mengambil keputusan hanya berdasarkan angka rata-rata tunggal (point estimate) seringkali menyesatkan karena adanya faktor ketidakteraturan data atau sampling error. Oleh karena itu, penggunaan Confidence Interval (CI) menjadi sangat krusial.
Laporan ini membahas lima studi kasus yang mensimulasikan berbagai skenario nyata di industri teknologi dan bisnis:
- Case Study 1 (Z-Test): Mengukur akurasi waktu pengiriman logistik menggunakan standar deviasi populasi yang diketahui.
- Case Study 2 (t-Test): Melakukan estimasi waktu penyelesaian tugas pada desain aplikasi (UX) dengan sampel kecil.
- Case Study 3 (Proportion): Mengevaluasi efektivitas tombol Call-to-Action (CTA) melalui A/B Testing.
- Case Study 4 (Precision Comparison): Membandingkan perbedaan presisi antara penggunaan distribusi Z dan distribusi t pada data latensi API.
- Case Study 5 (One-Sided CI): Memastikan apakah target minimal penggunaan fitur premium perusahaan telah terpenuhi secara statistik.
Melalui kelima skenario ini, kita akan melihat bagaimana ukuran sampel, tingkat kepercayaan, dan jenis distribusi memengaruhi ketajaman keputusan bisnis yang diambil.
Case Study 1
Confidence Interval for Mean, σ Known: An e-commerce platform wants to estimate the average number of daily transactions per user after launching a new feature. Based on large-scale historical data, the population standard deviation is known.
\[ \sigma = 3.2 \quad (population\ standard\ deviation) \\ n = 100 \quad (sample\ size) \\ \bar{x} = 12.6 \quad (sample\ mean) \]
Tasks
- Identify the appropriate statistical test and justify your choice.
- Compute the Confidence Intervals for:
- 90%
- 95%
- 99%
- Create a comparison visualization of the three confidence intervals.
- Interpret the results in a business analytics context.
1. Identify the appropriate statistical test and justify your choice.
Karena standar deviasi populasi (σ) diketahui dan ukuran sampel besar (n=100), maka metode yang tepat adalah Confidence Interval dengan distribusi Normal (Z-Interval).
2. Compute the Confidence Intervals for: 90%; 95%; 99%
Langkah 1: Hitung Standard Error (SE)
Rumus Standard Error (σ diketahui)
\[SE = \frac{\sigma}{\sqrt{n}}\]
dimana :
- σ = 3.2
- n = 100 \[
SE = \frac{\sigma}{\sqrt{n}}
\] \[
SE = \frac{3.2}{\sqrt{100}}
\] \[
SE = \frac{3.2}{10}
\] \[
SE = 0.32
\]
Dan di dapat Standard Error = 0.32
Langkah 2: Menentukan Zα/2
Zα/2 adalah nilai Z pada distribusi normal standar yang digunakan sebagai batas confidence interval.
- α = tingkat kesalahan
- α = 1 − confidence level
- Dibagi 2 karena interval dua sisi (kiri & kanan)
Penentuan Nilai α dan Zα/2
\[ \alpha = 1 - \text{Confidence Level} \]
\[ Z_{\alpha/2} = Z\left(1 - \frac{\alpha}{2}\right) \] Hasil dari penentuan nilai Zα/2 yang di cocokan dengan Tabel Z (Distribusi Normal Standar) adalah jawaban dari Confidence Level.
- 90% Confidence Interval
\[ \alpha = 1 - 0.90 = 0.10 \] \[ \frac{\alpha}{2} = \frac{0.10}{2} = 0.05 \] \[ Z_{\alpha/2} = Z(0.95) = 1.645 \]
- 95% Confidence Interval
\[ \alpha = 1 - 0.95 = 0.05 \] \[ \frac{\alpha}{2} = \frac{0.05}{2} = 0.025 \] \[ Z_{\alpha/2} = Z(0.975) = 1.96 \]
- 99% Confidence Interval
\[ \alpha = 1 - 0.99 = 0.01 \] \[ \frac{\alpha}{2} = \frac{0.01}{2} = 0.005 \] \[ Z_{\alpha/2} = Z(0.995) = 2.576 \]
Langkah 3: Perhitungan Confidence Intervals
\[ CI = \bar{x} \pm Z_{\alpha/2} \times SE \] diketahui: \[ \bar{x} = 12.6 \] \[ \sigma = 3.2 \] \[ n = 100 \] \[ SE = 0.32 \]
- 90% Confidence Interval
\[ CI_{90\%} = 12.6 \pm (1.645 \times 0.32) \] \[ CI_{90\%} = (12.07,\ 13.13) \]
- 95% Confidence Interval
\[ CI_{95\%} = 12.6 \pm (1.96 \times 0.32) \] \[ CI_{95\%} = (11.97,\ 13.23) \]
- 99% Confidence Interval
\[ CI_{99\%} = 12.6 \pm (2.576 \times 0.32) \] \[ CI_{99\%} = (11.78,\ 13.42) \]
3. Create a comparison visualization of the three confidence intervals.
* 90%
# Load library
library(ggplot2)
# Parameter data
mu <- 12.6
se <- 3.2 / sqrt(100) # Standard Error = 0.32
z_90 <- 1.645
lower_90 <- mu - (z_90 * se)
upper_90 <- mu + (z_90 * se)
# Membuat urutan data untuk kurva normal
x <- seq(mu - 4*se, mu + 4*se, length.out = 1000)
y <- dnorm(x, mean = mu, sd = se)
df <- data.frame(x, y)
# Plot Kurva
ggplot(df, aes(x, y)) +
geom_line(size = 1) +
# Mengarsir area 90% Confidence Interval
geom_area(data = subset(df, x >= lower_90 & x <= upper_90),
aes(y = y), fill = "skyblue", alpha = 0.5) +
# Menambahkan garis batas
geom_vline(xintercept = c(lower_90, upper_90), linetype = "dashed", color = "blue") +
geom_vline(xintercept = mu, color = "red") +
# Labeling
annotate("text", x = mu, y = 0.2, label = "Mean = 12.6", color = "red") +
annotate("text", x = lower_90, y = -0.05, label = "12.07") +
annotate("text", x = upper_90, y = -0.05, label = "13.13") +
labs(title = "Visualisasi Kurva Normal: 90% Confidence Interval",
subtitle = "",
x = "Rata-rata Transaksi", y = "Density") +
theme_minimal()- penjelasan:
* Garis Tengah (Merah): Mewakili
\(\bar{x} = 12.6\). Ini adalah titik
estimasi terbaik kita saat ini.
* Area Biru (90%): Ini adalah zona
di mana kita meyakini rata-rata populasi yang sebenarnya berada. Luas
area ini adalah 0.90 dari total luas di bawah kurva.
* Titik Potong
(12.07 dan 13.13): Ini adalah batas bawah dan batas atas yang Anda
hitung menggunakan rumus \(12.6 \pm (1.645
\times 0.32)\).
* Ekor Putih (Di luar 12.07 & 13.13): Ini
mewakili risiko kesalahan sebesar 10% (\(\alpha = 0.10\)), yang terbagi menjadi 5%
di sisi kiri dan 5% di sisi kanan.
* 95%
# Load library
library(ggplot2)
# 1. Parameter Data
mu <- 12.6
se <- 0.32 # Standard Error (3.2 / sqrt(100))
z_95 <- 1.96 # Nilai Z untuk 95%
lower_95 <- 11.97
upper_95 <- 13.23
# 2. Membuat Data Kurva
x <- seq(mu - 4*se, mu + 4*se, length.out = 1000)
y <- dnorm(x, mean = mu, sd = se)
df <- data.frame(x, y)
# 3. Plotting
ggplot(df, aes(x, y)) +
geom_line(size = 1.2) +
# Mengarsir area 95% (Confidence Level)
geom_area(data = subset(df, x >= lower_95 & x <= upper_95),
aes(y = y), fill = "#27ae60", alpha = 0.4) + # Warna Hijau untuk 95%
# Garis batas Interval
geom_vline(xintercept = c(lower_95, upper_95), linetype = "dashed", color = "#27ae60", size = 1) +
geom_vline(xintercept = mu, color = "red", size = 0.8) +
# Label angka
annotate("text", x = mu, y = 0.1, label = "Mean = 12.6", color = "red", fontface = "bold") +
annotate("label", x = lower_95, y = 0, label = "11.97") +
annotate("label", x = upper_95, y = 0, label = "13.23") +
labs(title = "Distribusi Normal: 95% Confidence Interval",
subtitle = "",
x = "Rata-rata Transaksi Harian", y = "Density") +
theme_minimal()- penjelasan:
* Area Hijau (95%): Area ini
mencakup hampir seluruh bagian bawah kurva. Dalam statistik industri,
ini adalah standar emas untuk mengambil keputusan.
* Margin of
Error: Jarak dari tengah (12.6) ke batas (13.23) adalah \(1.96 \times 0.32 \approx 0.63\). Ini
berarti tingkat ketidakpastian kita hanya sekitar 0.63 transaksi.
*
Alpha (\(\alpha = 0.05\)): Area putih
di ujung kiri dan kanan hanya tersisa 2.5% di masing-masing sisi. Ini
adalah risiko bahwa rata-rata transaksi sebenarnya berada di luar
prediksi kita
* 99%
# Load library
library(ggplot2)
# 1. Parameter Data
mu <- 12.6
se <- 0.32
z_99 <- 2.576 # Nilai Z untuk 99%
lower_99 <- 11.78
upper_99 <- 13.42
# 2. Membuat Data Kurva
x <- seq(mu - 4*se, mu + 4*se, length.out = 1000)
y <- dnorm(x, mean = mu, sd = se)
df <- data.frame(x, y)
# 3. Plotting
ggplot(df, aes(x, y)) +
geom_line(size = 1.2) +
# Mengarsir area 99% (Hampir seluruh kurva)
geom_area(data = subset(df, x >= lower_99 & x <= upper_99),
aes(y = y), fill = "#8e44ad", alpha = 0.4) + # Warna Ungu untuk 99%
# Garis batas Interval
geom_vline(xintercept = c(lower_99, upper_99), linetype = "dashed", color = "#8e44ad", size = 1) +
geom_vline(xintercept = mu, color = "red", size = 0.8) +
# Label angka
annotate("text", x = mu, y = 0.1, label = "Mean = 12.6", color = "red", fontface = "bold") +
annotate("label", x = lower_99, y = 0, label = "11.78") +
annotate("label", x = upper_99, y = 0, label = "13.42") +
labs(title = "Distribusi Normal: 99% Confidence Interval",
subtitle = "",
x = "Rata-rata Transaksi Harian", y = "Density") +
theme_minimal()- penjelasan:
* Pusat Kurva (12.6): Nilai
rata-rata sampel yang menjadi titik acuan tengah.
* Rentang Bawah
& Atas (11.78 – 13.42): Batas wilayah keyakinan kita. Angka ini
didapat dari hasil kali nilai Z (2.576) dengan Standard Error
(0.32).
* Area Arsir (99%): Melambangkan Tingkat Kepercayaan.
Semakin tinggi persentasenya, semakin luas area yang diarsir, yang
berarti semakin kecil risiko kesalahan kita.
* Area Putih/Ekor (1%):
Melambangkan Tingkat Signifikansi (\(\alpha\)). Ini adalah sisa risiko 1% bahwa
rata-rata yang sebenarnya berada di luar tebakan kita (terbagi 0.5% di
kiri dan 0.5% di kanan).
* Bentuk Kurva: Melebar ke samping.
Dibandingkan 90% atau 95%, kurva 99% memberikan “ruang aman” paling luas
namun dengan rentang angka yang paling lebar (kurang presisi).
Ringkasan Perbandingan Confidence Interval
# 1. Load Library
library(knitr)
library(dplyr)
# 2. Persiapan Data
mean_sample <- 12.6
se <- 0.32
# 3. Membuat Tabel Berdasarkan Hasil Perhitungan
tabel_ci <- data.frame(
"Confidence Level" = c("90%", "95%", "99%"),
"Nilai Z" = c(1.645, 1.960, 2.576),
"Rentang (Interval)" = c("12.07 – 13.13", "11.97 – 13.23", "11.78 – 13.42"),
"Lebar Interval" = c("Sempit", "Sedang", "Lebar"),
"Keterangan" = c(
"Paling presisi, tapi risiko salah 10%",
"Standar industri / paling ideal",
"Sangat pasti, tapi kurang presisi"
)
)
# 4. Menampilkan Tabel dengan kable
kable(tabel_ci,
caption = "Tabel Ringkasan Perbandingan Confidence Interval",
align = "cllll")| Confidence.Level | Nilai.Z | Rentang..Interval. | Lebar.Interval | Keterangan |
|---|---|---|---|---|
| 90% | 1.645 | 12.07 – 13.13 | Sempit | Paling presisi, tapi risiko salah 10% |
| 95% | 1.960 | 11.97 – 13.23 | Sedang | Standar industri / paling ideal |
| 99% | 2.576 | 11.78 – 13.42 | Lebar | Sangat pasti, tapi kurang presisi |
4. Interpret the results in a business analytics context.
Makna Hasilnya:
- 90% CI → estimasi paling sempit, tapi tingkat keyakinan lebih rendah
- 95% CI → paling umum dipakai di bisnis & data analytics
- 99% CI → sangat yakin, tapi interval terlalu lebar (kurang presisi)
Perhatikan bahwa saat kita menaikkan tingkat kepercayaan dari 90% ke 99%, rentang intervalnya menjadi lebih lebar. Artinya, untuk menjadi lebih “yakin”, kita harus memberikan estimasi rentang yang lebih luas (kurang presisi).
Dengan tingkat keyakinan 95%, rata-rata jumlah transaksi harian per user setelah fitur baru diluncurkan berada antara 11.97 hingga 13.23 transaksi. sehingga Fitur baru berpotensi meningkatkan aktivitas user, Rentang nilai masih stabil → performa cukup konsisten, Bisa dijadikan baseline KPI untuk evaluasi fitur berikutnya. Dan Jika perusahaan memiliki target rata-rata 12 transaksi per hari, hasil ini menunjukkan kabar baik karena batas bawah pada tingkat kepercayaan 95% berada sangat dekat dengan 12, dan rata-rata sampel berada di atasnya (12.6).
Case Study 2
Confidence Interval for Mean, σ Unknown: A UX Research team analyzes task completion time (in minutes) for a new mobile application. The data are collected from 12 users:
8.4,7.9,9.1,8.7,8.2,9.0,7.8,8.5,8.9,8.1,8.6,8.3
Tasks:
- Identify the appropriate statistical test and explain why.
- Compute the Confidence Intervals for:
- 90%
- 95%
- 99%
- Visualize the three intervals on a single plot.
- Explain how sample size and confidence level influence the interval width.
1. Identify the appropriate statistical test and explain why.
Uji statistik yang digunakan adalah One-Sample T-Interval (Distribusi-t). Karena \(\sigma\) Tidak Diketahui Kita hanya memiliki data sampel, sehingga harus menggunakan standar deviasi sampel (\(s\)). Dan Ukuran sampel hanya 12 pengguna (\(n = 12\)), yang mana kurang dari 30. Dalam kondisi ini, distribusi-t lebih akurat daripada distribusi-Z.
2. Compute the Confidence Intervals for: 90%; 95%; 99%
Rumus Confidence Interval untuk rata-rata dengan distribusi t (t-interval).
\[ CI = \bar{x} \pm t_{\alpha/2,\; n-1} \times \frac{s}{\sqrt{n}} \]
Keterangan:
- \(\bar{x}\) = rata-rata
sampel
- \(t_{\alpha/2,\; n-1}\) = nilai t
dari distribusi t-Student
- \(s\) = simpangan baku sampel
- \(n\) = ukuran sampel
Langkah 1: Menentukan Data dan Ukuran Sampel
Data waktu penyelesaian tugas (menit):
\[8.4,7.9,9.1,8.7,8.2,9.0,7.8,8.5,8.9,8.1,8.6,8.3\]
Ukuran sampel: \[𝑛=12\]
Langkah 2: Menghitung Rata-rata Sampel (\(\bar{x}\))
Rumus rata-rata sampel: \[ \bar{x} = \frac{\sum x_i}{n} \] Keterangan:
\(\bar{x}\) adalah rata-rata sampel
\(\sum x_i\) adalah jumlah seluruh nilai data dalam sampel
\(n\) adalah jumlah data (ukuran sampel)
Substitusi Data \[ \bar{x} = \frac{8.4 + 7.9 + 9.1 + 8.7 + 8.2 + 9.0 + 7.8 + 8.5 + 8.9 + 8.1 + 8.6 + 8.3}{12} \]
Hasil perhitungan rata-rata sampel adalah \[8.46.\]
Langkah 3: Menghitung Simpangan Baku Sampel (𝑠)
- Rumus Simpangan Baku Sampel \[ s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n - 1}} \]
Keterangan:
- \(s\) adalah simpangan baku
sampel
- \(x_i\) adalah nilai data ke-\(i\)
- \(\bar{x}\) adalah rata-rata
sampel
- \(n\) adalah jumlah data (ukuran
sampel
Catatan: Pembagian dengan \(n - 1\) digunakan karena simpangan baku dihitung dari data sampel, bukan populasi.
- Substitusi ke Dalam Rumus \[ s = \sqrt{\frac{(8.4 - 8.46)^2 + (7.9 - 8.46)^2 + \,... + (8.6 - 8.46)^2 + (8.3 - 8.46)^2}{12 - 1}} \] \[ s = \sqrt{\frac{(-0.06)^2 + (-0.56)^2 + (0.64)^2 + \,... + (-0.36)^2 + (0.14)^2 + (-0.16)^2}{11}} \] \[ s = \sqrt{\frac{0.0036 + 0.3136 + 0.4096 + \,... + 0.1296 + 0.0196 + 0.0256}{11}} \] \[ s = \sqrt{\frac{1.9496}{11}} \] \[ s = \sqrt{0.1772} \] \[ s \approx 0.41 \]
Langkah 4: Menghitung Standard Error (SE)
- Rumus Standard Error \[ SE = \frac{s}{\sqrt{n}} \]
- Substitusi Nilai \[ SE = \frac{0.41}{\sqrt{12}} \] \[ SE = \frac{0.41}{3.464} \] \[ SE \approx 0.12 \]
Langkah 5: Menentukan Nilai tα/2
Menentukan Derajat Bebas (Degrees of Freedom) \[ df = n - 1 \] \[ df = 12 - 1 = 11 \]
Rumus Nilai Kritis tα/2 \[ t_{\alpha/2} = t\left(1 - \frac{\alpha}{2},\; df\right) \]
Confidence Level 90% \[ \alpha = 1 - 0.90 = 0.10 \] \[ \frac{\alpha}{2} = 0.05 \] \[ t_{0.05,\;11} = 1.796 \]
Confidence Level 95% \[ \alpha = 1 - 0.95 = 0.05 \] \[ \frac{\alpha}{2} = 0.05 \] \[ t_{0.05,\;11} = 1.796 \]
Confidence Level 99% \[ \alpha = 1 - 0.99 = 0.01 \] \[ \frac{\alpha}{2} = 0.005 \] \[ t_{0.005,\;11} = 3.106 \]
Langkah 6: Menghitung Confidence Interval
Rumus Confidence Interval \[ CI = \bar{x} \pm t_{\alpha/2} \times SE \] Keterangan:
\(\bar{x}\) adalah rata-rata sampel
\(t_{\alpha/2}\) adalah nilai kritis dari distribusi t-Student
\(SE\) adalah Standard Error
Confidence Interval 90% \[ CI_{90\%} = 8.46 \pm (1.796 \times 0.12) \] \[ CI_{90\%} = 8.46 \pm 0.22 \] \[CI_{90\%} = (8.24,\ 8.68)\]
Confidence Interval 95% \[ CI_{95\%} = 8.46 \pm (2.201 \times 0.12) \] \[ CI_{95\%} = 8.46 \pm 0.26 \] \[CI_{95\%} = (8.20,\ 8.72)\]
Confidence Interval 99% \[ CI_{99\%} = 8.46 \pm (3.106 \times 0.12) \] \[ CI_{99\%} = 8.46 \pm 0.37 \] \[CI_{99\%} = (8.09,\ 8.83)\]
3. Visualize the three intervals on a single plot.
90%
library(ggplot2)
# Data
mean_x <- 8.458
se <- 0.123 # Standard Error hasil perhitungan
df <- 11
lower_90 <- 8.24
upper_90 <- 8.68
# Membuat data kurva
x <- seq(mean_x - 4*se, mean_x + 4*se, length.out = 1000)
y <- dt((x - mean_x)/se, df) / se
df_plot <- data.frame(x, y)
# Plot
ggplot(df_plot, aes(x, y)) +
geom_line(size = 1) +
geom_area(data = subset(df_plot, x >= lower_90 & x <= upper_90),
fill = "steelblue", alpha = 0.5) +
geom_vline(xintercept = c(lower_90, upper_90), linetype = "dashed") +
geom_vline(xintercept = mean_x, color = "red") +
annotate("label", x = c(lower_90, upper_90), y = 0, label = c("8.24", "8.68")) +
labs(title = "90% Confidence Interval (t-Distribution)",
subtitle = "",
x = "Menit", y = "Density") +
theme_minimal()- Penjelasan:
* Titik Tengah (\(\bar{x} = 8.46\)): Rata-rata waktu
penyelesaian tugas dari 12 user. Ini adalah titik pusat kurva.
*
Area Arsir Biru (90%): Wilayah keyakinan kita. Kita yakin 90% bahwa
rata-rata waktu penyelesaian tugas di seluruh populasi pengguna berada
di area ini.
* Batas Bawah (8.24) & Batas Atas (8.68): “Pagar”
hasil perhitungan. Jika rata-rata asli populasi ada di rentang ini, maka
riset kita akurat.
* Area Putih/Ekor (10%): Total risiko kesalahan
(\(\alpha\)). Terbagi menjadi 5% di
ujung kiri dan 5% di ujung kanan.
* Karakteristik Kurva-t: Bentuknya
mirip lonceng, tetapi sedikit lebih landai karena kita memiliki tingkat
ketidakpastian yang lebih tinggi akibat jumlah sampel yang hanya 12
orang.
95%
library(ggplot2)
# Parameter Data Case Study 2
mean_x <- 8.458
se <- 0.123
df <- 11
lower_95 <- 8.20
upper_95 <- 8.72
# Membuat data kurva distribusi-t
x <- seq(mean_x - 4*se, mean_x + 4*se, length.out = 1000)
y <- dt((x - mean_x)/se, df) / se
df_plot <- data.frame(x, y)
# Plotting
ggplot(df_plot, aes(x, y)) +
geom_line(size = 1.2) +
# Mengarsir area 95%
geom_area(data = subset(df_plot, x >= lower_95 & x <= upper_95),
fill = "#e67e22", alpha = 0.5) +
# Garis Batas
geom_vline(xintercept = c(lower_95, upper_95), linetype = "dashed", color = "#d35400") +
geom_vline(xintercept = mean_x, color = "red") +
# Label angka di sumbu X
annotate("label", x = c(lower_95, upper_95), y = 0, label = c("8.20", "8.72")) +
labs(title = "95% Confidence Interval (t-Distribution)",
subtitle = "",
x = "Menit", y = "Density") +
theme_minimal()- Penjelasan:
* Pusat Kurva (8.46): Titik tengah
atau rata-rata waktu yang paling mungkin berdasarkan sampel kita.
*
Area Arsir Oranye (95%): Wilayah keyakinan standar. Kita yakin 95% bahwa
rata-rata waktu penyelesaian tugas yang sebenarnya ada di rentang
ini.
* Batas Bawah (8.20) & Batas Atas (8.72): Rentang interval
kita. Perhatikan bahwa rentang ini lebih lebar daripada yang 90% karena
kita menaikkan tingkat kepastian.
* Area Putih/Ekor (5%): Risiko
kesalahan (\(\alpha\)). Sekarang
risikonya lebih kecil, hanya 2.5% di sisi kiri dan 2.5% di sisi
kanan.
99%
library(ggplot2)
# Parameter Data Case Study 2
mean_x <- 8.458
se <- 0.1215
df <- 11
lower_99 <- 8.09
upper_99 <- 8.83
# Membuat data kurva distribusi-t
x <- seq(mean_x - 4*se, mean_x + 4*se, length.out = 1000)
y <- dt((x - mean_x)/se, df) / se
df_plot <- data.frame(x, y)
# Plotting
ggplot(df_plot, aes(x, y)) +
geom_line(size = 1.2) +
# Mengarsir area 99%
geom_area(data = subset(df_plot, x >= lower_99 & x <= upper_99),
fill = "#8e44ad", alpha = 0.5) +
# Garis Batas
geom_vline(xintercept = c(lower_99, upper_99), linetype = "dashed", color = "#7d3c98") +
geom_vline(xintercept = mean_x, color = "red") +
# Label angka
annotate("label", x = c(lower_99, upper_99), y = 0, label = c("8.09", "8.83")) +
labs(title = "99% Confidence Interval (t-Distribution)",
subtitle = "",
x = "Menit", y = "Density") +
theme_minimal()- penjelasan:
* Pusat Kurva (8.46): Titik
estimasi rata-rata dari sampel 12 pengguna.
* Area Arsir Ungu (99%):
Wilayah keyakinan maksimal. Kita yakin 99% bahwa rata-rata populasi
pengguna sebenarnya berada di rentang ini.
* Batas Bawah (8.09)
& Batas Atas (8.83): Rentang ini adalah yang paling lebar
dibandingkan 90% dan 95%. Hal ini terjadi karena untuk mencapai
keyakinan 99%, kita harus memperluas “jaring” estimasi kita.
* Area
Putih/Ekor (1%): Risiko kesalahan (\(\alpha\)) yang sangat kecil, hanya 0.5% di
masing-masing ujung kurva.
Ringkasan Perbandingan Confidence Interval (Case Study 2)
# 1. Load Library
library(knitr)
library(dplyr)
# 2. Persiapan Data (Berdasarkan hasil Case Study 2)
# Mean = 8.46, n = 12, df = 11
mean_ux <- 8.46
# 3. Membuat Tabel Berdasarkan Hasil Perhitungan t-Distribution
tabel_ci_case2 <- data.frame(
"Confidence Level" = c("90%", "95%", "99%"),
"Nilai t (df=11)" = c(1.796, 2.201, 3.106),
"Rentang (Interval)" = c("8.24 – 8.68", "8.20 – 8.72", "8.09 – 8.83"),
"Lebar Interval" = c("Sempit", "Sedang", "Lebar"),
"Keterangan" = c(
"Estimasi paling ketat (presisi tinggi)",
"Standar penelitian UX / Akurasi optimal",
"Estimasi paling aman (risiko error 1%)"
)
)
# 4. Menampilkan Tabel dengan kable
kable(tabel_ci_case2,
caption = "Tabel Ringkasan Confidence Interval - Case Study 2 (UX Research)",
align = "cllll")| Confidence.Level | Nilai.t..df.11. | Rentang..Interval. | Lebar.Interval | Keterangan |
|---|---|---|---|---|
| 90% | 1.796 | 8.24 – 8.68 | Sempit | Estimasi paling ketat (presisi tinggi) |
| 95% | 2.201 | 8.20 – 8.72 | Sedang | Standar penelitian UX / Akurasi optimal |
| 99% | 3.106 | 8.09 – 8.83 | Lebar | Estimasi paling aman (risiko error 1%) |
4. Explain how sample size and confidence level influence the interval width.
- Pengaruh Tingkat Kepercayaan (Confidence Level)
Tingkat kepercayaan memiliki hubungan searah (proposional) dengan
lebar interval.
* Semakin Tinggi % Kepercayaan \(\rightarrow\) Interval Semakin Lebar.
*
Logika: Bayangkan Anda sedang mencoba menangkap ikan dengan jaring. Jika
Anda ingin 99% yakin ikan tersebut tertangkap, Anda akan menggunakan
jaring yang sangat besar. Sebaliknya, jika Anda hanya butuh 90% yakin,
jaring yang lebih kecil sudah cukup.
* Secara Matematis: Semakin
tinggi tingkat kepercayaan, nilai kritis (\(z^*\) atau \(t^*\)) akan semakin besar. Karena nilai ini
adalah pengali dalam rumus, maka Margin of Error akan otomatis
membesar.
- Pengaruh Ukuran Sampel (\(n\))
Ukuran sampel memiliki hubungan terbalik (invers) dengan lebar
interval.
* Semakin Besar Sampel (\(n\)) \(\rightarrow\) Interval Semakin Sempit
(Presisi).
* Logika: Semakin banyak orang yang Anda tanya (misal
1000 orang vs 10 orang), semakin banyak informasi yang Anda miliki.
Informasi yang lebih banyak mengurangi ketidakpastian, sehingga estimasi
Anda menjadi lebih tajam dan sempit.
* Secara Matematis: Dalam rumus
Standard Error (1\(\frac{\sigma}{\sqrt{n}}\)), variabel 2\(n\) berada di posisi penyebut (bawah).
\[\text{Margin of Error} = z^* \times
\frac{\sigma}{\sqrt{n}}\] Artinya, jika pembagi (\(n\)) semakin besar, maka hasil pembagiannya
(Error) akan semakin kecil.
Case Study 3
Confidence Interval for a Proportion, A/B Testing: A data science team runs an A/B test on a new Call-To-Action (CTA) button design. The experiment yields:
\[ n = 400 \quad \text{(total users)} \] \[ x = 156 \quad \text{(users who clicked the CTA)} \]
Tasks:
- Compute the sample proportion \(\hat{p}\)
- Compute Confidence Intervals for the proportion at:
- 90%
- 95%
- 99%
- Visualize and compare the three intervals.
- Explain how confidence level affects decision-making in product experiments.
1. Compute the sample proportion \(\hat{p}\)
Uji yang digunakan adalah Z-test for Proportions. Karena kita mengukur proporsi (persentase orang yang klik), bukan nilai rata-rata (seperti waktu atau jumlah transaksi).Dan ukuran sampel kita besar (\(n=400\)), sehingga kita bisa menggunakan pendekatan Distribusi Normal (Z).
Menghitung Sample Proportion (\(\hat{p}\))
- Rumus Sample Proportion \[ \hat{p} = \frac{x}{n} \] \[ \hat{p} = \frac{156}{400} \] \[ \hat{p} = 0.39 \] Sekitar 39% pengguna mengklik CTA pada desain yang diuji.
2. Compute Confidence Intervals for the proportion at: 90%; 95%; 99%
Rumus Confidence Interval Proporsi \[ CI = \hat{p} \pm Z_{\alpha/2} \times \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \]
Langkah 1: Menentukan Proporsi Sampel (\(\hat{p}\))
\[ \hat{p} = \frac{x}{n} \] \[ \hat{p} = \frac{156}{400} \] \[ \hat{p} = 0.39 \]
Langkah 2: Menentukan Confidence Level dan Nilai Zα/2
\[ \alpha = 1 - \text{Confidence Level} \]
library(knitr)
z_table <- data.frame(
`Confidence Level` = c("90%", "95%", "99%"),
`α` = c(0.10, 0.05, 0.01),
`Z_{α/2}` = c(1.645, 1.96, 2.576)
)
kable(
z_table,
align = "c",
caption = "Nilai Z_(α/2) dari Distribusi Normal Standar"
)| Confidence.Level | α | Z_.α.2. |
|---|---|---|
| 90% | 0.10 | 1.645 |
| 95% | 0.05 | 1.960 |
| 99% | 0.01 | 2.576 |
Langkah 3: Menghitung Standard Error (SE)
\[ SE = \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \] \[ SE = \sqrt{\frac{0.39(1-0.39)}{400}} \] \[ SE \approx 0.0244 \]
Langkah 4: Menghitung Confidence Interval
\[ CI = \hat{p} \pm Z_{\alpha/2} \times SE \]
Confidence Interval 90% \[ CI_{90\%} = 0.39 \pm (1.645 \times 0.0244) \] \[ CI_{90\%} = (0.35,\; 0.43) \]
Confidence Interval 95% \[ CI_{95\%} = 0.39 \pm (1.96 \times 0.0244) \] \[ CI_{95\%} = (0.34,\; 0.44) \]
Confidence Interval 99% \[ CI_{99\%} = 0.39 \pm (2.576 \times 0.0244) \] \[ CI_{99\%} = (0.33,\; 0.45) \]
3. Visualize and compare the three intervals.
Confidence Interval 90%
library(ggplot2)
# Parameter Data
p_hat <- 0.39
se <- 0.0244 # Standard Error hasil perhitungan sebelumnya
lower_90 <- 0.35
upper_90 <- 0.43
# Membuat data kurva normal (Proporsi dianggap berdistribusi normal untuk n besar)
x <- seq(p_hat - 4*se, p_hat + 4*se, length.out = 1000)
y <- dnorm(x, mean = p_hat, sd = se)
df_plot <- data.frame(x, y)
# Plotting
ggplot(df_plot, aes(x, y)) +
geom_line(size = 1) +
geom_area(data = subset(df_plot, x >= lower_90 & x <= upper_90),
fill = "steelblue", alpha = 0.5) +
geom_vline(xintercept = c(lower_90, upper_90), linetype = "dashed", color = "darkblue") +
geom_vline(xintercept = p_hat, color = "red") +
annotate("label", x = c(lower_90, upper_90), y = 0, label = c("0.35 (35%)", "0.43 (43%)")) +
annotate("text", x = p_hat, y = max(y)+0.5, label = "p_hat = 39%", color = "red") +
labs(title = "90% Confidence Interval (Proporsi CTA)",
subtitle = "",
x = "Proporsi Klik (p)", y = "Density") +
theme_minimal()- penjelasan:
* Pusat Kurva (\(\hat{p} = 0.39\)):Ini adalah nilai 39% yang
kita dapatkan dari hasil uji coba 400 pengguna. Ini adalah “tebakan
terbaik” kita saat ini.
* Area Arsir Biru (90%):Area ini menunjukkan
bahwa kita yakin 90% bahwa rata-rata klik yang sebenarnya (di masa
depan, jika tombol ini diluncurkan ke semua pengguna) akan berada di
rentang ini.
* Batas Bawah (0.35) & Batas Atas (0.43):Ini adalah
“pagar” keyakinan kita. Kita memprediksi bahwa jumlah klik terburuk
adalah 35% dan klik terbaik adalah 43%. Jika proporsi yang sebenarnya
ada di luar dua angka ini, berarti uji coba kita kurang akurat.
*
Area Putih/Ekor (10%):Ini adalah Risiko Kesalahan (\(\alpha = 0.10\)). Ada total 10% kemungkinan
bahwa prediksi kita salah, yang terbagi menjadi 5% di ujung kiri (lebih
rendah dari 35%) dan 5% di ujung kanan (lebih tinggi dari 43%).
Confidence Interval 95%
library(ggplot2)
# Parameter Data
p_hat <- 0.39
se <- 0.0244
lower_95 <- 0.34
upper_95 <- 0.44
# Membuat data kurva
x <- seq(p_hat - 4*se, p_hat + 4*se, length.out = 1000)
y <- dnorm(x, mean = p_hat, sd = se)
df_plot <- data.frame(x, y)
# Plotting
ggplot(df_plot, aes(x, y)) +
geom_line(size = 1.2) +
# Mengarsir area 95%
geom_area(data = subset(df_plot, x >= lower_95 & x <= upper_95),
fill = "#27ae60", alpha = 0.5) + # Warna hijau untuk 95%
# Garis Batas
geom_vline(xintercept = c(lower_95, upper_95), linetype = "dashed", color = "#1e8449") +
geom_vline(xintercept = p_hat, color = "red") +
# Label angka
annotate("label", x = c(lower_95, upper_95), y = 0, label = c("0.34 (34%)", "0.44 (44%)")) +
annotate("text", x = p_hat, y = max(y)+0.5, label = "p_hat = 39%", color = "red") +
labs(title = "95% Confidence Interval (A/B Test CTA)",
subtitle = "",
x = "Proporsi Klik (p)", y = "Density") +
theme_minimal()- penjelasan:
* Pusat Kurva (0.39): Persentase
klik tombol CTA dari sampel kita (39%). Ini adalah titik tengah yang
paling mungkin.
* Area Arsir Hijau (95%): Wilayah keyakinan standar.
Kita yakin 95% bahwa jika tombol ini dirilis ke jutaan pengguna,
persentase kliknya tidak akan lari dari rentang ini.
* Batas Bawah
(0.34) & Batas Atas (0.44): Rentang interval kita (34% hingga 44%).
Dibandingkan 90%, rentang ini lebih lebar karena kita ingin lebih pasti
bahwa hasil aslinya tidak meleset.
* Area Putih/Ekor (5%): Risiko
kesalahan (\(\alpha\)). Hanya ada 5%
kemungkinan rata-rata klik asli berada di luar “pagar” ini (2.5% di kiri
dan 2.5% di kanan).
Confidence Interval 99%
library(ggplot2)
# Parameter Data
p_hat <- 0.39
se <- 0.0244
lower_99 <- 0.33
upper_99 <- 0.45
# Membuat data kurva
x <- seq(p_hat - 4*se, p_hat + 4*se, length.out = 1000)
y <- dnorm(x, mean = p_hat, sd = se)
df_plot <- data.frame(x, y)
# Plotting
ggplot(df_plot, aes(x, y)) +
geom_line(size = 1.2) +
# Mengarsir area 99%
geom_area(data = subset(df_plot, x >= lower_99 & x <= upper_99),
fill = "#8e44ad", alpha = 0.5) + # Warna ungu untuk 99%
# Garis Batas
geom_vline(xintercept = c(lower_99, upper_99), linetype = "dashed", color = "#713d84") +
geom_vline(xintercept = p_hat, color = "red") +
# Label angka
annotate("label", x = c(lower_99, upper_99), y = 0, label = c("0.33 (33%)", "0.45 (45%)")) +
annotate("text", x = p_hat, y = max(y)+0.5, label = "p_hat = 39%", color = "red") +
labs(title = "99% Confidence Interval (A/B Test CTA)",
subtitle = "",
x = "Proporsi Klik (p)", y = "Density") +
theme_minimal()- penjelasan:
* Pusat Kurva (0.39): Nilai
proporsi klik dari sampel. Ini tetap menjadi titik pusat atau estimasi
titik kita.
* Area Arsir Ungu (99%): Wilayah keyakinan maksimal.
Area ini mencakup hampir seluruh bagian di bawah kurva, menunjukkan
tingkat kepastian yang sangat tinggi.
* Batas Bawah (0.33) &
Batas Atas (0.45): Rentang interval kita (33% hingga 45%). Perhatikan
bahwa batas ini adalah yang paling jauh dari titik tengah dibandingkan
90% dan 95%.
* Area Putih/Ekor (1%): Risiko kesalahan (\(\alpha\)) yang sangat kecil. Hanya ada 1%
kemungkinan bahwa performa asli tombol CTA tersebut berada di bawah 33%
atau di atas 45%.
library(ggplot2)
# Data CI Case Study 3
ci_proporsi <- data.frame(
Confidence_Level = factor(c("90%", "95%", "99%"),
levels = c("90%", "95%", "99%")),
Lower = c(0.35, 0.34, 0.33),
Upper = c(0.43, 0.44, 0.45),
p_hat = 0.39
)
# Plot
ggplot(ci_proporsi, aes(x = Confidence_Level, y = p_hat,
ymin = Lower, ymax = Upper)) +
geom_errorbar(width = 0.25, linewidth = 1.2, color = "steelblue") +
geom_point(size = 3, color = "darkred") +
scale_y_continuous(labels = scales::percent_format()) +
labs(
title = "Perbandingan Confidence Interval Proporsi (Case Study 3)",
subtitle = "Confidence Level 90%, 95%, dan 99%",
x = "Confidence Level",
y = "Proporsi Klik CTA"
) +
theme_minimal(base_size = 13)- penjelasan:
* Titik Merah (Point
Estimate):Titik merah di tengah setiap garis mewakili nilai \(\hat{p} = 39\%\). Ini adalah hasil nyata
yang didapat dari sampel 400 pengguna. Titik ini tetap sama di semua
level karena data sampelnya tidak berubah.
* Panjang Garis Biru
(Margin of Error):Garis biru vertikal menunjukkan rentang “tebakan”
kita. Perhatikan bahwa garis 99% adalah yang paling panjang. Ini
menggambarkan hukum statistik bahwa untuk menjadi lebih yakin (99%
yakin), kita harus memberikan rentang prediksi yang lebih luas dan
“aman”.
* Presisi vs. Keyakinan:
* Level 90% memiliki garis
paling pendek (35% - 43%). Ini adalah estimasi paling presisi, tetapi
memiliki risiko salah (alpha) paling tinggi yaitu 10%.
* Level 99%
memiliki garis paling panjang (33% - 45%). Ini adalah estimasi paling
konservatif, memastikan risiko salah hanya 1% saja.
* Aplikasi
Keputusan:Jika target manajemen adalah klik di atas 30%, maka ketiga
level kepercayaan ini menunjukkan bahwa desain tombol CTA baru kita
secara konsisten berada di atas target, karena batas bawah paling rendah
(33%) tetap lebih besar dari 30%.
Ringkasan Perbandingan Confidence Interval (Case Study 3)
library(knitr)
summary_table <- data.frame(
`Confidence Level` = c("90%", "95%", "99%"),
`Nilai Z` = c(1.645, 1.960, 2.576),
`Rentang (Persentase)` = c("35% – 43%", "34% – 44%", "33% – 45%"),
Keterangan = c(
"Paling spesifik / presisi",
"Standar industri paling umum",
"Paling aman dari risiko salah"
)
)
kable(
summary_table,
align = "c",
caption = "Tabel Ringkasan"
)| Confidence.Level | Nilai.Z | Rentang..Persentase. | Keterangan |
|---|---|---|---|
| 90% | 1.645 | 35% – 43% | Paling spesifik / presisi |
| 95% | 1.960 | 34% – 44% | Standar industri paling umum |
| 99% | 2.576 | 33% – 45% | Paling aman dari risiko salah |
4. Explain how confidence level affects decision-making in product experiments.
Kecepatan vs. Kepastian:
Menggunakan 90% membuat tim produk bisa mengambil keputusan lebih cepat karena rentang angka yang dibutuhkan lebih sempit (kurang butuh banyak data). Tapi risikonya lebih besar (10% kemungkinan salah).Manajemen Risiko:
Jika perubahan desain tombol CTA ini sangat krusial (misal: tombol “Bayar Sekarang”), tim biasanya memakai 99%. Mereka tidak mau ambil risiko salah tebak, walaupun rentang prediksinya jadi sangat lebar.Presisi Keputusan:
Semakin tinggi Confidence Level, semakin lebar rentangnya. Jika rentangnya terlalu lebar (misal 32% - 45%), manajer produk mungkin akan bingung: “Ini sebenarnya performanya bagus atau biasa saja?”. Itulah sebabnya 95% sering dipilih sebagai titik tengah yang paling ideal antara kecepatan dan kepastian.
Berdasarkan A/B Test pada 400 pengguna, desain CTA baru memiliki tingkat konversi 39%. Dengan tingkat kepercayaan 95%, kita bisa menjamin bahwa di masa depan, tombol ini akan memberikan konversi antara 34.2% hingga 43.8%
Case Study 4
Precision Comparison (Z-Test vs t-Test): Two data teams measure API latency (in milliseconds) under different conditions.
\[Team A\] \[ \begin{aligned} n_A &= 36 && \text{(ukuran sampel)} \\ \bar{x}_A &= 210 && \text{(rata-rata sampel)} \\ \sigma_A &= 24 && \text{(simpangan baku populasi diketahui)} \end{aligned} \]
\[Team B\] \[ \begin{aligned} n_B &= 36 && \text{(ukuran sampel)} \\ \bar{x}_B &= 210 && \text{(rata-rata sampel)} \\ s_B &= 24 && \text{(simpangan baku sampel)} \end{aligned} \]
Tasks
- Identify the statistical test used by each team.
- Compute Confidence Intervals for 90%, 95%, and 99%.
- Create a visualization comparing all intervals.
- Explain why the interval widths differ, even with similar data.
1. Identify the statistical test used by each team.
Team A menggunakan Z-Test (Z-Interval):
Alasannya: Karena Standar Deviasi Populasi (\(\sigma\)) diketahui secara pasti. Meskipun jumlah sampelnya 36, informasi \(\sigma\) membuat kita bisa langsung menggunakan distribusi normal standar (Z).Team B menggunakan t-Test (t-Interval):
Alasannya: Karena Standar Deviasi Populasi tidak diketahui. Tim B hanya memiliki Standar Deviasi Sampel (\(s\)). Dalam statistik, jika kita hanya mengandalkan data sampel untuk menebak standar deviasi, kita wajib menggunakan distribusi-t sebagai bentuk “kehati-hatian”.
2. Compute Confidence Intervals for 90%, 95%, and 99%.
Rumus Umum Confidence Interval Mean
Z-Test (Team A) \[ CI = \bar{x} \pm Z_{\alpha/2} \times \frac{\sigma}{\sqrt{n}} \]
t-Test (Team B) \[ CI = \bar{x} \pm t_{\alpha/2,\,n-1} \times \frac{s}{\sqrt{n}} \]
Keterangan Singkat:
- \(\bar{x}\) : rata-rata sampel
- \(Z_{\alpha/2}\) : nilai kritis distribusi
normal standar
- \(t_{\alpha/2,,n-1}\) : nilai kritis
distribusi t-Student
- \(\sigma\) :
simpangan baku populasi
- \(s\) :
simpangan baku sampel
- \(n\) :
ukuran sampel
Hitung Standard Error (SE)
\[ \begin{aligned} SE &= \frac{24}{\sqrt{36}} \\ &= \frac{24}{6} \\ &= 4 \end{aligned} \]
Nilai Kritis
library(knitr)
tabel_kritis <- data.frame(
`Confidence Level` = c("90%", "95%", "99%"),
`Z_{α/2}` = c(1.645, 1.960, 2.576),
`t_{α/2, 35}` = c(1.690, 2.030, 2.724)
)
kable(
tabel_kritis,
caption = "Nilai Kritis Distribusi Normal (Z) dan t-Student (df = 35)",
align = "c"
)| Confidence.Level | Z_.α.2. | t_.α.2..35. |
|---|---|---|
| 90% | 1.645 | 1.690 |
| 95% | 1.960 | 2.030 |
| 99% | 2.576 | 2.724 |
Perhitungan Confidence Interval
🔵 Team A (Z-Test)
90% Confidence Interval \[ 210 \pm (1.645 \times 4) = (203.42,\;216.58) \]
95% Confidence Interval \[ 210 \pm (1.96 \times 4) = (202.16,\;217.84) \]
99% Confidence Interval \[ 210 \pm (2.576 \times 4) = (199.70,\;220.30) \]
🟠 Team B (t-Test)
90% Confidence Interval \[ 210 \pm (1.690 \times 4) = (203.24,\;216.76) \]
95% Confidence Interval \[ 210 \pm (1.96 \times 4) = (202.16,\;217.84) \]
99% Confidence Interval \[ 210 \pm (2.724 \times 4) = (199.10,\;220.90) \]
3. Create a visualization comparing all intervals.
library(ggplot2)
# Data
mean <- 210
se <- 4
levels <- c("90%", "95%", "99%")
z <- c(1.645, 1.96, 2.576)
t <- c(1.690, 2.030, 2.724)
# Confidence Intervals
ci_teamA <- data.frame(
Team = "Team A (Z-Test)",
Level = levels,
Lower = mean - z * se,
Upper = mean + z * se
)
ci_teamB <- data.frame(
Team = "Team B (t-Test)",
Level = levels,
Lower = mean - t * se,
Upper = mean + t * se
)
ci_all <- rbind(ci_teamA, ci_teamB)
ci_allggplot(ci_all, aes(x = Level, y = mean, ymin = Lower, ymax = Upper, color = Team)) +
geom_errorbar(width = 0.2, linewidth = 1) +
geom_point(size = 3) +
labs(
title = "Perbandingan Confidence Interval Latensi API",
y = "Latency (ms)",
x = "Confidence Level"
) +
theme_minimal()- penjelasan:
* Pusat Estimasi yang Sama (\(\bar{x} = 210\)):Kedua tim memiliki titik
tengah yang sama pada 210 ms. Namun, tingkat kepercayaan mereka terhadap
angka ini berbeda secara statistik.<br. * Ketebalan dan Lebar
Interval:
* Garis Team A (Z-Interval): Terlihat lebih pendek/sempit.
Karena Team A mengetahui nilai simpangan baku populasi (\(\sigma\)), model statistik memberikan
kepercayaan lebih tinggi sehingga rentang ketidakpastiannya kecil.
*
Garis Team B (t-Interval): Terlihat lebih panjang/lebar. Karena Team B
hanya menggunakan simpangan baku sampel (\(s\)), distribusi-t memberikan “penalti”
berupa rentang yang lebih luas untuk menutupi risiko ketidakpastian
tambahan.
* Efek “Heavier Tails” pada Distribusi-t:Secara visual,
jika Anda melihat kurva densitasnya, kurva t-Test akan memiliki area di
ujung (ekor) yang lebih tebal. Hal ini menjelaskan mengapa batas bawah
Team B lebih rendah dan batas atasnya lebih tinggi dibandingkan Team A,
meskipun angka dasar sampelnya identik (\(n=36, s=24\)).
* Kesimpulan untuk
Pengambilan Keputusan:
Gunakan Z-Interval jika Anda menginginkan
presisi maksimal dan memiliki data historis populasi.Gunakan t-Interval
untuk sikap yang lebih konservatif dan “aman” ketika Anda hanya memiliki
data dari eksperimen skala kecil atau terbatas.
* Untuk setiap
confidence level, interval dari t-Test terlihat sedikit lebih lebar
dibandingkan Z-Test. Ini terjadi karena pada t-Test simpangan baku
populasi tidak diketahui dan harus diperkirakan dari sampel, sehingga
ketidakpastiannya lebih besar.
4. Explain why the interval widths differ, even with similar data.
Faktor Ketidakpastian Tambahan:Team A sudah tahu “aturan main” seluruh populasi (\(\sigma\) diketahui). Sedangkan Team B hanya menebak-nebak dari 36 sampel (\(s\) saja). Karena Team B punya informasi yang lebih sedikit, statistik “menghukum” mereka dengan memberikan rentang yang lebih lebar agar tetap aman.
Karakteristik Distribusi-t:Distribusi-t didesain dengan “Ekor yang Lebih Tebal” (Heavier Tails). Artinya, kemungkinan nilai-nilai ekstrim muncul dianggap lebih besar oleh distribusi-t.
Analogi Sederhana:
- Team A (Z-Test) itu seperti menebak tinggi badan orang menggunakan
meteran yang sudah terkalibrasi pabrik (pasti).
- Team B (t-Test) itu seperti menebak tinggi badan menggunakan jengkal tangan (ada perkiraan/estimasi). Karena pakai jengkal, tebakan kita harus dikasih “ruang cadangan” yang lebih luas supaya tidak salah.
library(knitr)
tabel_komparasi <- data.frame(
"Level" = c("90%", "95%", "99%"),
"Team_A_Z_Interval" = c("203.42 - 216.58", "202.16 - 217.84", "199.70 - 220.30"),
"Team_B_t_Interval" = c("203.24 - 216.76", "201.88 - 218.12", "199.10 - 220.90"),
"Keterangan" = c("Z lebih sempit", "Z lebih sempit", "Z lebih sempit")
)
kable(tabel_komparasi,
caption = "Perbandingan Presisi: Z-Interval (Sigma Diketahui) vs t-Interval (Sigma Tidak Diketahui)",
align = "clll")| Level | Team_A_Z_Interval | Team_B_t_Interval | Keterangan |
|---|---|---|---|
| 90% | 203.42 - 216.58 | 203.24 - 216.76 | Z lebih sempit |
| 95% | 202.16 - 217.84 | 201.88 - 218.12 | Z lebih sempit |
| 99% | 199.70 - 220.30 | 199.10 - 220.90 | Z lebih sempit |
Case Study 5
One-Sided Confidence Interval: A Software as a Service (SaaS) company wants to ensure that at least 70% of weekly active users utilize a premium feature.
From the experiment:
\[ n = 250 \quad \text{(total users)} \]
\[ x = 185 \quad \text{(active premium users)} \]
Management is only interested in the lower bound of the estimate.
Tasks:
- Identify the type of Confidence Interval and the appropriate test.
- Compute the one-sided lower Confidence Interval at:
- 90%
- 95%
- 99%
- Visualize the lower bounds for all confidence levels.
- Determine whether the 70% target is statistically satisfied.
1. Identify the type of Confidence Interval and the appropriate test.
Uji yang digunakan adalah One-Sided Z-Test for Proportions. Ukuran Sampel \(n=250\) cukup besar untuk menggunakan distribusi normal (Z). Dan Jenis Confidence Interval One-Sided Confidence Interval (Lower Bound). Yaitu fokus hanya pada batas bawah, karena manajemen ingin memastikan minimal 70% pengguna aktif premium.
2. Compute the one-sided lower Confidence Interval at: 90%; 95%; 99%
Langkah 1: Hitung Proporsi Sampel (\(\hat{p}\))
\[\hat{p} = \frac{x}{n} = \frac{185}{250} = 0.74\]
Langkah 2: Hitung Standard Error (SE)
\[SE = \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\] subtitusi: \[SE = \sqrt{\frac{0.74(1-0.74)}{250}} \approx 0.0277\]
Langkah 3: Rumus One-Sided Lower Confidence Interval
\[\text{Lower Bound} = \hat{p} - (z \times SE)\] subtitusi:
- Confidence Level 90% (\(z = 1.282\)): \[\text{Lower Bound} = \hat{p} - (1.282 \times SE) = 0.74 - (1.282 \times 0.0277) \approx 0.704 \text{ atau } 70.4\%\]
- Confidence Level 95% (\(z = 1.645\)): \[\text{Lower Bound} = \hat{p} - (1.645 \times SE) = 0.74 - (1.645 \times 0.0277) \approx 0.694 \text{ atau } 69.4\%\]
- Confidence Level 95% (\(z = 1.645\)): \[\text{Lower Bound} = \hat{p} - (1.645 \times SE) = 0.74 - (1.645 \times 0.0277) \approx 0.694 \text{ atau } 69.4\%\]
3. Visualize the lower bounds for all confidence levels.
# 1. Load Library
library(ggplot2)
# 2. Persiapan Data (Case Study 5)
n <- 250
x <- 185
p_hat <- x / n # 0.74 (74%)
se <- sqrt(p_hat * (1 - p_hat) / n) # Standard Error
# Menghitung Batas Bawah (Lower Bound) untuk masing-masing level
lb_90 <- p_hat - (1.282 * se) # 70.4%
lb_95 <- p_hat - (1.645 * se) # 69.4%
lb_99 <- p_hat - (2.326 * se) # 67.5%
# 3. Membuat Data Kurva Normal
x_seq <- seq(p_hat - 4*se, p_hat + 4*se, length.out = 1000)
y_seq <- dnorm(x_seq, mean = p_hat, sd = se)
df_density <- data.frame(x = x_seq, y = y_seq)
# 4. Membuat Visualisasi
ggplot(df_density, aes(x = x, y = y)) +
# Kurva Utama
geom_line(size = 1) +
# Arsir wilayah dari Batas Bawah 95% ke arah kanan (sebagai contoh utama)
geom_area(data = subset(df_density, x >= lb_95), fill = "green", alpha = 0.2) +
# Garis Target Manajemen (70%)
geom_vline(xintercept = 0.70, color = "red", linetype = "dashed", size = 1.2) +
annotate("text", x = 0.68, y = 10, label = "Target 70%", color = "red", angle = 90) +
# Garis-garis Batas Bawah (Lower Bounds)
geom_vline(xintercept = lb_90, color = "blue", size = 0.8) +
geom_vline(xintercept = lb_95, color = "darkgreen", size = 0.8) +
geom_vline(xintercept = lb_99, color = "purple", size = 0.8) +
# Label Angka Batas
annotate("label", x = lb_90, y = 15, label = "90% LB (70.4%)", color = "blue", size = 3) +
annotate("label", x = lb_95, y = 10, label = "95% LB (69.4%)", color = "darkgreen", size = 3) +
annotate("label", x = lb_99, y = 5, label = "99% LB (67.5%)", color = "purple", size = 3) +
# Titik p_hat (74%)
geom_point(aes(x = p_hat, y = 0), color = "black", size = 3) +
annotate("text", x = p_hat, y = -1, label = "Sample (74%)") +
# Judul dan Label
labs(
title = "Density Plot: One-Sided Lower Bound (Case Study 5)",
subtitle = "Menganalisis apakah batas bawah keyakinan sudah melewati Target 70%",
x = "Proporsi Pengguna Premium",
y = "Density"
) +
theme_minimal()- penjelasan:
* Kurva (Garis Hitam): Menunjukkan
distribusi kemungkinan proporsi pengguna premium. Puncaknya ada di 74%
(hasil sampel kita).
* Garis Merah Putus-putus (70%): Ini adalah
garis mati dari manajemen. Batas bawah kita harus berada di kanan garis
ini agar target dianggap tercapai secara statistik.
* Garis Biru
(90%): Berada di kanan garis merah. Artinya, pada tingkat kepercayaan
90%, kita berhasil mencapai target.
* Garis Hijau & Ungu (95%
& 99%): Berada di kiri garis merah. Artinya, jika manajemen menuntut
kepastian yang lebih tinggi (95% atau 99%), kita belum bisa menjamin
target 70% terpenuhi karena ada risiko proporsi aslinya masih di bawah
70%.
4. Determine whether the 70% target is statistically satisfied.
- Pada 90% confidence, perusahaan cukup yakin bahwa minimal 70% pengguna aktif menggunakan fitur premium.
- Pada 95% dan 99% confidence, tidak cukup bukti statistik untuk menjamin target 70%.
- Semakin tinggi confidence level → standar bukti semakin ketat → lower bound semakin turun.
Target minimal 70% pengguna premium aktif terpenuhi secara statistik pada tingkat kepercayaan 90%, namun belum terpenuhi pada 95% dan 99% confidence level. Hal ini menunjukkan adanya trade-off antara tingkat keyakinan dan kepastian pencapaian target bisnis.
library(knitr)
# Tabel Final Case Study 5
summary_case5 <- data.frame(
"Confidence_Level" = c("90%", "95%", "99%"),
"Z_Score_One_Sided" = c(1.282, 1.645, 2.326),
"Lower_Bound" = c("70.4%", "69.4%", "67.5%"),
"Target_70_Persen" = c("Tercapai", "Tidak Tercapai", "Tidak Tercapai")
)
kable(summary_case5, align = "clcc", caption = "Ringkasan Batas Bawah Estimasi Pengguna Premium")| Confidence_Level | Z_Score_One_Sided | Lower_Bound | Target_70_Persen |
|---|---|---|---|
| 90% | 1.282 | 70.4% | Tercapai |
| 95% | 1.645 | 69.4% | Tidak Tercapai |
| 99% | 2.326 | 67.5% | Tidak Tercapai |
KESIMPULAN
Setelah melakukan analisis mendalam terhadap kelima studi kasus, terdapat beberapa poin kunci yang dapat disimpulkan:- Trade-off Kepercayaan vs. Presisi: Semakin tinggi tingkat kepercayaan yang kita inginkan (misal 99%), maka rentang interval akan semakin lebar. Artinya, kita mendapatkan kepastian yang lebih tinggi, namun dengan estimasi yang kurang spesifik.
- Pentingnya Ukuran Sampel (\(n\)): Ukuran sampel memiliki peran vital dalam menekan Margin of Error. Semakin banyak data yang kita kumpulkan, semakin sempit (presisi) rentang interval yang dihasilkan, tanpa harus mengorbankan tingkat kepercayaan.
- Pemilihan Distribusi yang Tepat: Penggunaan Z-Test sangat ideal ketika standar deviasi populasi diketahui atau sampel sangat besar. Namun, untuk riset dengan sampel kecil (seperti pada Case Study 2), penggunaan t-Test wajib dilakukan guna memberikan ruang estimasi yang lebih aman bagi data yang lebih fluktuatif.
- Aplikasi Bisnis Nyata: Statistik bukan sekadar angka di atas kertas. Melalui One-Sided Confidence Interval di Case Study 5, kita belajar bahwa meskipun hasil sampel (74%) terlihat melewati target (70%), secara statistik target tersebut belum tentu “aman” terpenuhi pada tingkat kepercayaan 95%. Hal ini mengajarkan manajer produk untuk lebih berhati-hati dalam mengklaim keberhasilan sebuah fitur.
Secara keseluruhan, pemahaman tentang Confidence Interval memungkinkan seorang Data Scientist untuk memberikan rekomendasi yang tidak hanya berbasis data, tetapi juga berbasis risiko yang terukur.
Referensi
- Anderson, D. R., et al. (2020). Statistics for Business & Economics. 14th Edition. Cengage Learning.
- Navidi, W. (2019). Statistics for Engineers and Scientists. 5th Edition. McGraw-Hill Education.
- Walpole, R. E., et al. (2016). Probability & Statistics for Engineers & Scientists. 9th Edition. Pearson.