Tugas Week 13 ~ Confidence Interval

Probability Statistics

Case Study 1

Confidence Interval for Mean, \(\sigma\) 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.

\[ \begin{eqnarray*} \sigma &=& 3.2 \quad \text{(population standard deviation)} \\ n &=& 100 \quad \text{(sample size)} \\ \bar{x} &=& 12.6 \quad \text{(sample mean)} \end{eqnarray*} \]

Tasks

  1. Identify the appropriate statistical test and justify your choice.

    1. Compute the Confidence Intervals for:

      • \(90\%\)
    • \(95\%\)
    • \(99\%\)

      1. Create a comparison visualization of the three confidence intervals.

        1. Interpret the results in a business analytics context.

Jawaban

1. Uji Statistik yang Digunakan

Uji statistik yang digunakan adalah Confidence Interval untuk Mean dengan distribusi Z (Z-distribution), dengan alasan:

  • Simpangan baku populasi diketahui (σ = 3,2), sehingga tidak perlu menggunakan distribusi t.

  • Ukuran sampel besar (n = 100), sehingga asumsi distribusi normal terpenuhi berdasarkan Central Limit Theorem.

  • Tujuan analisis adalah mengestimasi rata-rata populasi, bukan menguji hipotesis.

  • Sesuai dengan teori confidence interval untuk mean dengan σ diketahui, yang menggunakan nilai kritis Z.

2. Perhitungan Confidence Interval

Rumus Confidence Interval (\(\sigma\) diketahui)

\[CI = \bar{x} ± z_{\alpha/2} \times \frac{\sigma}{\sqrt{n}}\]

\(\bar{x}\) = rata-rata sampel

\(z_{\alpha/2}\) = nilai kritis Z sesuai tingkat kepercayaan

\(\sigma\) = simpangan baku populasi

\(n\) = ukuran sampel

Diketahui:

\[ \begin{aligned} \bar{x} = 12.6, \sigma =3.2, n = 100 \end{aligned} \]

a. Confidence Interval 90%

Langkah 1: Standard Error (SE)

\[ \begin{aligned} SE &= \frac{\sigma}{\sqrt{n}} \\ &= \frac{3.2}{\sqrt{100}} \\ &= \frac{3.2}{\sqrt{10}} \\ &= 0.32 \end{aligned} \]

Langkah 2: Margin of Error (ME)

\[z_{0.05} = 1.645\] \[ \begin{aligned} ME &= z \times SE \\ &= 1.645 \times 0.32 \\ &= 0.5264 \\ \end{aligned} \]

Langkah 3: Confidence Interval

\[ \begin{aligned} CI_{90\%} &= \bar{x} \pm ME \\ &= 12.6 \pm 0.5264 \\ &= (12.0736, 13.1264) \approx (12.07, 13.13) \\ \end{aligned} \]

b. Confidence Interval 95%

Langkah 1: Standard Error (SE)

\[SE = 0.32\]

Langkah 2: Margin of Error (ME)

\[z_{0.025} = 1.96\] \[ \begin{aligned} ME &= z \times SE \\ &= 1.96 \times 0.32 \\ &= 0.6272 \\ \end{aligned} \]

Langkah 3: Confidence Interval

\[ \begin{aligned} CI_{95\%} &= \bar{x} \pm ME \\ &= 12.6 \pm 0.6272 \\ &= (11.9728, 13.2272) \approx (11.97, 13.23) \\ \end{aligned} \]

c. Confidence Interval 99%

Langkah 1: Standard Error (SE)

\[SE = 0.32\]

Langkah 2: Margin of Error (ME)

\[z_{0.005} = 2.575\] \[ \begin{aligned} ME &= z \times SE \\ &= 2.575 \times 0.32 \\ &= 0.824 \\ \end{aligned} \]

Langkah 3: Confidence Interval

\[ \begin{aligned} CI_{99\%} &= \bar{x} \pm ME \\ &= 12.6 \pm 0.824 \\ &= (11.776, 13.424) \approx (11.78, 13.42) \\ \end{aligned} \]

3. Visualisasi Confidence Interval

library(ggplot2)
library(plotly)

# Parameter
mean <- 12.6
se <- 3.2 / sqrt(100)

x <- seq(mean - 4*se, mean + 4*se, length.out = 1000)
y <- dnorm(x, mean = mean, sd = se)
df <- data.frame(x = x, y = y)

# Nilai Z
z_90 <- 1.645
z_95 <- 1.96
z_99 <- 2.575

# Batas CI
lower_90 <- mean - z_90 * se
upper_90 <- mean + z_90 * se

lower_95 <- mean - z_95 * se
upper_95 <- mean + z_95 * se

lower_99 <- mean - z_99 * se
upper_99 <- mean + z_99 * se

# Plot gabungan
p <- ggplot(df, aes(x, y)) +
  geom_line(linewidth = 1) +

  # CI 99%
  geom_area(
    data = subset(df, x >= lower_99 & x <= upper_99),
    fill = "#FADADD",
    alpha = 0.5
  ) +

  # CI 95%
  geom_area(
    data = subset(df, x >= lower_95 & x <= upper_95),
    fill = "#E6D9FF",
    alpha = 0.6
  ) +

  # CI 90%
  geom_area(
    data = subset(df, x >= lower_90 & x <= upper_90),
    fill = "#D6ECFA",
    alpha = 0.7
  ) +

  # Mean
  geom_vline(
    xintercept = mean,
    linetype = "dashed",
    linewidth = 1
  ) +

  labs(
    title = "Gabungan Confidence Interval 90%, 95%, dan 99%",
    x = "Rata-rata Transaksi Harian",
    y = "Density"
  ) +
  theme_minimal()

ggplotly(p)

4. Intepretation

Berdasarkan visualisasi confidence interval, rata-rata jumlah transaksi harian per pengguna setelah peluncuran fitur baru berada dalam rentang yang berbeda sesuai tingkat kepercayaan. Pada confidence interval 90%, rentang estimasi paling sempit, yaitu sekitar 12.07–13.13 transaksi per hari. Pada confidence interval 95%, rentang menjadi lebih lebar, yaitu 11.97–13.23 transaksi per hari, sedangkan pada confidence interval 99% rentang estimasi paling luas, yaitu 11.78–13.42 transaksi per hari.

Visualisasi menunjukkan bahwa semakin tinggi tingkat kepercayaan, semakin lebar confidence interval, yang merupakan konsekuensi dari meningkatnya nilai kritis Z pada distribusi Z, karena simpangan baku populasi diketahui.

Case Study 2

Confidence Interval for Mean, \(\sigma\) 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:

  1. Identify the appropriate statistical test and explain why.

    1. Compute the Confidence Intervals for:

      • \(90\%\)
    • \(95\%\)
    • \(99\%\)

      1. Visualize the three intervals on a single plot.

        1. Explain how sample size and confidence level influence the interval width.

Jawaban

1. Uji Statistik yang Digunakan

Uji statistik yang digunakan adalah Confidence Interval untuk Mean dengan distribusi t (t-distribution).

Alasan:

  • Simpangan baku populasi (σ) tidak diketahui, sehingga harus diestimasi dari data sampel.
  • Ukuran sampel kecil (n = 12), sehingga penggunaan distribusi normal (Z) tidak tepat.
  • Data berupa pengukuran numerik (waktu penyelesaian tugas) dan tujuan analisis adalah mengestimasi rata-rata populasi.
  • Dalam kondisi σ tidak diketahui dan n kecil, distribusi t merupakan pendekatan yang sesuai untuk membentuk confidence interval.

2. Perhitungan Confidence Interval (\(\sigma\) tidak diketahui, t-distributiion)

Rumus Umum

\[CI = \bar{x} \pm t_{\alpha / 2}, df \times \frac{s}{\sqrt{n}}\]

\(\bar{x}\) = rata-rata sampel

\(s\) = simpangan baku sampel

\(n\) = ukuran sampel

\(df\) = \(n-1\) = derajat bebas

Data

Jumlah data:

\[n = 12\]

Derajat bebas:

\[df = n - 1 = 11\]

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 \]

a. Menghitung Rata-rata Sampel

\[\bar{x} = \frac{\sum x_i}{n}\]

Jumlah seluruh data:

\[\sum x_i = 101.5\] \[\bar{x} = \frac{101.5}{12} = 8.4583\]

b. Menghitung Simpangan Baku Sampel

Rumus simpangan baku sampel:

\[s = \sqrt{\frac{\sum (x_i - \bar{x})^2}{n-1}}\]

Hasil perhitungan:

\[ s \approx 0.42\]

c. Menghitung Standard Error

\[ \begin{aligned} SE &= \frac{s}{\sqrt{n}} \\ &= \frac{0.42}{\sqrt{12}} \\ &= \frac{0.42}{3.464} \approx 0.121 \end{aligned} \]

d. Confidence Interval 90%

Nilai kritis:

\[t_{0.05, 11} = 1.796\]

Margin of Error (ME):

\[ME_{90\%} = 1.796 \times 0.121 \approx 0.217\]

Confidence Interval:

\[ \begin{aligned} CI_{90\%} &= 8.4583 \pm 0.217 \\ &= (8.24, 8.68) \end{aligned} \]

e. Confidence Interval 95%

Nilai kritis:

\[t_{0.025, 11} = 2.201\]

Margin of Error (ME):

\[ME_{95\%} = 2.201 \times 0.121 \approx 0.266\]

Confidence Interval:

\[ \begin{aligned} CI_{95\%} &= 8.4583 \pm 0.266 \\ &= (8.19, 8.72) \end{aligned} \]

f. Confidence Interval 99%

Nilai kritis:

\[t_{0.005, 11} = 3.106\]

Margin of Error (ME):

\[ME_{99\%} = 3.106 \times 0.121 \approx 0.376\]

Confidence Interval:

\[ \begin{aligned} CI_{99\%} &= 8.4583 \pm 0.376 \\ &= (8.08, 8.83) \end{aligned} \]

3. Visualisasi

library(ggplot2)
library(plotly)

mean_x <- 8.4583
SE <- 0.121
df <- 11

# Nilai t
t_90 <- 1.796
t_95 <- 2.201
t_99 <- 3.106

# Interval
CI <- data.frame(
  level = c("90%", "95%", "99%"),
  lower = mean_x - c(t_90, t_95, t_99) * SE,
  upper = mean_x + c(t_90, t_95, t_99) * SE
)

x <- seq(mean_x - 4*SE, mean_x + 4*SE, length.out = 500)
density <- dt((x - mean_x) / SE, df)

df_density <- data.frame(x, density)

p <- ggplot(df_density, aes(x, density)) +
  geom_line(color = "#444444", linewidth = 1) +

  # 99%
  geom_ribbon(
    data = subset(df_density, x >= CI$lower[3] & x <= CI$upper[3]),
    aes(ymin = 0, ymax = density),
    fill = "#FADADD",
    alpha = 0.7
  ) +

  # 95%
  geom_ribbon(
    data = subset(df_density, x >= CI$lower[2] & x <= CI$upper[2]),
    aes(ymin = 0, ymax = density),
    fill = "#E6D9FF",
    alpha = 0.8
  ) +

  # 90%
  geom_ribbon(
    data = subset(df_density, x >= CI$lower[1] & x <= CI$upper[1]),
    aes(ymin = 0, ymax = density),
    fill = "#D6ECFA",
    alpha = 0.9
  ) +

  labs(
    title = "Confidence Interval for Mean (t-distribution)",
    subtitle = "90%, 95%, dan 99% Confidence Levels",
    x = "Task Completion Time (minutes)",
    y = "Density"
  ) +
  theme_minimal()

ggplotly(p)

4. Interpretation

Berdasarkan visualisasi confidence interval menggunakan t-distribution, rata-rata waktu penyelesaian tugas pengguna aplikasi diperkirakan berada pada rentang yang berbeda untuk setiap tingkat kepercayaan. Confidence interval 90% menghasilkan rentang yang paling sempit, sedangkan confidence interval 99% menghasilkan rentang yang paling lebar.

Visualisasi menunjukkan bahwa peningkatan tingkat kepercayaan menyebabkan interval kepercayaan semakin lebar, karena nilai kritis pada distribusi t meningkat. Hal ini mencerminkan adanya ketidakpastian yang lebih besar akibat ukuran sampel yang kecil (n = 12) dan simpangan baku populasi yang tidak diketahui.

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:

\[ \begin{eqnarray*} n &=& 400 \quad \text{(total users)} \\ x &=& 156 \quad \text{(users who clicked the CTA)} \end{eqnarray*} \]

Tasks:

  1. Compute the sample proportion \(\hat{p}\).

    1. Compute Confidence Intervals for the proportion at:

      • \(90\%\)
    • \(95\%\)
    • \(99\%\)

      1. Visualize and compare the three intervals.

        1. Explain how confidence level affects decision-making in product experiments.

Jawaban

1. Menghitung Proporsi Sampel (\(\hat{p}\))

Proporsi sampel (\(\hat{p}\)) didefinisikan perbandingan jumlah pengguna yang berhasil (klik CTA) terhadap jumlah total pengguna dalam eksperimen.

Rumus

\[\hat{p} = \frac{x}{n}\]

Perhitungan

\[\hat{p} = \frac{156}{400} = 0.39\]

Hasil

Nilai proporsi sampel adalah: \[\hat{p} = 0.39\] Artinya, sekitar 39% pengguna dalam eksperimen A/B test mengklik tombol CTA dengan desain baru.

2. Confidence Interval untuk Proporsi

Karena ukuran sampel besar (\(n = 400\)), confidence interval proporsi dihitung menggunakan distribusi Z dengan rumus:

\[\hat{p}\pm z_{\alpha/2}\sqrt\frac{\hat{p}(1-\hat{p})}{n}\]

\(\hat{p}\) = Proporsi sampel

\(z_{\alpha/2}\) = nilai kritis Z

\(n\) = ukuran sampel

Langkah Awal (sama untuk semua CI)

Diketahui:

\[\hat{p} = 0.39, n = 400\]

Standard Error (SE)

\[ \begin{aligned} SE &= \sqrt\frac{0.39(1-0.39)}{400} \\ &= \sqrt\frac{0.2379}{400} \\ &= \sqrt 0.00059475 \approx 0.0244 \end{aligned} \]

a. Confidence Interval 90%

Nilai kritis:

\[z_{0.05} = 1.645\]

Margin of Error (ME):

\[ME = 1.645 \times 0.0244 \approx 0.0401\]

Confidence Interval:

\[ \begin{aligned} CI_{90\%} &= (\hat{p} - z_{0.05} \cdot SE, \hat{p} + z_{0.05} \cdot SE) \\ &= (0.39 - 1.645(0.0244), 0.39 + 1.645(0.0244)) \\ &= (0.3499, 0.4301) \approx (0.35, 0.43) \end{aligned} \]

b. Confidence Interval 95%

Nilai kritis

\[z_{0.025} = 1.96\]

Margin of Error (ME)

\[ME = 1.96 \times 0.0244 \approx 0.0478\]

Confidence Interval:

\[ \begin{aligned} CI_{95\%} &= (\hat{p} - z_{0.025} \cdot SE, \hat{p} + z_{0.025} \cdot SE) \\ &= (0.39 - 1.96(0.0244), 0.39 + 1.96(0.0244)) \\ &= (0.3422, 0.4378) \approx (0.34, 0.44) \end{aligned} \]

c. Confidence Interval 99%

Nilai kritis:

\[z_{0.005} = 2.576\]

Margin of Error (ME):

\[ME = 2.576 \times 0.0244 \approx 0.0629\]

Confidence Interval:

\[ \begin{aligned} CI_{99\%} &= (\hat{p} - z_{0.005} \cdot SE, \hat{p} + z_{0.005} \cdot SE) \\ &= (0.39 - 2.576(0.0244), 0.39 + 2.576(0.0244)) \\ &= (0.3271, 0.4529) \approx (0.33, 0.45) \end{aligned} \]

3. Visualisasi Confidence Interval Proporsi (A/B Testing)

library(ggplot2)
library(plotly)

p_hat <- 0.39
SE <- 0.0244

z_90 <- 1.645
z_95 <- 1.96
z_99 <- 2.576

# CI bounds
CI_90 <- c(p_hat - z_90*SE, p_hat + z_90*SE)
CI_95 <- c(p_hat - z_95*SE, p_hat + z_95*SE)
CI_99 <- c(p_hat - z_99*SE, p_hat + z_99*SE)

x <- seq(p_hat - 4*SE, p_hat + 4*SE, length.out = 500)
density <- dnorm(x, mean = p_hat, sd = SE)

df <- data.frame(x, density)

p <- ggplot(df, aes(x, density)) +
  geom_line(color = "#333333", linewidth = 1) +

  # 99%
  geom_ribbon(
    data = subset(df, x >= CI_99[1] & x <= CI_99[2]),
    aes(ymin = 0, ymax = density),
    fill = "#F7C6D0",
    alpha = 0.5
  ) +

  # 95%
  geom_ribbon(
    data = subset(df, x >= CI_95[1] & x <= CI_95[2]),
    aes(ymin = 0, ymax = density),
    fill = "#D6CDEA",
    alpha = 0.6
  ) +

  # 90%
  geom_ribbon(
    data = subset(df, x >= CI_90[1] & x <= CI_90[2]),
    aes(ymin = 0, ymax = density),
    fill = "#BEE7E8",
    alpha = 0.7
  ) +

  geom_vline(xintercept = p_hat, linetype = "dashed", color = "#444444") +

  labs(
    title = "Confidence Interval Proporsi Klik CTA (Z-distribution)",
    subtitle = "Perbandingan CI 90%, 95%, dan 99%",
    x = "Proporsi Klik (p̂)",
    y = "Density"
  ) +
  theme_minimal()

ggplotly(p)

Interpretation

Berdasarkan visualisasi, confidence interval 90% mencakup area paling sempit di sekitar proporsi klik, sedangkan confidence interval 99% mencakup area paling luas. Hal ini menunjukkan bahwa semakin tinggi tingkat kepercayaan, semakin besar rentang ketidakpastian estimasi proporsi.

Dalam konteks A/B testing, pemilihan tingkat kepercayaan memengaruhi ketegasan keputusan produk: interval yang lebih sempit memberikan estimasi yang lebih presisi, sementara interval yang lebih lebar memberikan tingkat keyakinan yang lebih tinggi terhadap hasil eksperimen.

4. Pengaruh Confidence Level terhadap Pengambilan Keputusan Produk

Tingkat kepercayaan (confidence level) memengaruhi seberapa yakin tim produk terhadap hasil eksperimen A/B testing. Confidence level yang lebih tinggi (misalnya 99%) menghasilkan interval kepercayaan yang lebih lebar, sehingga keputusan yang diambil lebih berhati-hati, namun estimasi dampak fitur menjadi kurang spesifik.

Sebaliknya, confidence level yang lebih rendah (misalnya 90%) menghasilkan interval yang lebih sempit, sehingga memberikan estimasi yang lebih presisi dan memungkinkan pengambilan keputusan yang lebih cepat. Namun, tingkat keyakinan terhadap hasil eksperimen menjadi lebih rendah.

Dalam praktik product experimentation, pemilihan confidence level merupakan trade-off antara ketepatan estimasi dan tingkat keyakinan, yang perlu disesuaikan dengan risiko bisnis, dampak fitur, dan urgensi pengambilan keputusan.

Case Study 4

Precision Comparison (Z-Test vs t-Test): Two data teams measure API latency (in milliseconds) under different conditions.

\[\begin{eqnarray*} \text{Team A:} \\ n &=& 36 \quad \text{(sample size)} \\ \bar{x} &=& 210 \quad \text{(sample mean)} \\ \sigma &=& 24 \quad \text{(known population standard deviation)} \\[6pt] \text{Team B:} \\ n &=& 36 \quad \text{(sample size)} \\ \bar{x} &=& 210 \quad \text{(sample mean)} \\ s &=& 24 \quad \text{(sample standard deviation)} \end{eqnarray*}\]

Tasks

  1. Identify the statistical test used by each team.

    1. Compute Confidence Intervals for 90%, 95%, and 99%.

      1. Create a visualization comparing all intervals.

        1. Explain why the interval widths differ, even with similar data.

Jawaban

1. Uji Statistik yang Digunakan oleh Masing-Masing Tim

Tim A

Tim A menggunakan Confidence Interval untuk Mean dengan distribusi Z (Z-distribution).

Alasan:

  • Simpangan baku populuasi diketahui (\(\sigma = 24\)).
  • Ukuran sampel cukup besar (\(n = 36\)), sehingga asumsi distribusi normal terpenuhi.
  • Tujuan analisis adalah mengestimasi rata-rata latency populasi, bukan membandingkan dua kelompok.

Tim B

Tim B menggunakan Confidence Interval untuk Mean dengan distribusi t (t-distribution).

Alasan:

  • Simpangan baku populasi tidak diketahui, sehingga harus diestimasi menggunakan simpangan baku sampel (\(s = 24\)).
  • Meskipun ukuran sampel sama (\(n = 36\)), ketidakpastian lebih besar karena estimasi simpangan baku.
  • Kondisi ini sesuai dengan penggunaan distribusi t untuk membentuk confidence interval mean.

2. Perhitungan Confidence Interval

Tim A (Z-Distribution, \(\sigma\) diketahui)

Data Tim A

\[n = 36, \bar{x} = 210, \sigma = 24\]

Standard Error (SE)

\[ \begin{aligned} SE &= \frac {\sigma}{\sqrt{n}} \\ &= \frac {24}{\sqrt{36}} \\ &= \frac {24}{6} \\ &= 4 \end{aligned} \]

Rumus Confidence Interval (Z)

\[CI = \bar{x} \pm z_{\alpha/2} \cdot SE\]

a. Confidence Interval 90%

Nilai kritis:

\[z_{0.05} = 1.645\]

Margin of Error (ME):

\[ME = 1.645 \times 4 = 6.58\]

Confidence Interval:

\[ \begin{aligned} CI_{90\%} &= (210 - 6.58, 210 + 6.58) \\ &= (203.42, 216.58) \end{aligned} \]

b. Confidence Interval 95%

Nilai kritis:

\[z_{0.025} = 1.96\]

Margin of Error (ME):

\[ME = 1.96 \times 4 = 7.84\]

Confidence Interval:

\[ \begin{aligned} CI_{95\%} &= (210 - 7.84, 210 + 7.84) \\ &= (202.16, 217.84) \end{aligned} \]

c. Confidence Interval 99%

Nilai kritis:

\[z_{0.005} = 2.576\]

Margin of Error (ME):

\[ME = 2.576 \times 4 = 10.304\]

Confidence Interval:

\[ \begin{aligned} CI_{99\%} &= (210 - 10.304, 210 + 10.304) \\ &= (199.70, 220.30) \end{aligned} \]

Tim B (t-Distribution, \(\sigma\) tidak diketahui)

Data Tim B

\[n = 36, \bar{x} = 210, s = 24\]

Derajat kebebasan:

\[df = n - 1 = 36 - 1 = 35\]

Standard Error (SE)

\[ \begin{aligned} SE &= \frac{s}{\sqrt{n}} \\ &= \frac{24}{\sqrt{36}} \\ &= \frac{24}{6} \\ &= 4 \end{aligned} \]

(nilai SE sama, tetapi distribusi berbeda)

Rumus Confidence Interval (t)

\[CI = \bar{x} \pm t_{\alpha/2, df} \cdot SE\]

a. Confidence Interval 90%

Nilai kritis:

\[t_{0.05, 35} \approx 1.690\]

Margin of Error (ME):

\[ME = 1.690 \times 4 = 6.76\]

Confidence Interval:

\[ \begin{aligned} CI_{90\%} &= (210 - 6.76, 210 + 6.76) \\ &= (203.24, 216.76) \end{aligned} \]

b. Confidence Interval 95%

Nilai kritis:

\[t_{0.025, 35} \approx 1.030\]

Margin of Error (ME):

\[ME = 2.030 \times 4 = 8.12\]

Confidence Interval:

\[ \begin{aligned} CI_{95\%} &= (210 - 8.12, 210 + 8.12) \\ &= (201.88, 218.12) \end{aligned} \]

c. Confidence Interval 99%

Nilai kritis:

\[t_{0.005, 35} \approx 2.724\]

Margin of Error (ME):

\[ME = 2.724 \times 4 = 10.896\]

Confidence Interval:

\[ \begin{aligned} CI_{99\%} &= (210 - 10.896, 210 + 10.896) \\ &= (199.10, 220.90) \end{aligned} \]

Tabel Perbandingan Confidence Interval

Tingkat CI Tim A (Z-test) Tim B (t-test, df = 35)
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)

3. Visualisasi

Tim A (Z-distribution)

library(ggplot2)
library(plotly)

# Parameter Tim A
mu <- 210
SE <- 4

z90 <- 1.645
z95 <- 1.96
z99 <- 2.576

CI90 <- c(mu - z90*SE, mu + z90*SE)
CI95 <- c(mu - z95*SE, mu + z95*SE)
CI99 <- c(mu - z99*SE, mu + z99*SE)

x <- seq(mu - 4*SE, mu + 4*SE, length.out = 500)
density <- dnorm(x, mean = mu, sd = SE)
df <- data.frame(x, density)

pA <- ggplot(df, aes(x, density)) +
  geom_line(color = "#333333", linewidth = 1) +

  geom_ribbon(data = subset(df, x >= CI99[1] & x <= CI99[2]),
              aes(ymin = 0, ymax = density),
              fill = "#F7C6D0", alpha = 0.4) +

  geom_ribbon(data = subset(df, x >= CI95[1] & x <= CI95[2]),
              aes(ymin = 0, ymax = density),
              fill = "#D6CDEA", alpha = 0.5) +

  geom_ribbon(data = subset(df, x >= CI90[1] & x <= CI90[2]),
              aes(ymin = 0, ymax = density),
              fill = "#BEE7E8", alpha = 0.6) +

  geom_vline(xintercept = mu, linetype = "dashed") +

  labs(
    title = "Confidence Interval API Latency – Team A",
    subtitle = "Z-distribution (σ diketahui)",
    x = "API Latency (ms)",
    y = "Density"
  ) +
  theme_minimal()

ggplotly(pA)

Tim B (t-distribution)

library(ggplot2)
library(plotly)

# Parameter
mu <- 210
SE <- 4
dfree <- 35

# CI
t90 <- 1.690
t95 <- 2.030
t99 <- 2.724

CI90 <- c(mu - t90*SE, mu + t90*SE)
CI95 <- c(mu - t95*SE, mu + t95*SE)
CI99 <- c(mu - t99*SE, mu + t99*SE)

# X range (dibikin fokus biar lonceng kelihatan)
x <- seq(mu - 3.5*SE, mu + 3.5*SE, length.out = 600)

# Density t-distribution (DINORMALISASI ke skala data)
density_t <- dt((x - mu)/SE, dfree) / SE
df_t <- data.frame(x, density = density_t)

# Plot
p_t <- ggplot(df_t, aes(x, density)) +
  geom_line(color = "#7A5C00", linewidth = 1.2) +

  geom_ribbon(data = subset(df_t, x >= CI99[1] & x <= CI99[2]),
              aes(ymin = 0, ymax = density),
              fill = "#F7C6D0", alpha = 0.35) +

  geom_ribbon(data = subset(df_t, x >= CI95[1] & x <= CI95[2]),
              aes(ymin = 0, ymax = density),
              fill = "#D6CDEA", alpha = 0.45) +

  geom_ribbon(data = subset(df_t, x >= CI90[1] & x <= CI90[2]),
              aes(ymin = 0, ymax = density),
              fill = "#BEE7E8", alpha = 0.55) +

  geom_vline(xintercept = mu, linetype = "dashed") +

  labs(
    title = "Confidence Interval for Mean",
    subtitle = "t-distribution (bell-shaped, df = 35)",
    x = "API Latency (ms)",
    y = "Density"
  ) +
  theme_minimal()

ggplotly(p_t)

4. Mengapa Lebar Confidence Interval Berbeda Meskipun Datanya Mirip?

  • Tim A (Z-distribution) menggunakan uji Z karena simpangan baku populasi diketahui. Hal ini membuat tingkat ketidakpastian lebih rendah sehingga nilai kritis Z lebih kecil. Akibatnya, margin of error lebih kecil dan confidence interval yang dihasilkan lebih sempit, mencerminkan estimasi rata-rata API latency yang lebih presisi.

  • Tim B (t-distribution) menggunakan uji t karena simpangan baku populasi tidak diketahui dan harus diestimasi dari sampel. Estimasi simpangan baku menambah ketidakpastian sehingga nilai kritis t lebih besar. Distribusi t memiliki ekor yang lebih tebal dibandingkan distribusi Z, sehingga margin of error meningkat dan confidence interval menjadi lebih lebar.

Perbandingan keseluruhan, meskipun kedua tim memiliki ukuran sampel dan nilai rata-rata yang sama, confidence interval Tim B selalu lebih lebar dibandingkan Tim A. Perbedaan ini sepenuhnya disebabkan oleh perbedaan asumsi statistik yang digunakan, di mana distribusi t bersifat lebih konservatif dalam menghadapi ketidakpastian data dibandingkan distribusi Z.

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:

\[ \begin{eqnarray*} n &=& 250 \quad \text{(total users)} \\ x &=& 185 \quad \text{(active premium users)} \end{eqnarray*} \]

Management is only interested in the lower bound of the estimate.

Tasks:

  1. Identify the type of Confidence Interval and the appropriate test.

    1. Compute the one-sided lower Confidence Interval at:

      • \(90\%\)
    • \(95\%\)
    • \(99\%\)

      1. Visualize the lower bounds for all confidence levels.

        1. Determine whether the 70% target is statistically satisfied.</p.

Jawaban

1. Identifikasi Jenis Confidence Interval dan Uji yang Tepat

Confidence interval yang digunakan one-sided (lower) confidence interval untuk proporsi, karena manajemen hanya ingin mengetahui batas bawah dari proporsi pengguna yang menggunakan fitur premium, untuk memastikan nilainya tidak kurang dari 70%.

Metode yang digunakan adalah Z-distribution untuk proporsi, dengan alasan:

  • Data berbentuk proporsi (pengguna premium dari total pengguna).
  • Ukuran sampel cukup besar (n = 250).
  • Syarat pendekatan normal terpenuhi: np ≥ 5 dan n(1 - p) ≥ 5
  • Interval yang dibutuhkan bersifat satu sisi (lower bound).

2. Perhitungan One-Sided Lower Confidence Interval

Rumus Umum (One-Sided Lower)

\[\hat{p} - z_{\alpha} \sqrt \frac{\hat{p}(1 - \hat{p})}{n}\]

Langkah Awal (Berlaku untuk semua tingkat kepercayaan)

Hitung Proporsi Sampel:

\[\hat{p} = \frac{x}{n} = \frac{185}{250} = 0.74\]

Hitung Standard Error (SE):

\[ \begin{aligned} SE &= \sqrt\frac{0.74(1 - 0.74)}{250} \\ &= \sqrt\frac{0.1924}{250} \\ &= \sqrt 0.0007696 \approx 0.0277 \end{aligned} \]

a. One-Sided CI 90%

Nilai kritis:

\[z_{0.10} =1.28\]

Margin of Error:

\[ME = 1.28 \times 0.0277 \approx 0.0355\]

Lower Bound:

\[ \begin{aligned} CI_{lower} &= \hat{p} - ME \\ &= 0.74 - 0.0355 \\ &= 0.7045 \end{aligned} \] \[(0.7045, 1)\]

b. One-Sided CI 95%

Nilai kritis:

\[z_{0.05} = 1.645\]

Margin of Error:

\[ME = 1.645 \times 0.0277 \approx 0.0456\]

Lower Bound:

\[ \begin{aligned} CI_{lower} &= \hat{p} - ME \\ &= 0.74 - 0.0456 \\ &= 0.6944 \end{aligned} \] \[(0.6944, 1)\]

c. One-Sided CI 99%

Nilai kritis:

\[z_{0.01} = 2.33\]

Margin of Error:

\[ME = 2.33 \times 0.0277 \approx 0.0646\]

Lower Bound:

\[ \begin{aligned} CI_{lower} = \hat{p} - ME \\ &= 0.74 - 0.0646 \\ &= 0.6754 \end{aligned} \] \[(0.6754, 1)\]

3. visualisasi

library(ggplot2)
library(plotly)

# Parameter utama
p_hat <- 0.74
SE <- 0.0277

# Data CI
ci <- data.frame(
  level = c("90%", "95%", "99%"),
  z = c(1.28, 1.645, 2.33),
  lower = c(0.7045, 0.6944, 0.6754)
)

# Density normal
x <- seq(0.60, 0.85, length.out = 1000)
dens <- data.frame(
  x = x,
  y = dnorm(x, mean = p_hat, sd = SE)
)

# Arsiran masing-masing CI
shade_90 <- subset(dens, x <= ci$lower[ci$level == "90%"])
shade_95 <- subset(dens, x <= ci$lower[ci$level == "95%"])
shade_99 <- subset(dens, x <= ci$lower[ci$level == "99%"])

p <- ggplot(dens, aes(x, y)) +
  geom_line(color = "#2F4F6F", linewidth = 1.2) +
  
  # Arsiran lower tail
  geom_area(data = shade_99, aes(x, y),
            fill = "#C3B1E1", alpha = 0.4) +
  geom_area(data = shade_95, aes(x, y),
            fill = "#F6C1CC", alpha = 0.5) +
  geom_area(data = shade_90, aes(x, y),
            fill = "#B5EAD7", alpha = 0.6) +
  
  # Mean
  geom_vline(xintercept = p_hat,
             linetype = "dashed",
             linewidth = 1,
             color = "black") +
  
  # Lower bounds
  geom_vline(data = ci,
             aes(xintercept = lower, color = level),
             linetype = "dotted",
             linewidth = 1.2) +
  
  scale_color_manual(
    values = c(
      "90%" = "#2ECC71",
      "95%" = "#E67E9B",
      "99%" = "#9B8CD9"
    )
  ) +
  
  labs(
    title = "One-Sided Lower Confidence Intervals for Population Proportion",
    subtitle = "Shaded Areas Represent Lower Tails (α)",
    x = "Proportion (p)",
    y = "Probability Density",
    color = "Confidence Level"
  ) +
  
  theme_minimal(base_size = 13)

ggplotly(p)

Intereptasi

Grafik density menunjukkan sebaran estimasi proporsi pengguna premium yang berpusat di sekitar \(\hat{p}=0.74\), dengan arsiran di sisi kiri merepresentasikan daerah ketidakpastian (lower tail) untuk masing-masing tingkat kepercayaan. Terlihat bahwa batas bawah CI 90% masih berada di atas garis target 0.70, sedangkan batas bawah CI 95% dan 99% bergeser ke kiri hingga melewati nilai tersebut. Hal ini menunjukkan bahwa semakin tinggi tingkat kepercayaan, semakin konservatif batas bawah yang dihasilkan, sehingga klaim pencapaian target 70% menjadi semakin sulit dipenuhi.

4. Penentuan Target 70%

Keputusan ditentukan dengan membandingkan batas bawah one-sided confidence interval dengan target 70% (0.70).

  • CI 90%, batas bawah = 0.7045 → lebih besar dari 0.70, target terpenuhi.
  • CI 95%, batas bawah = 0.6944 → lebih kecil dari 0.70, target belum terpenuhi.
  • CI 99%, batas bawah = 0.6754 → lebih kecil dari 0.70, target belum terpenuhi.

Target 70% pengguna aktif premium hanya dapat dinyatakan tercapai secara statistik pada tingkat kepercayaan 90%. Pada tingkat kepercayaan yang lebih tinggi (95% dan 99%), batas bawah interval turun di bawah 70%, sehingga klaim tersebut belum dapat dibuat dengan keyakinan yang lebih kuat.

Referensi

[1] Siregar, B.(n.d). Introduction to Statistics:Chapter 8:Confidence Interval.dsciencelabs. https://bookdown.org/dsciencelabs/intro_statistics/08-Confidence_Interval.html

[2] Wulandari, T.(2023). Estimasi dan Confidence Interval [PDF]. Universitas Bengkulu. https://id.scribd.com/document/466523881/ESTIMASI-DAN-CONFIDENCE-INTERVAL