Pertemuan 2: Uji Binomial, Kuantil, Chi Square, Kolmogorov Smirnov & Sign

Statistika Nonparametrik

Offline di Departemen Matematika
Published

October 1, 2024

Tabel Guide Uji Nonparametrik

Uji Binomial

Halaman 124 Buku W.J. Conover

Data

Sampel terdiri atas \(n\) percobaan independen, tiap outcome masuk ke dalam kategori 1 atau 2, tetapi tidak keduanya. Jumlah observasi di kategori 1 sebanyak \(O_1\) dan Jumlah observasi di kategori 2 sebanyak \(O_2 = n - O_1\)

Asumsi

  1. n percobaan saling independen
  2. Tiap percobaan masuk ke dalam kategori 1 dengan probabilitas \(p\), di mana \(p\) bernilai sama untuk setiap percobaan

Statistik Uji

\(T_1 = O_1\)

Aturan Penolakan

Two Tailed

\(H_0: p = p*\)

\(H_1: p ≠ p*\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Upper Tailed

\(H_0: p ≤ p*\)

\(H_1: p > p*\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Lower Tailed

\(H_0: p ≥ p*\)

\(H_1: p < p*\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Soal 1

Anda ingin menentukan apakah dadu mendarat pada angka “3” selama 1/6 dari semua lemparan. Anda melempar dadu sebanyak 24 kali dan hasilnya dadu mendarat pada angka “3” sebanyak 9 kali. Lakukan uji Binomial untuk menentukan apakah dadu benar-benar mendarat pada angka “3” selama 1/6 dari semua lemparan.

binom.test(9, 24, 1/6)

    Exact binomial test

data:  9 and 24
number of successes = 9, number of trials = 24, p-value = 0.01176
alternative hypothesis: true probability of success is not equal to 0.1666667
95 percent confidence interval:
 0.1879929 0.5940636
sample estimates:
probability of success 
                 0.375 

Soal 2

Anda ingin menentukan apakah koin lebih kecil kemungkinannya untuk mendarat di kepala dibandingkan ekor. Anda melempar koin 30 kali dan menemukan bahwa koin mendarat di kepala sebanyak 11 kali. Lakukan uji Binomial untuk menentukan apakah koin lebih kecil kemungkinannya untuk mendarat di kepala.

binom.test(11, 30, 0.5, alternative = 'less')

    Exact binomial test

data:  11 and 30
number of successes = 11, number of trials = 30, p-value = 0.1002
alternative hypothesis: true probability of success is less than 0.5
95 percent confidence interval:
 0.0000000 0.5330863
sample estimates:
probability of success 
             0.3666667 

Soal 3

Sebuah toko membuat widget dengan tingkat keberhasilan 80%. Mereka menerapkan sistem baru yang mereka harapkan dapat meningkatkan tingkat keberhasilan. Mereka secara acak memilih 50 widget dari produksi baru dan menemukan bahwa 46 widget berfungsi. Lakukan uji Binomial untuk menentukan apakah sistem baru menghasilkan tingkat keberhasilan yang lebih tinggi.

binom.test(46, 50, 0.8, alternative = 'greater')

    Exact binomial test

data:  46 and 50
number of successes = 46, number of trials = 50, p-value = 0.0185
alternative hypothesis: true probability of success is greater than 0.8
95 percent confidence interval:
 0.8262088 1.0000000
sample estimates:
probability of success 
                  0.92 

Uji Kuantil

Halaman 136 Buku W.J. Conover

Data

Misal \(X_1, X_2, ..., X_n\) sampel acak. Data uji kuantil adalah observasi pada \(X_i\)

Asumsi

  1. \(X_i\) i.i.d.
  2. Skala pengukuran \(X_i\) minimal ordinal

Statistik uji

\(T_1\) = Observasi ≤ \(x*\)

\(T_2\) = Observasi < \(x*\)

Aturan penolakan

Two Tailed

\(H_0: \text{kuantil ke p* populasi adalah x*}\)

\(H_1: \text{x* bukan kuantil ke p* populasi}\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Upper Tailed

\(H_0: Pr(X < x*) ≤ p*\)

\(H_1: Pr(X < x*) > p*\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Lower Tailed

\(H_0: Pr(X ≤ x*) ≥ p*\)

\(H_1: Pr(X ≤ x*) < p*\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Soal 1

Sebuah sampel acak siswa laki-laki kelas sepuluh menghasilkan 20 bobot sebagai berikut: 142, 134, 98, 119, 131, 103, 154, 122, 93, 137, 86, 119, 161, 144, 158, 165, 81, 117, 128, 103. Ujilah hipotesis bahwa median bobot tersebut adalah 103!

x <- c(142, 134, 98, 119, 131, 103, 154, 122, 93, 137, 86, 119, 161, 144, 158, 165, 81, 117, 128, 103)
quantile.test <- function(x, xstar, quantile = .5, alternative = "two.sided") {
  n <- length(x)
  p <- quantile
  T1 <- sum(x <= xstar)
  T2 <- sum(x < xstar)
  if (alternative == "quantile.less") {
    p.value <- 1 - pbinom(T2 - 1, n, p)
  }
  if (alternative == "quantile.greater") {
    p.value <- pbinom(T1, n, p)
  }
  if (alternative == "two.sided") {
    p.value <- 2 * min(1 - pbinom(T2 - 1, n, p), pbinom(T1, n, p))
  }
  list(xstar = xstar, alternative = alternative, T1 = T1, T2 = T2, p.value = p.value)
}

quantile.test(x, 103, quantile = 0.5, alternative = 'two.sided')
$xstar
[1] 103

$alternative
[1] "two.sided"

$T1
[1] 6

$T2
[1] 4

$p.value
[1] 0.1153183

Uji Chi-Square

Data

Asumsi

  1. Sampel adalah sampel acak
  2. Skala pengukuran minimal nominal

Statistik Uji

dengan

\(E_j = p_j^*N\)

di mana \(p_j^*\) adalah probabilitas observasi acak \(X\) berada pada kategori \(j\).

Aturan Penolakan

\(H_0: Pr(\text{X is in class j}) = p_j^* \text{for j = 1, ..., c}\)

\(H_1: Pr(\text{X is in class j}) \neq p_j^* \text{for at least 1 class}\)

Soal 1

Misalkan kita ingin mengetahui apakah gender berhubungan dengan preferensi partai politik. Kita mengambil sampel acak dari 500 pemilih dan survei preferensi partai politik mereka.

Gender Republican Democrat Independent
Male 120 90 40
Female 110 95 45

Tentukan apakah gender berhubungan dengan preferensi partai politik.

data <- matrix(c(120, 90, 40, 110, 95, 45), ncol = 3, byrow = TRUE)
colnames(data) <- c("Rep", "Dem", "Ind")
rownames(data) <- c("Male", "Female")
data <- as.table(data)
chisq.test(data)

    Pearson's Chi-squared test

data:  data
X-squared = 0.86404, df = 2, p-value = 0.6492

Soal 2

Untuk menguji klaim pemasok bahwa probabilitas kehidupan bagian mesin yang memuaskan adalah 0.7, lakukan uji chi-square dengan data berikut:

Number of Surviving Parts 0 1 2 3 4
Number of Machines 2 2 3 24 69
observed_frequency <- c(2, 2, 3, 24, 69)
probin <- dbinom(0:4, size = 4, prob = 0.7)
chisq.test(observed_frequency, p = probin)
Warning in chisq.test(observed_frequency, p = probin): Chi-squared
approximation may be incorrect

    Chi-squared test for given probabilities

data:  observed_frequency
X-squared = 118.09, df = 4, p-value < 2.2e-16

Uji Kolmogorov-Smirnov

Data

Data terdiri atas sampel acak \(X_1, X_2, ..., X_n\) yang berukuran n dan berasosiasi dengan suatu fungsi distribusi yang tidak dikenahui \(F(x)\)

Asumsi

  1. Sampel adalah sampel acak

Statistik Uji

Misal \(S(x)\) adalah fungsi distribusi empirik dari sampel acak \(X_1, X_2, ..., X_n\).

Two Tailed

\(T = \sup_{x} |F^*(x)-S(x)|\)

Upper Tailed

\(T^+ = \sup_{x} [F^*(x)-S(x)]\)

Lower Tailed

\(T^- = \sup_{x} [S(x)-F^*(x)]\)

Aturan Penolakan

Two Tailed

\(H_0: F(x) = F^*(x),\text{for all x from} -\infty \text{ to } +\infty\)

\(H_1: F(x) \neq F^*(x),\text{for at least one value of x}\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Upper Tailed

\(H_0: F(x) \geq F^*(x),\text{for all x from} -\infty \text{ to } +\infty\)

\(H_1: F(x) < F^*(x),\text{for at least one value of x}\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Lower Tailed

\(H_0: F(x) \leq F^*(x),\text{for all x from} -\infty \text{ to } +\infty\)

\(H_1: F(x) > F^*(x),\text{for at least one value of x}\)

Tolak \(H_0\) ketika p-value < \(\alpha\)

Soal 1

Contoh acak berukuran 10 diperoleh dengan hasil sebagai berikut: 0.203, 0.329, 0.382, 0.477, 0.48, 0.503, 0.554, 0.581, 0.621, 0.71. Apakah data tersebut berasal dari distribusi uniform?

x <- c(0.203, 0.329, 0.382, 0.477, 0.48, 0.503, 0.554, 0.581, 0.621, 0.71)
ks.test(x, "punif", 0, 1)

    Exact one-sample Kolmogorov-Smirnov test

data:  x
D = 0.29, p-value = 0.3067
alternative hypothesis: two-sided

Uji Sign

Soal 1

Sebuah restoran ingin membandingkan rasa masakan berdasarkan resep lama dan baru. Untuk itu, dilakukan pengujian pada 30 orang. Berikut hasil perbandingannya:

before <- c(9, 3, 10, 6, 8, 6, 3, 8, 1, 2, 1, 5, 4, 2, 2, 10, 1, 4, 7, 6, 3, 1, 7, 4, 8, 4, 5, 9, 1, 4)
after <- c(10, 9, 6, 10, 9, 6, 2, 3, 10, 7, 4, 7, 10, 6, 2, 10, 6, 5, 6, 7, 8, 8, 3, 3, 2, 5, 10, 9, 10, 6)
sign.test <- function(x = 0, y = NULL, Alternative = "two.sided") {
  n <- sum((x - y) != 0)
  T <- sum(x < y)
  if (Alternative == "less") {
    p.value <- pbinom(T, n, 0.5)
  }
  if (Alternative == "greater") {
    p.value <- 1 - pbinom(T - 1, n, 0.5)
  }
  if (Alternative == "two.sided") {
    p.value <- 2 * min(1 - pbinom(T - 1, n, 0.5), pbinom(T, n, 0.5))
  }
  list(n = n, Alternative = Alternative, T = T, p.value = p.value)
}
sign.test(before, after, Alternative = 'greater')
$n
[1] 26

$Alternative
[1] "greater"

$T
[1] 19

$p.value
[1] 0.01447964