ULIN NIKMAH (52250042)

INSTITUT TEKNOLOGI SAINS BANDUNG

Mata Kuliah: Statistika Dasar Program Studi: Sains Data Dosen Pengampu: Bakti Siregar, M.SC., CDS.

Case Study 1

One-Sample Z-Test (Statistical Hypotheses)

A digital learning platform claims that the average daily study time of its users is 120 minutes. Based on historical records, the population standard deviation is known to be 15 minutes.

A random sample of 64 users shows an average study time of 116 minutes.

\[ \begin{eqnarray*} \mu_0 &=& 120 \\ \sigma &=& 15 \\ n &=& 64 \\ \bar{x} &=& 116 \end{eqnarray*} \]

Tasks

  1. Formulate the Null Hypothesis (H₀) and Alternative Hypothesis (H₁).
  2. Identify the appropriate statistical test and justify your choice.
  3. Compute the test statistic and p-value using \(\alpha = 0.05\).
  4. State the statistical decision.
  5. Interpret the result in a business analytics context.

Jawaban:

1.1. Perumusan Hipotesis

Karena perusahaan mengklaim bahwa rata-rata waktu belajar adalah 120 menit, maka klaim tersebut ditempatkan pada hipotesis nol.

Tidak disebutkan arah pengujian secara khusus (hanya ingin mengetahui apakah klaim benar atau tidak), sehingga digunakan uji dua sisi.

\[ \begin{aligned} H_0 &: \mu = 120 \\ H_1 &: \mu \neq 120 \end{aligned} \]

1.2. Uji Statistik yang Digunakan

Uji statistik yang digunakan adalah Uji Z satu sampel.

Alasan pemilihan uji:

  • Simpangan baku populasi diketahui, yaitu
    \[\sigma = 15\]

  • Ukuran sampel cukup besar, yaitu
    \[n = 64 \ge 30\]

  • Tujuan pengujian adalah membandingkan rata-rata satu populasi terhadap nilai tertentu.

Oleh karena itu, Uji Z satu sampel merupakan metode yang tepat untuk digunakan.

1.3. Perhitungan Statistik Uji (Z-hitung) dan Nilai p (p-value)

Statistik uji yang digunakan pada uji Z satu sampel adalah:

\[ Z = \frac{\bar{x} - \mu_0}{\sigma / \sqrt{n}} \]

Dengan mensubstitusikan nilai yang diketahui:

\[ Z = \frac{116 - 120}{15 / \sqrt{64}} \]

\[ Z = \frac{-4}{15 / 8} \]

\[ Z = \frac{-4}{1{,}875} \]

\[ Z \approx -2{,}13 \]

Karena pengujian dilakukan dengan uji dua sisi, maka nilai p-value dihitung sebagai:

\[ p\text{-value} = 2 \times P(Z \le -2{,}13) \]

Berdasarkan tabel distribusi normal baku diperoleh:

\[ P(Z \le -2{,}13) \approx 0{,}0166 \]

Sehingga:

\[ p\text{-value} = 2 \times 0{,}0166 = 0{,}0332 \]

1.4. Keputusan Statistik

Kriteria Keputusan

Hipotesis nol \(H_0\) ditolak jika:

\[ p\text{-value} < \alpha \]

dengan tingkat signifikansi:

\[ \alpha = 0{,}05 \]

Perbandingan

\[ 0{,}0332 < 0{,}05 \]

Keputusan

Karena nilai p-value lebih kecil dari \(\alpha\), maka hipotesis nol (\(H_0\)) ditolak.

1.5. Interpretasi dalam Konteks Analitik Bisnis

Hasil pengujian statistik menunjukkan bahwa terdapat perbedaan yang signifikan secara statistik antara rata-rata waktu belajar aktual pengguna dengan klaim perusahaan sebesar 120 menit per hari.

Pada tingkat signifikansi 5%, data sampel memberikan bukti yang cukup untuk menyimpulkan bahwa rata-rata waktu belajar pengguna bukan 120 menit. Berdasarkan hasil sampel, rata-rata waktu belajar aktual pengguna terlihat lebih rendah, yaitu sekitar 116 menit per hari.

Implikasi Bisnis

  • Klaim platform mengenai durasi belajar rata-rata pengguna perlu ditinjau ulang agar selaras dengan data aktual.
  • Perusahaan dapat mempertimbangkan strategi peningkatan user engagement, seperti pengembangan fitur belajar, peningkatan kualitas konten, atau penggunaan reminder belajar.
  • Temuan ini penting untuk menjaga keakuratan laporan kinerja yang disampaikan kepada investor, mitra, maupun pemangku kepentingan lainnya.

1.6 Visulisasi

library(plotly)

# ===============================
# Parameter uji Z
# ===============================
z_hitung <- -2.13
alpha <- 0.05
z_kritis <- qnorm(1 - alpha/2)
p_value <- 0.0332

# Data kurva normal
x <- seq(-4, 4, length.out = 1000)
y <- dnorm(x)

# ===============================
# Plot interaktif (legend bawah)
# ===============================
plot_ly() %>%
  
  # Kurva normal
  add_lines(
    x = ~x, y = ~y,
    name = "Kurva Normal",
    line = list(width = 2)
  ) %>%
  
  # Daerah penolakan kiri
  add_trace(
    x = ~x[x <= -z_kritis],
    y = ~y[x <= -z_kritis],
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(128,0,128,0.3)",
    name = "Daerah Penolakan H₀"
  ) %>%
  
  # Daerah penolakan kanan (tanpa dobel legend)
  add_trace(
    x = ~x[x >= z_kritis],
    y = ~y[x >= z_kritis],
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(128,0,128,0.3)",
    showlegend = FALSE
  ) %>%
  
  # Garis Z-hitung
  add_lines(
    x = c(z_hitung, z_hitung),
    y = c(0, max(y)),
    name = "Z-hitung",
    line = list(dash = "dash", width = 2)
  ) %>%
  
  # Garis Z-kritis
  add_lines(
    x = c(-z_kritis, -z_kritis),
    y = c(0, max(y)),
    name = "Z-kritis",
    line = list(dash = "dot")
  ) %>%
  add_lines(
    x = c(z_kritis, z_kritis),
    y = c(0, max(y)),
    showlegend = FALSE,
    line = list(dash = "dot")
  ) %>%
  
  # ===============================
  # Layout
  # ===============================
  layout(
    title = list(
      text = "<b>Kurva Normal Interaktif – Uji Z Satu Sampel</b>",
      x = 0.5,
      y = 0.95
    ),
    xaxis = list(title = "Nilai Z"),
    yaxis = list(title = "Density"),
    
    legend = list(
      orientation = "h",
      x = 0.5,
      xanchor = "center",
      y = -0.25   # posisi legend di bawah grafik
    ),
    
    margin = list(
    t = 75,   
    b = 80     
   ),
   
    annotations = list(
      list(
        x = z_hitung,
        y = 0.12,
        text = "Z-hitung = -2,13",
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = -z_kritis,
        y = 0.08,
        text = "Z-kritis = -1,96",
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = z_kritis,
        y = 0.08,
        text = "Z-kritis = 1,96",
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = 0,
        y = 0.35,
        text = "p-value = 0,0332",
        showarrow = FALSE
      )
    )
  )

Interpretasi Hasil Uji Z Satu Sampel

Hasil uji Z satu sampel menunjukkan bahwa nilai Z-hitung sebesar -2,13 berada di luar batas kritis ±1,96 untuk tingkat signifikansi 0,05. Hal ini menunjukkan bahwa Z-hitung jatuh di daerah penolakan hipotesis nol. Selain itu, p-value sebesar 0,0332 lebih kecil dari 0,05, yang menguatkan keputusan statistik untuk menolak hipotesis nol. Dengan kata lain, hasil sampel memberikan bukti yang cukup untuk menyimpulkan adanya perbedaan yang signifikan secara statistik dari nilai yang dihipotesiskan.

Case Study 2

One-Sample T-Test (σ Unknown, Small Sample)

A UX Research Team investigates whether the average task completion time of a new application differs from 10 minutes.

The following data are collected from 10 users:

\[ 9.2,\; 10.5,\; 9.8,\; 10.1,\; 9.6,\; 10.3,\; 9.9,\; 9.7,\; 10.0,\; 9.5 \]

Tasks

  1. Define H₀ and H₁ (two-tailed).
  2. Determine the appropriate hypothesis test.
  3. Calculate the t-statistic and p-value at \(\alpha = 0.05\).
  4. Make a statistical decision.
  5. Explain how sample size affects inferential reliability.

Jawaban:

Data dan Parameter Uji

Data Waktu Penyelesaian Tugas

Data waktu penyelesaian tugas (menit), sebanyak n = 10: \[ 9.2,\; 10.5,\; 9.8,\; 10.1,\; 9.6,\; 10.3,\; 9.9,\; 9.7,\; 10.0,\; 9.5 \]

Parameter Penting

  • Ukuran sampel:
    \[n = 10\]

  • Tingkat signifikansi:
    \[\alpha = 0{,}05\]

  • Hipotesis diuji terhadap rata-rata klaim:
    \[\mu_0 = 10 \text{ menit}\]

2.1. Perumusan Hipotesis

Tujuan pengujian adalah mengetahui apakah rata-rata waktu penyelesaian tugas berbeda dari 10 menit. Karena tidak ada arah tertentu (lebih cepat atau lebih lambat), digunakan uji dua arah.

\[ \begin{aligned} H_0 &: \mu = 10 \quad \text{(tidak ada perbedaan, klaim benar)} \\ H_1 &: \mu \neq 10 \quad \text{(ada perbedaan, klaim salah)} \end{aligned} \]

2.2. Uji Hipotesis yang Sesuai

Karena simpangan baku populasi tidak diketahui dan ukuran sampel kecil \((n < 30)\), maka digunakan uji t satu sampel.

Alasan pemilihan uji t:

  • Simpangan baku populasi \(\sigma\) tidak diketahui, sehingga digunakan simpangan baku sampel \(s\) untuk menghitung statistik uji.
  • Ukuran sampel kecil membuat distribusi t lebih sesuai dibanding distribusi normal, karena distribusi t memperhitungkan ketidakpastian pada \(s\).
  • Tujuan uji adalah membandingkan rata-rata sampel dengan nilai hipotesis \(\mu_0 = 10\).

2.3. Perhitungan Statistik t dan Nilai p (p-value)

a. Hitung Rata-rata Sampel

Rata-rata sampel dihitung dengan rumus:

\[ \bar{x} = \frac{\sum_{i=1}^{n} x_i}{n} \]

Substitusi nilai:

\[ \bar{x} = \frac{9.2 + 10.5 + 9.8 + 10.1 + 9.6 + 10.3 + 9.9 + 9.7 + 10.0 + 9.5}{10} \]

\[ \bar{x} = \frac{98.6}{10} = 9.86 \]

Kesimpulan: rata-rata waktu penyelesaian sampel adalah 9.86 menit, sedikit lebih rendah dari 10 menit.


b. Hitung Simpangan Baku Sampel

Rumus simpangan baku sampel:

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

Langkah perhitungan:

\(x_i\) \(x_i - \bar{x}\) \((x_i - \bar{x})^2\)
9.2 -0.66 0.4356
10.5 0.64 0.4096
9.8 -0.06 0.0036
10.1 0.24 0.0576
9.6 -0.26 0.0676
10.3 0.44 0.1936
9.9 0.04 0.0016
9.7 -0.16 0.0256
10.0 0.14 0.0196
9.5 -0.36 0.1296
Σ 1.344

Simpangan baku:

\[ s^2 = \frac{1.344}{n-1} = \frac{1.344}{9} \approx 0.1493 \]

\[ s \approx \sqrt{0.1493} \approx 0.387 \]

Kesimpulan: simpangan baku sampel \(s \approx 0.387\) menit.


c. Hitung Statistik t

Rumus statistik t:

\[ t = \frac{\bar{x} - \mu_0}{s / \sqrt{n}} \]

Substitusi nilai:

\[ t = \frac{9.86 - 10}{0.387 / \sqrt{10}} \]

\[ t = \frac{-0.14}{0.387 / 3.162} \]

\[ t = \frac{-0.14}{0.122} \approx -1.15 \]


d. Hitung Nilai p (p-value)

Derajat bebas:

\[ df = n - 1 \] \[ df = 10 - 1 = 9 \]

Karena uji dua sisi, nilai p-value:

\[ p\text{-value} = 2 \times P(T \le -1.15) \]

Berdasarkan tabel distribusi t dengan \(df = 9\):

\[ P(T \le -1.15) \approx 0.14 \]

Sehingga:

\[ p\text{-value} = 2 \times 0.14 = 0.28 \]

2.4. Keputusan Statistik

Kriteria Keputusan

  • Tolak \(H_0\) jika
    \[ p\text{-value} < \alpha \]

  • Gagal menolak \(H_0\) jika
    \[ p\text{-value} \ge \alpha \]

Perbandingan

\[ p\text{-value} = 0.28 > 0.05 \]

Keputusan

Karena nilai p-value lebih besar dari \(\alpha\), maka gagal menolak hipotesis nol (\(H_0\)).

Interpretasi:
Berdasarkan data sampel, tidak ada bukti statistik yang cukup untuk menyatakan bahwa rata-rata waktu penyelesaian tugas berbeda dari 10 menit.

2.5. Interpretasi dan Pengaruh Ukuran Sampel

Interpretasi Hasil

Meskipun rata-rata sampel adalah 9.86 menit, sedikit lebih rendah dari klaim 10 menit, selisih ini tidak signifikan secara statistik. Artinya, perbedaan yang terlihat bisa terjadi karena variasi sampel acak, bukan karena perubahan nyata pada populasi pengguna.

Pengaruh Ukuran Sampel terhadap Keandalan Inferensi

  • Ukuran sampel kecil (\(n = 10\)) menyebabkan simpangan baku sampel lebih tidak stabil, sehingga distribusi t lebih melebar.
  • Variabilitas yang tinggi membuat nilai t lebih kecil, sehingga p-value cenderung lebih besar dan uji lebih sulit mendeteksi perbedaan nyata.
  • Jika ukuran sampel diperbesar, estimasi rata-rata menjadi lebih akurat, uji statistik lebih sensitif, dan perbedaan kecil lebih mudah terbukti signifikan.

2.6 Visulisasi

library(plotly)

# ===============================
# Data & Parameter t
# ===============================
t_hitung <- -1.15
alpha <- 0.05
df <- 9
t_kritis <- qt(1 - alpha/2, df)  # dua sisi
p_value <- 0.28

# Data kurva t
x <- seq(-4, 4, length.out = 1000)
y <- dt(x, df)

# ===============================
# Plot interaktif
# ===============================
plot_ly() %>%
  
  # Kurva t
  add_lines(
    x = ~x, y = ~y,
    name = "Kurva t",
    line = list(width = 2)
  ) %>%
  
  # Daerah penolakan kiri
  add_trace(
    x = ~x[x <= -t_kritis],
    y = ~y[x <= -t_kritis],
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(128,0,128,0.3)",  # ungu pastel
    name = "Daerah Penolakan H₀"
  ) %>%
  
  # Daerah penolakan kanan (tidak dobel legend)
  add_trace(
    x = ~x[x >= t_kritis],
    y = ~y[x >= t_kritis],
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(128,0,128,0.3)",
    showlegend = FALSE
  ) %>%
  
  # Garis t-hitung
  add_lines(
    x = c(t_hitung, t_hitung),
    y = c(0, max(y)),
    name = "t-hitung",
    line = list(dash = "dash", width = 2)
  ) %>%
  
  # Garis t-kritis
  add_lines(
    x = c(-t_kritis, -t_kritis),
    y = c(0, max(y)),
    name = "t-kritis",
    line = list(dash = "dot")
  ) %>%
  add_lines(
    x = c(t_kritis, t_kritis),
    y = c(0, max(y)),
    showlegend = FALSE,
    line = list(dash = "dot")
  ) %>%
  
  # ===============================
  # Layout
  # ===============================
  layout(
    title = list(
      text = "<b>Kurva Distribusi t – Uji t Satu Sampel</b>",
      x = 0.5,
      y = 0.95
    ),
    xaxis = list(title = "Nilai t"),
    yaxis = list(title = "Density"),
    
    legend = list(
      orientation = "h",
      x = 0.5,
      xanchor = "center",
      y = -0.25
    ),
    
    margin = list(
    t = 75,   
    b = 80     
   ),
    
    annotations = list(
      list(
        x = t_hitung,
        y = 0.12,
        text = paste0("t-hitung = ", t_hitung),
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = -t_kritis,
        y = 0.08,
        text = paste0("t-kritis = ", round(-t_kritis,2)),
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = t_kritis,
        y = 0.08,
        text = paste0("t-kritis = ", round(t_kritis,2)),
        showarrow = TRUE,
        arrowhead = 2
      ),
      list(
        x = 0,
        y = 0.35,
        text = paste0("p-value = ", p_value),
        showarrow = FALSE
      )
    )
  )

Interpretasi Hasil Uji t Satu Sampel

Hasil uji t satu sampel menunjukkan bahwa nilai t-hitung sebesar -1,15 berada dalam batas kritis ±2,262 untuk tingkat signifikansi 0,05. Hal ini menunjukkan bahwa t-hitung tidak jatuh di daerah penolakan hipotesis nol.Selain itu, p-value sebesar 0,28 lebih besar dari 0,05, yang mengindikasikan bahwa bukti statistik tidak cukup untuk menolak hipotesis nol.Dengan kata lain, data sampel tidak menunjukkan perbedaan yang signifikan secara statistik dari nilai yang dihipotesiskan.

Case Study 3

Two-Sample T-Test (A/B Testing)

A product analytics team conducts an A/B test to compare the average session duration (minutes) between two versions of a landing page.

Version Sample Size (n) Mean Standard Deviation
A 25 4.8 1.2
B 25 5.4 1.4

Tasks

  1. Formulate the null and alternative hypotheses.
  2. Identify the type of t-test required.
  3. Compute the test statistic and p-value.
  4. Draw a statistical conclusion at \(\alpha = 0.05\).
  5. Interpret the result for product decision-making.

Jawaban:

3.1. Perumusan Hipotesis

Tujuan pengujian adalah mengetahui apakah terdapat perbedaan rata-rata durasi sesi antara kelompok A dan B. Karena tidak ada arah spesifik (apakah A lebih besar dari B atau sebaliknya), digunakan uji dua sisi.

\[ \begin{aligned} H_0 &: \mu_A = \mu_B \quad \text{(tidak ada perbedaan rata-rata)} \\ H_1 &: \mu_A \neq \mu_B \quad \text{(terdapat perbedaan rata-rata)} \end{aligned} \]

Catatan:

  • Hipotesis nol (\(H_0\)) selalu mewakili “tidak ada efek” atau “tidak ada perbedaan”.
  • Hipotesis alternatif (\(H_1\)) menyatakan adanya efek atau perbedaan yang ingin diuji.

3.2. Jenis Uji t yang Digunakan

Berdasarkan kondisi data yang tersedia, uji statistik yang tepat adalah uji t dua sampel independen.

Kondisi yang mendasari pemilihan uji:

  • Data berasal dari dua grup yang saling independen (grup A dan grup B).
  • Simpangan baku populasi tidak diketahui, sehingga digunakan simpangan baku sampel.
  • Meskipun ukuran sampel relatif cukup besar, uji t dua sampel independen tetap sesuai karena parameter populasi tidak diketahui.

Dengan demikian, uji t dua sampel independen digunakan untuk membandingkan rata-rata durasi sesi antara grup A dan grup B.

3.3. Perhitungan Statistik Uji t

a. Variansi Gabungan (Pooled Variance)

Rumus variansi gabungan:

\[ s_p^2 = \frac{(n_A - 1)s_A^2 + (n_B - 1)s_B^2}{n_A + n_B - 2} \]

Substitusi nilai:

\[ s_p^2 = \frac{(25 - 1)(1.2)^2 + (25 - 1)(1.4)^2}{25 + 25 - 2} \]

Langkah perhitungan:

\[ 24 \times 1.44 = 34.56 \]

\[ 24 \times 1.96 = 47.04 \]

\[ s_p^2 = \frac{34.56 + 47.04}{48} = \frac{81.6}{48} \approx 1.7 \]

\[ s_p = \sqrt{1.7} \approx 1.304 \]

Kesimpulan: simpangan baku gabungan adalah
\[ s_p \approx 1.304 \]


b. Hitung Statistik t

Rumus statistik t untuk dua sampel independen dengan variansi sama:

\[ t = \frac{\bar{x}_A - \bar{x}_B}{s_p \sqrt{\frac{1}{n_A} + \frac{1}{n_B}}} \]

Substitusi nilai:

\[ t = \frac{4.8 - 5.4}{1.304 \sqrt{\frac{1}{25} + \frac{1}{25}}} \]

\[ t = \frac{-0.6}{1.304 \sqrt{0.08}} \]

\[ \sqrt{0.08} \approx 0.283 \]

\[ t = \frac{-0.6}{1.304 \times 0.283} \]

\[ t = \frac{-0.6}{0.369} \approx -1.63 \]


c. Derajat Bebas (Degrees of Freedom)

\[ df = n_A + n_B - 2 = 25 + 25 - 2 = 48 \]


d. Hitung Nilai p (p-value)

Karena pengujian dilakukan dengan uji dua sisi, maka:

\[ p\text{-value} = 2 \times P(T \le -1.63) \]

Dengan \(df = 48\), berdasarkan tabel distribusi t (atau pendekatan normal karena df cukup besar):

\[ P(T \le -1.63) \approx 0.055 \]

Sehingga:

\[ p\text{-value} = 2 \times 0.055 = 0.11 \]

3.4. Keputusan Statistik

Kriteria Keputusan

Hipotesis nol \(H_0\) ditolak jika:

\[ p\text{-value} < 0.05 \]

Perbandingan

\[ p\text{-value} = 0.11 > 0.05 \]

Keputusan

Karena nilai p-value lebih besar dari tingkat signifikansi 0.05, maka gagal menolak hipotesis nol (\(H_0\)).

Interpretasi:
Tidak terdapat bukti statistik yang cukup untuk menyatakan bahwa rata-rata durasi sesi berbeda antara versi A dan versi B.

3.5. Interpretasi Hasil untuk Pengambilan Keputusan Produk

Analisis Bisnis

Meskipun rata-rata durasi sesi pada versi B (5,4 menit) lebih tinggi dibandingkan versi A (4,8 menit), perbedaan tersebut tidak signifikan secara statistik. Dengan demikian, peningkatan durasi sesi yang terlihat masih dapat disebabkan oleh variasi sampel acak, bukan akibat langsung dari perubahan desain halaman.

Implikasi untuk Keputusan Produk

Berdasarkan hasil uji statistik ini, tidak disarankan untuk melakukan perubahan besar hanya berdasarkan perbedaan durasi sesi tersebut.

Tim produk dapat mempertimbangkan beberapa langkah berikut:

  • Mengumpulkan ukuran sampel yang lebih besar untuk meningkatkan keandalan dan kekuatan uji statistik.
  • Menguji metrik tambahan, seperti tingkat konversi, interaksi pengguna, atau retensi, sebagai pendukung pengambilan keputusan.
  • Melakukan perbaikan desain halaman secara menyeluruh sebelum menyimpulkan versi mana yang memberikan performa lebih baik.

Catatan Metodologis

Ukuran sampel yang relatif terbatas menyebabkan variabilitas data berpengaruh besar terhadap nilai p-value. Dengan jumlah pengguna yang lebih banyak, uji t akan menjadi lebih sensitif dalam mendeteksi perbedaan kecil yang mungkin signifikan secara praktis.

3.6 Visulisasi

library(plotly)
library(dplyr)

# ===============================
# Data simulasi durasi sesi
# ===============================
set.seed(123)

# Simulasi distribusi durasi sesi masing-masing versi
nA <- 25; xbar_A <- 4.8; sA <- 1.2
nB <- 25; xbar_B <- 5.4; sB <- 1.4

data_A <- rnorm(nA, mean = xbar_A, sd = sA)
data_B <- rnorm(nB, mean = xbar_B, sd = sB)

# ===============================
# Statistik t dua sampel
# ===============================
sp2 <- ((nA-1)*sA^2 + (nB-1)*sB^2) / (nA+nB-2)
sp <- sqrt(sp2)
t_hitung <- (xbar_A - xbar_B) / (sp * sqrt(1/nA + 1/nB))
df <- nA + nB - 2
alpha <- 0.05
t_kritis <- qt(1 - alpha/2, df)
p_value <- 0.11

# ===============================
# Data kurva t
# ===============================
x <- seq(-4, 4, length.out = 1000)
y <- dt(x, df)

# ===============================
# Plot interaktif
# ===============================
plot_ly() %>%
  
  # Kurva densitas A
  add_histogram(
    x = data_A, name = "Versi A",
    histnorm = "probability density", opacity = 0.6,
    marker = list(color = "rgba(66,135,245,0.5)")
  ) %>%
  
  # Kurva densitas B
  add_histogram(
    x = data_B, name = "Versi B",
    histnorm = "probability density", opacity = 0.6,
    marker = list(color = "rgba(245,66,230,0.5)")
  ) %>%
  
  # Kurva t distribusi
  add_lines(
    x = ~x, y = ~y,
    name = "Distribusi t", line = list(width = 2, color = "black")
  ) %>%
  
  # Daerah penolakan kiri
  add_trace(
    x = ~x[x <= -t_kritis],
    y = ~y[x <= -t_kritis],
    type = "scatter", mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(128,0,128,0.3)",
    name = "Daerah Penolakan H₀"
  ) %>%
  
  # Daerah penolakan kanan
  add_trace(
    x = ~x[x >= t_kritis],
    y = ~y[x >= t_kritis],
    type = "scatter", mode = "lines",
    fill = "tozeroy",
    fillcolor = "rgba(128,0,128,0.3)",
    showlegend = FALSE
  ) %>%
  
  # Garis t-hitung
  add_lines(
    x = c(t_hitung, t_hitung),
    y = c(0, max(y)),
    name = "t-hitung", line = list(dash = "dash", width = 2, color = "blue")
  ) %>%
  
  # Garis t-kritis
  add_lines(
    x = c(-t_kritis, -t_kritis),
    y = c(0, max(y)),
    name = "t-kritis", line = list(dash = "dot")
  ) %>%
  add_lines(
    x = c(t_kritis, t_kritis),
    y = c(0, max(y)),
    showlegend = FALSE,
    line = list(dash = "dot")
  ) %>%
  
  # ===============================
  # Layout
  # ===============================
  layout(
    title = list(text = "<b>Visualisasi A/B Testing – Distribusi Durasi Sesi</b>",
                 x = 0.5, y = 0.95),
    xaxis = list(title = "Durasi Sesi / Nilai t"),
    yaxis = list(title = "Density"),
    
    legend = list(orientation = "h", x = 0.5, xanchor = "center", y = -0.25),
    
    margin = list(t = 80, b = 100),
    
    annotations = list(
      list(x = t_hitung, y = 0.12,
           text = paste0("t-hitung = ", round(t_hitung,2)),
           showarrow = TRUE, arrowhead = 2),
      list(x = -t_kritis, y = 0.08,
           text = paste0("t-kritis = ", round(-t_kritis,2)),
           showarrow = TRUE, arrowhead = 2),
      list(x = t_kritis, y = 0.08,
           text = paste0("t-kritis = ", round(t_kritis,2)),
           showarrow = TRUE, arrowhead = 2),
      list(x = 0, y = 0.35,
           text = paste0("p-value = ", p_value),
           showarrow = FALSE)
    )
  )

Interpretasi Hasil Uji t Dua Sampel

Interpretasi Statistik

Hasil uji t dua sampel menunjukkan t-hitung sebesar -1,18, berada dalam batas kritis ±2,01 untuk tingkat signifikansi 0,05. Hal ini menunjukkan bahwa t-hitung tidak jatuh di daerah penolakan hipotesis nol.Selain itu, p-value sebesar 0,11 lebih besar dari 0,05, yang mengindikasikan bahwa bukti statistik tidak cukup untuk menolak hipotesis nol.Dengan kata lain, data sampel tidak menunjukkan perbedaan yang signifikan secara statistik antara durasi sesi versi A dan versi B.

Interpretasi Visual

  • Histogram biru mewakili distribusi durasi sesi versi A, dan histogram ungu muda mewakili versi B. Terlihat bahwa kedua distribusi saling tumpang tindih cukup banyak, menandakan perbedaan rata-rata tidak besar.
  • Kurva distribusi t (garis hitam) berada di tengah sebagai referensi teoretis.
  • Daerah ungu pastel di kedua sisi kurva menandai daerah penolakan H₀, tetapi garis t-hitung (biru putus-putus) berada dalam batas kritis, menegaskan keputusan statistik untuk gagal menolak H₀.
  • p-value dicantumkan di atas kurva, memberikan indikasi seberapa kuat bukti terhadap H₀ secara visual.

Case Study 4

Chi-Square Test of Independence

An e-commerce company examines whether device type is associated with payment method preference.

Device / Payment E-Wallet Credit Card Cash on Delivery
Mobile 120 80 50
Desktop 60 90 40

Tasks

  1. State the Null Hypothesis (H₀) and Alternative Hypothesis (H₁).
  2. Identify the appropriate statistical test.
  3. Compute the Chi-Square statistic (χ²).
  4. Determine the p-value at \(\alpha = 0.05\).
  5. Interpret the results in terms of digital payment strategy.

Jawaban:

4.1. Hipotesis

Hipotesis yang digunakan dalam uji independensi adalah sebagai berikut:

  • Hipotesis Nol (\(H_0\)):
    Jenis perangkat dan metode pembayaran saling independen, artinya tidak ada hubungan antara keduanya.

  • Hipotesis Alternatif (\(H_1\)):
    Jenis perangkat dan metode pembayaran tidak independen, artinya terdapat hubungan antara keduanya.

4.2. Uji Statistik yang Digunakan

Uji statistik yang digunakan adalah uji Chi-Square (\(\chi^2\)) untuk independensi, dengan pertimbangan sebagai berikut:

  • Data yang dianalisis berupa frekuensi kategori.
  • Tujuan pengujian adalah untuk mengetahui hubungan antara dua variabel kategorikal.
  • Data disajikan dalam bentuk tabel kontingensi berukuran \(2 \times 3\).

Rumus Statistik Chi-Square

\[ \chi^2 = \sum \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \]

dengan keterangan:

  • \(O_{ij}\) = frekuensi observasi
  • \(E_{ij}\) = frekuensi harapan (expected frequency)

4.3. Perhitungan Statistik Chi-Square (\(\chi^2\))

a. Menghitung Frekuensi Harapan (Expected Frequency)

Rumus frekuensi harapan untuk setiap sel:

\[ E_{ij} = \frac{(\text{Total Baris}_i)(\text{Total Kolom}_j)}{\text{Total Keseluruhan}} \]

Total keseluruhan data:

  • Hitung Total per Baris

    Mobile:

    120 + 80 + 50 = 250

    Desktop:

    60 + 90 + 40 = 190

  • Hitung Total per Kolom

    E-Wallet:

    120 + 60 = 180

    Kartu Kredit:

    80 + 90 = 170

    COD:

    50 + 40 = 90

  • Hitung Total Keseluruhan (N)

    Jumlahkan semua data (atau total baris / kolom):

    \[N = 250 + 190 = 440\]

    atau

    \[N = 180 + 170 + 90 = 440\]

Baris Mobile (total = 250)

  • E-Wallet
    \[ E = \frac{250 \times 180}{440} = 102{,}27 \]

  • Kartu Kredit
    \[ E = \frac{250 \times 170}{440} = 96{,}59 \]

  • Cash on Delivery (COD)
    \[ E = \frac{250 \times 90}{440} = 51{,}14 \]

Baris Desktop (total = 190)

  • E-Wallet
    \[ E = \frac{190 \times 180}{440} = 77{,}73 \]

  • Kartu Kredit
    \[ E = \frac{190 \times 170}{440} = 73{,}41 \]

  • Cash on Delivery (COD)
    \[ E = \frac{190 \times 90}{440} = 38{,}86 \]


b. Menghitung Statistik Chi-Square (\(\chi^2\))

Rumus statistik Chi-Square:

\[ \chi^2 = \sum \frac{(O - E)^2}{E} \]

Perhitungan Tiap Sel

Mobile

  • E-Wallet
    \[ \frac{(120 - 102{,}27)^2}{102{,}27} \approx 3{,}07 \]

  • Kartu Kredit
    \[ \frac{(80 - 96{,}59)^2}{96{,}59} \approx 2{,}85 \]

  • COD
    \[ \frac{(50 - 51{,}14)^2}{51{,}14} \approx 0{,}03 \]

Subtotal Mobile:

\[ 3{,}07 + 2{,}85 + 0{,}03 = 5{,}95 \]

Desktop

  • E-Wallet
    \[ \frac{(60 - 77{,}73)^2}{77{,}73} \approx 4{,}04 \]

  • Kartu Kredit
    \[ \frac{(90 - 73{,}41)^2}{73{,}41} \approx 3{,}75 \]

  • COD
    \[ \frac{(40 - 38{,}86)^2}{38{,}86} \approx 0{,}03 \]

Subtotal Desktop:

\[ 4{,}04 + 3{,}75 + 0{,}03 = 7{,}82 \]

Nilai Chi-Square Total

\[ \chi^2 = 5{,}95 + 7{,}82 = 13{,}77 \]


c. Derajat Bebas (Degrees of Freedom)

Rumus derajat bebas:

\[ df = (r - 1)(c - 1) \]

Dengan:

  • \(r = 2\) baris (Mobile, Desktop)
  • \(c = 3\) kolom (E-Wallet, Kartu Kredit, COD)

Sehingga:

\[ df = (2 - 1)(3 - 1) = 2 \]

4.4. Menentukan Nilai p (p-value)

a. Nilai p (p-value)

Dengan nilai statistik uji:

\[ \chi^2 = 13{,}77 \]

dan derajat bebas:

\[ df = 2 \]

Berdasarkan tabel distribusi Chi-Square atau menggunakan kalkulator statistik, diperoleh:

\[ p\text{-value} \approx 0{,}001 \]

Nilai ini jauh lebih kecil dari tingkat signifikansi 0.05.


b. Keputusan Statistik

Kriteria Keputusan:

  • Tolak \(H_0\) jika
    \[ p\text{-value} < 0.05 \]

Perbandingan:

\[ p\text{-value} \approx 0{,}001 < 0.05 \]

Keputusan:

Karena nilai p-value lebih kecil dari 0.05, maka hipotesis nol (\(H_0\)) ditolak.


Kesimpulan

Terdapat bukti statistik yang cukup untuk menyatakan bahwa jenis perangkat dan preferensi metode pembayaran saling berhubungan (tidak independen).

4.5. Interpretasi dalam Konteks Strategi Pembayaran Digital

a. Analisis Bisnis

  • Pengguna mobile cenderung menggunakan E-Wallet (lebih tinggi dari frekuensi harapan).
  • Pengguna desktop cenderung menggunakan Kartu Kredit (lebih tinggi dari frekuensi harapan).
  • Cash on Delivery (COD) relatif lebih merata, namun sedikit lebih tinggi pada pengguna mobile.

b. Implikasi Strategi

  • Fokus promosi metode pembayaran digital yang sesuai dengan perangkat:
    • Mobile → promosikan E-Wallet, cashback, atau promo QR.
    • Desktop → fokus pada kartu kredit dan kemudahan proses checkout.
  • Desain halaman checkout dapat disesuaikan berdasarkan perangkat untuk meningkatkan konversi.
  • Data ini dapat dimanfaatkan untuk segmentasi kampanye pemasaran serta pengembangan fitur pembayaran.

c. Catatan Teknis

  • Uji Chi-Square hanya menunjukkan adanya hubungan, bukan sebab-akibat.
  • Diperlukan analisis tambahan untuk mengetahui alasan mengapa pengguna mobile lebih menyukai E-Wallet.

4.6 Visulisasi

library(plotly)

# Data
obs <- matrix(c(120, 80, 50,
                60, 90, 40),
              nrow = 2, byrow = TRUE)
rownames(obs) <- c("Mobile", "Desktop")
colnames(obs) <- c("E-Wallet", "Kartu Kredit", "COD")

total_row <- rowSums(obs)
total_col <- colSums(obs)
total_all <- sum(obs)
expected <- outer(total_row, total_col) / total_all
contrib <- (obs - expected)^2 / expected

# Buat dataframe untuk plot
df_plot <- data.frame(
  Perangkat = rep(rownames(obs), each = ncol(obs)*2),
  Pembayaran = rep(rep(colnames(obs), each = 2), 2/2),
  Tipe = rep(c("Observed", "Expected"), times = 6),
  Nilai = c(as.vector(obs), as.vector(expected)),
  Contrib = rep(as.vector(contrib), each = 2),
  OE_diff = rep(as.vector(obs - expected), each = 2)
)

# Plot interaktif
plot_ly(df_plot, x = ~Pembayaran, y = ~Nilai,
        type = 'bar',
        color = ~Tipe,
        colors = c("#4287f5", "#f542e6"),  # Observed & Expected
        marker = list(opacity = 0.7),
        text = ~paste0("Chi² contrib: ", round(Contrib,2)),
        hoverinfo = "text+y+x") %>%
  layout(
    title = list(
      text = "<b>Perbandingan Observasi vs Expected – Chi-Square</b>",
      x = 0.5,
      y = 0.97  # turunkan sedikit judul
    ),
    xaxis = list(title = "Metode Pembayaran"),
    yaxis = list(title = "Frekuensi"),
    legend = list(orientation = "h", x = 0.5, xanchor = "center", y = -0.2),
    barmode = "group",
    annotations = list(
      # Mobile
      list(x = "E-Wallet", y = obs[1,1]+5, text = paste0("O-E: ", round(obs[1,1]-expected[1,1],2)), showarrow = FALSE),
      list(x = "Kartu Kredit", y = obs[1,2]+5, text = paste0("O-E: ", round(obs[1,2]-expected[1,2],2)), showarrow = FALSE),
      list(x = "COD", y = obs[1,3]+5, text = paste0("O-E: ", round(obs[1,3]-expected[1,3],2)), showarrow = FALSE),
      # Desktop
      list(x = "E-Wallet", y = obs[2,1]+5, text = paste0("O-E: ", round(obs[2,1]-expected[2,1],2)), showarrow = FALSE),
      list(x = "Kartu Kredit", y = obs[2,2]+5, text = paste0("O-E: ", round(obs[2,2]-expected[2,2],2)), showarrow = FALSE),
      list(x = "COD", y = obs[2,3]+5, text = paste0("O-E: ", round(obs[2,3]-expected[2,3],2)), showarrow = FALSE)
    )
  )

Interpretasi Hasil Uji Chi-Square

Hasil uji Chi-Square independensi menunjukkan perbandingan frekuensi transaksi antara perangkat (Mobile dan Desktop) dengan metode pembayaran (E-Wallet, Kartu Kredit, COD). Nilai expected dihitung berdasarkan hipotesis nol bahwa perangkat dan metode pembayaran bersifat independen, sedangkan selisih antara Observed dan Expected (O–E) menunjukkan kontribusi masing-masing sel terhadap total Chi-Square.

Secara visual, histogram biru dan ungu muda menampilkan frekuensi Observed vs Expected untuk tiap metode pembayaran, dengan nilai O–E ditampilkan di atas tiap bar. Sel-sel dengan perbedaan O–E lebih besar menunjukkan deviasi yang lebih signifikan dari harapan, misalnya beberapa sel Desktop – E-Wallet atau Mobile – Kartu Kredit. Namun, sebagian besar sel mendekati nilai expected, menandakan tidak ada deviasi ekstrem.

Dengan demikian, secara keseluruhan, meskipun ada beberapa perbedaan antara Observed dan Expected di beberapa sel, perbedaan ini tidak terlalu besar secara visual, yang memberi indikasi bahwa perangkat mungkin tidak terlalu memengaruhi pilihan metode pembayaran. Keputusan akhir tetap memerlukan perhitungan Chi-Square total dan p-value untuk memastikan signifikansi statistik.

Case Study 5

Type I and Type II Errors (Conceptual)

A fintech startup tests whether a new fraud detection algorithm reduces fraudulent transactions.

  • H₀: The new algorithm does not reduce fraud.
  • H₁: The new algorithm reduces fraud.

Tasks

  1. Explain a Type I Error (α) in this context.
  2. Explain a Type II Error (β) in this context.
  3. Identify which error is more costly from a business perspective.
  4. Discuss how sample size affects Type II Error.
  5. Explain the relationship between α, β, and statistical power.

Jawaban:

5.1. Kesalahan Tipe I (α) dalam Konteks Ini

Definisi Umum

Kesalahan Tipe I terjadi ketika kita menolak H₀ padahal H₀ sebenarnya benar.

Dalam Konteks Algoritma Fraud

Artinya:

  • Startup menyimpulkan bahwa algoritma baru efektif mengurangi penipuan
  • Padahal kenyataannya algoritma tersebut tidak lebih baik dari sistem lama.

Contoh Konkret

  • Perusahaan meluncurkan algoritma baru karena hasil uji terlihat signifikan.
  • Padahal secara nyata:
    • Jumlah fraud tidak berkurang.
    • Bahkan bisa jadi algoritma hanya “kebetulan terlihat bagus” di data uji.

Dampak Bisnis

  • Biaya implementasi teknologi baru menjadi sia-sia.
  • Risiko reputasi jika fraud tetap tinggi.
  • Potensi kehilangan kepercayaan mitra dan pengguna.

Nilai α (alpha) adalah probabilitas melakukan kesalahan ini, misalnya 5%.

5.2. Kesalahan Tipe II (β) dalam Konteks Ini

Definisi Umum

Kesalahan Tipe II terjadi ketika kita gagal menolak H₀ padahal H₁ sebenarnya benar.

Dalam Konteks Algoritma Fraud

Artinya:

  • Startup menyimpulkan bahwa algoritma baru tidak efektif,
  • Padahal sebenarnya algoritma tersebut mampu mengurangi penipuan.

Contoh Konkret

  • Uji statistik menyatakan hasil tidak signifikan.
  • Perusahaan memutuskan tidak menggunakan algoritma baru.
  • Padahal algoritma itu sebenarnya bisa:
    • Mengurangi kerugian finansial.
    • Menekan transaksi fraud secara nyata.

Dampak Bisnis

  • Kehilangan peluang menghemat biaya akibat fraud.
  • Tetap menggunakan sistem lama yang kurang optimal.
  • Opportunity cost yang besar dalam jangka panjang.

Nilai β (beta) adalah probabilitas melakukan kesalahan ini.

5.3. Kesalahan yang Paling Merugikan dari Sudut Pandang Bisnis

Dalam konteks fintech dan fraud detection, Kesalahan Tipe II sering kali lebih merugikan, karena:

  • Fraud yang tidak terdeteksi → kerugian finansial langsung.
  • Peluang peningkatan sistem terlewatkan.
  • Dampak jangka panjang terhadap keamanan dan kepercayaan.

Namun, Kesalahan Tipe I juga berbahaya, terutama jika:

  • Algoritma baru menyebabkan false positive yang tinggi.
  • Banyak transaksi sah diblokir → pengalaman pengguna menjadi buruk.

Kesimpulan Bisnis

  • Jika tujuan utama adalah meminimalkan fraud, perusahaan cenderung lebih takut Kesalahan Tipe II.
  • Namun, nilai α tetap perlu dijaga agar tidak terlalu besar.

5.4. Pengaruh Ukuran Sampel terhadap Kesalahan Tipe II

Ukuran sampel sangat berpengaruh terhadap β (Kesalahan Tipe II).

Sampel Kecil

  • Variabilitas data tinggi.
  • Efek nyata sulit terdeteksi.
  • β besar → mudah gagal mendeteksi algoritma yang sebenarnya efektif.

Sampel Besar

  • Estimasi lebih stabil.
  • Perbedaan kecil pun bisa terdeteksi.
  • β menurun → lebih kecil kemungkinan melakukan Kesalahan Tipe II.

Kesimpulan

Menambah ukuran sampel akan meningkatkan peluang mendeteksi efek nyata.

5.5. Hubungan antara α, β, dan Power Statistik

Power Statistik

Power didefinisikan sebagai:

Power = 1 − β

Maknanya: Probabilitas bahwa uji statistik berhasil mendeteksi efek ketika efek tersebut benar-benar ada.

Hubungan antara α, β, dan Power

  • α (Kesalahan Tipe I) mengontrol risiko false positive
    → menyimpulkan algoritma efektif padahal sebenarnya tidak.
  • β (Kesalahan Tipe II) mengontrol risiko false negative
    → menyimpulkan algoritma tidak efektif padahal sebenarnya efektif.
  • Power tinggi berarti β kecil
    → peluang gagal mendeteksi efek menjadi lebih rendah.

Trade-off α dan β

  • Menurunkan α (misalnya dari 0,05 ke 0,01):
    • Mengurangi risiko Kesalahan Tipe I
    • Tetapi dapat meningkatkan β (lebih sulit mendeteksi efek nyata)
  • Meningkatkan ukuran sampel:
    • Dapat menurunkan β tanpa harus menaikkan α
    • Merupakan solusi terbaik dalam praktik statistik

Ringkasan Konseptual

Konsep Makna dalam Kasus Fraud
Tipe I (α) Mengira algoritma baru efektif padahal tidak
Tipe II (β) Mengira algoritma tidak efektif padahal sebenarnya efektif
Power Kemampuan mendeteksi algoritma yang benar-benar efektif
Sampel besar Menurunkan β dan meningkatkan power

5.6 Visulisasi

library(plotly)

# Data
data <- data.frame(
  Kondisi = c("H0 Benar", "H0 Benar", "H1 Benar", "H1 Benar"),
  Label = c("Benar", "Tipe I (α)", "Benar", "Tipe II (β)"),
  Nilai = c(0.95, 0.05, 0.8, 0.2)
)

warna <- c("#90EE90", "#FFB6C1", "#ADD8E6", "#FFDAB9")  # pastel

# Plot per kondisi, tidak stacked
plot_ly(data, x = ~Kondisi, y = ~Nilai, type = "bar",
        color = ~Label,
        colors = warna,
        text = ~paste0(round(Nilai*100), "%"),
        textposition = "outside",
        hoverinfo = "text",
        hovertext = ~paste0(Label, ": ", round(Nilai*100), "%"),
        marker = list(opacity = 0.7)) %>%
  layout(
    title = list(
      text = "<b>Kesalahan Tipe I & Tipe II + Power Statistik – Fraud Detection</b>",
      x = 0.5,
      y = 0.95
    ),
    margin = list(t = 70, b = 75),  
    barmode = "group",
    xaxis = list(title = "Kondisi Hipotesis"),
    yaxis = list(title = "Probabilitas", tickformat = ".0%"),
    legend = list(orientation = "h", x = 0.5, xanchor = "center", y = -0.2)
  )

Interpretasi Statistik dan Visual – Fraud Detection

Visualisasi menunjukkan probabilitas hasil uji hipotesis dalam konteks fraud detection, dengan memisahkan kondisi H0 benar dan H1 benar.

  • Saat H0 benar: uji menahan H0 dengan probabilitas 95%, sedangkan 5% kasus merupakan kesalahan Tipe I (α), yaitu menolak H0 padahal H0 benar.
  • Saat H1 benar: uji menolak H0 dengan probabilitas 80%, sedangkan 20% kasus merupakan kesalahan Tipe II (β), yaitu gagal menolak H0 padahal H1 benar. Dengan demikian, power uji = 1 – β = 80%, artinya uji memiliki kemungkinan tinggi untuk mendeteksi fraud ketika H1 benar.

Interpretasi Visual

  • Histogram berwarna pastel memisahkan kategori probabilitas dengan jelas: hijau muda untuk keputusan benar H0, pink untuk Tipe I, biru muda untuk keputusan benar H1, dan peach untuk Tipe II.
  • Nilai persentase ditampilkan di atas tiap bar, memudahkan perbandingan langsung antar kondisi.
  • Grafik tidak stacked, sehingga probabilitas tiap kategori mudah dilihat dan dibandingkan.

Kesimpulan

Uji hipotesis dalam kasus fraud detection cukup andal. Risiko kesalahan Tipe I rendah, power uji tinggi, tetapi masih terdapat sedikit kemungkinan gagal mendeteksi fraud (Tipe II). Visualisasi memperjelas distribusi probabilitas keputusan uji di kedua kondisi, memudahkan interpretasi secara intuitif.

Case Study 6

P-Value and Statistical Decision Making

A churn prediction model evaluation yields the following results:

  • Test statistic = 2.31
  • p-value = 0.021
  • Significance level: \(\alpha = 0.05\)

Tasks

  1. Explain the meaning of the p-value.
  2. Make a statistical decision.
  3. Translate the decision into non-technical language for management.
  4. Discuss the risk if the sample is not representative.
  5. Explain why the p-value does not measure effect size.

Jawaban:

6.1. Makna Nilai p (p-value)

Nilai p-value = 0,021 menunjukkan probabilitas (peluang) untuk memperoleh hasil uji se-ekstrem atau lebih ekstrem dari yang diamati dengan asumsi bahwa Hipotesis Nol (H₀) benar.

Artinya:

  • Jika sebenarnya tidak ada efek atau perbedaan nyata (H₀ benar),
  • Maka peluang mendapatkan statistik uji sebesar 2,31 atau lebih ekstrem hanyalah 2,1%.

Karena probabilitas ini cukup kecil, maka hasil yang diperoleh dianggap tidak lazim jika H₀ benar.

Catatan Penting

  • p-value bukan probabilitas H₀ benar atau salah
  • p-value mengukur kekuatan bukti data terhadap H₀

6.2. Keputusan Statistik

Aturan pengambilan keputusan

  • Jika p-value ≤ αtolak H₀
  • Jika p-value > αgagal menolak H₀

Dalam kasus ini

\[ 0{,}021 < 0{,}05 \]

Keputusan statistik

Tolak Hipotesis Nol (H₀)

Artinya

  • Terdapat bukti statistik yang cukup pada tingkat signifikansi 5%
  • Model prediksi churn menunjukkan performa yang berbeda secara signifikan dari kondisi nol (baseline atau asumsi awal)

6.3. Terjemahan ke Bahasa Non-Teknis (untuk Manajemen)

Berdasarkan data yang dianalisis, kemungkinan hasil ini terjadi hanya karena kebetulan sangat kecil. Dengan tingkat keyakinan yang tinggi, model churn yang diuji memang memberikan hasil yang lebih baik dibandingkan asumsi awal. Artinya, model ini layak dipertimbangkan untuk digunakan atau dikembangkan lebih lanjut.

6.4. Risiko Jika Sampel Tidak Representatif

Jika sampel yang digunakan tidak mewakili populasi pengguna secara keseluruhan, maka muncul beberapa risiko penting:

  • Keputusan bias
    Model terlihat efektif di data uji, tetapi gagal saat diterapkan ke seluruh pengguna

  • Generalization error
    Model hanya cocok untuk segmen tertentu (misalnya pengguna aktif saja), bukan semua pengguna

  • Kesalahan strategi bisnis
    Perusahaan bisa mengalokasikan sumber daya ke model yang sebenarnya tidak efektif di kondisi nyata

  • Overestimasi performa
    Nilai p yang kecil bisa menipu jika data tidak mencerminkan kondisi sebenarnya

Kesimpulan:

p-value yang signifikan tidak menjamin hasilnya valid secara bisnis jika data tidak representatif.

6.5. Mengapa Nilai p (p-value) Tidak Mengukur Besar Efek (Effect Size)?

Nilai p (p-value) tidak digunakan untuk mengukur besar kecilnya efek karena p-value hanya menunjukkan tingkat keyakinan statistik, bukan magnitude atau kekuatan dampak dari suatu hasil.

Ada beberapa alasan utama mengapa p-value tidak mencerminkan besar efek:

  • Sangat dipengaruhi oleh ukuran sampel
    Pada sampel yang sangat besar, perbedaan yang sangat kecil sekalipun dapat menghasilkan p-value yang signifikan. Sebaliknya, pada sampel kecil, efek yang cukup besar bisa saja menghasilkan p-value yang tidak signifikan.

  • Tidak menunjukkan magnitude perubahan
    p-value tidak memberi informasi apakah perubahan churn yang terdeteksi itu kecil (misalnya 1%) atau besar (misalnya 15%). Dua studi dengan p-value yang sama dapat memiliki dampak bisnis yang sangat berbeda.

  • Tidak menggambarkan relevansi praktis atau bisnis
    Hasil yang signifikan secara statistik belum tentu signifikan secara praktis. Dalam konteks bisnis, yang lebih penting adalah seberapa besar pengaruh model terhadap penurunan churn, bukan hanya apakah efek tersebut ada.

  • Hanya fokus pada penolakan H₀
    p-value hanya membantu dalam pengambilan keputusan statistik (tolak atau gagal menolak H₀), bukan dalam mengevaluasi kualitas atau kekuatan model secara keseluruhan.

Oleh karena itu, dalam evaluasi model prediksi churn, p-value sebaiknya dikombinasikan dengan ukuran efek (effect size) seperti:

  • selisih tingkat churn,
  • odds ratio,
  • atau metrik performa model (misalnya lift, AUC, atau precision–recall).

6.6 Visulisasi

library(plotly)

# Parameter uji
z_hitung <- 2.31
alpha <- 0.05
z_kritis <- qnorm(1 - alpha/2)
p_value <- 0.021

# Data kurva normal
x <- seq(-4, 4, length.out = 1000)
y <- dnorm(x)

# Plot interaktif
plot_ly(showlegend = TRUE) %>%
  # Kurva normal
  add_lines(x = ~x, y = ~y, name = "Kurva Normal", line = list(width = 2, color = "gray")) %>%
  
  # Daerah penolakan kiri
  add_trace(x = ~x[x <= -z_kritis], y = ~y[x <= -z_kritis],
            type = "scatter", mode = "lines", fill = "tozeroy",
            fillcolor = "rgba(255, 182, 193, 0.5)", name = "Daerah Penolakan") %>%
  
  # Daerah penolakan kanan
  add_trace(x = ~x[x >= z_kritis], y = ~y[x >= z_kritis],
            type = "scatter", mode = "lines", fill = "tozeroy",
            fillcolor = "rgba(255, 182, 193, 0.5)", showlegend = FALSE) %>%
  
  # Garis z-hitung
  add_lines(x = c(z_hitung, z_hitung), y = c(0, max(y)),
            name = "Statistik Uji", line = list(dash = "dash", width = 2, color = "purple")) %>%
  
  # Garis z-kritis
  add_lines(x = c(-z_kritis, -z_kritis), y = c(0, max(y)),
            name = "Z-Kritis", line = list(dash = "dot", width = 2, color = "blue")) %>%
  add_lines(x = c(z_kritis, z_kritis), y = c(0, max(y)), showlegend = FALSE,
            line = list(dash = "dot", width = 2, color = "blue")) %>%
  
  layout(
    title = list(text = "<b>Visualisasi p-value & Keputusan Statistik</b>", x = 0.5, y = 0.95),
    xaxis = list(title = "Nilai Statistik Uji"),
    yaxis = list(title = "Densitas"),
    margin = list(t = 80, b = 80),
    legend = list(orientation = "h", x = 0.5, xanchor = "center", y = -0.2),
    annotations = list(
      list(x = z_hitung, y = 0.12, text = paste0("Statistik uji = ", z_hitung),
           showarrow = TRUE, arrowhead = 2),
      list(x = 0, y = 0.35, text = paste0("p-value = ", p_value),
           showarrow = FALSE),
      list(x = -z_kritis, y = 0.08, text = paste0("Z-Kritis = ", round(-z_kritis,2)),
           showarrow = TRUE, arrowhead = 2),
      list(x = z_kritis, y = 0.08, text = paste0("Z-Kritis = ", round(z_kritis,2)),
           showarrow = TRUE, arrowhead = 2)
    )
  )

Interpretasi Statistik dan Visual – Uji Z Satu Sampel

Visualisasi menunjukkan distribusi normal standar sebagai referensi untuk uji Z satu sampel. Nilai Z-hitung = 2,31 berada di daerah penolakan kanan, di luar batas kritis ±1,96 untuk tingkat signifikansi 0,05. Selain itu, p-value = 0,021 < 0,05, yang menunjukkan bukti statistik cukup untuk menolak hipotesis nol. Dengan kata lain, data sampel memberikan indikasi adanya perbedaan yang signifikan secara statistik dibanding nilai yang dihipotesiskan.

Interpretasi Visual

  • Kurva abu-abu mewakili distribusi normal standar.
  • Daerah penolakan (pink transparan) di kedua sisi menunjukkan batas ±Z-kritis.
  • Garis ungu putus-putus menandai posisi Z-hitung, berada tepat di daerah penolakan kanan.
  • Garis biru titik-titik menandai Z-kritis, membantu melihat sejauh mana Z-hitung berada dari batas.
  • p-value ditampilkan di atas kurva, memberikan konteks probabilitas terhadap H0.

Kesimpulan:

Statistik uji dan visualisasi konsisten: hipotesis nol ditolak karena Z-hitung berada di daerah penolakan, dan p-value cukup kecil. Visualisasi mempermudah pemahaman posisi Z-hitung dan besarnya signifikansi hasil uji.

Referensi