library(nortest)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

BAB 8 - Uji Kesamaan Rata-Rata Dua Populasi untuk Data Berpasangan (Paired t-Test)

1. Persiapan Data

X adalah denyut jantung sebelum mengonsumsi Obat A, dan Y adalah denyut jantung sesudahnya.

X <- c(78, 75, 67, 77, 70, 72, 78, 74, 77)
Y <- c(100, 95, 70, 90, 90, 90, 89, 90, 100)
D <- Y - X

data_bab8 <- data.frame(
  Responden = 1:9,
  Sebelum = X,
  Sesudah = Y,
  Selisih = D
)
data_bab8

2. Deskripsi Statistik Selisih

n      <- length(D)
mean_d <- mean(D)
sd_d   <- sd(D)

cat("Jumlah pasangan data (n)     :", n, "\n")
## Jumlah pasangan data (n)     : 9
cat("Rata-rata selisih (d_bar)    :", mean_d, "\n")
## Rata-rata selisih (d_bar)    : 16.22222
cat("Standar deviasi selisih (sd) :", sd_d, "\n")
## Standar deviasi selisih (sd) : 6.359595

3. Hipotesis

  • H0: tidak ada perbedaan rata-rata denyut jantung sebelum dan sesudah mengonsumsi Obat A.
  • H1: ada perbedaan rata-rata denyut jantung sebelum dan sesudah mengonsumsi Obat A.
  • Taraf signifikansi: 5%.

4. Uji t Berpasangan

hasil_t_test <- t.test(Y, X, paired = TRUE, conf.level = 0.95)
hasil_t_test
## 
##  Paired t-test
## 
## data:  Y and X
## t = 7.6525, df = 8, p-value = 6.003e-05
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  11.33381 21.11064
## sample estimates:
## mean difference 
##        16.22222
t_hitung <- hasil_t_test$statistic
df       <- hasil_t_test$parameter
p_value  <- hasil_t_test$p.value

cat("Nilai t hitung     :", t_hitung, "\n")
## Nilai t hitung     : 7.652479
cat("Derajat bebas (df) :", df, "\n")
## Derajat bebas (df) : 8
cat("p-value            :", p_value, "\n")
## p-value            : 6.003179e-05

5. Keputusan

alpha <- 0.05

if (p_value < alpha) {
  cat("p-value <", alpha, "\n")
  cat("H0 ditolak dan H1 diterima.\n")
  cat("Ada perbedaan yang signifikan antara denyut jantung\n")
  cat("sebelum dan sesudah mengonsumsi Obat A.\n")
} else {
  cat("p-value >=", alpha, "\n")
  cat("H0 diterima dan H1 ditolak.\n")
  cat("Tidak ada perbedaan yang signifikan antara denyut jantung\n")
  cat("sebelum dan sesudah mengonsumsi Obat A.\n")
}
## p-value < 0.05 
## H0 ditolak dan H1 diterima.
## Ada perbedaan yang signifikan antara denyut jantung
## sebelum dan sesudah mengonsumsi Obat A.

6. Uji Asumsi Normalitas (pada Selisih D)

Uji normalitas dilakukan pada data selisih (D), bukan pada X dan Y secara terpisah.

Normal Q-Q Plot

qqnorm(D, main = "Normal Q-Q Plot dari Selisih (D)", pch = 19)
qqline(D, lwd = 2)

Uji Kolmogorov-Smirnov (Lilliefors)

hasil_ks <- lillie.test(D)
hasil_ks
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  D
## D = 0.1682, p-value = 0.6544

Uji Jarque-Bera

hasil_jb <- jarque.bera.test(D)
hasil_jb
## 
##  Jarque Bera Test
## 
## data:  D
## X-squared = 1.3935, df = 2, p-value = 0.4982

Kesimpulan Uji Normalitas

if (hasil_ks$p.value > alpha) {
  cat("Uji Kolmogorov-Smirnov: p-value >", alpha, "-> data selisih berdistribusi normal.\n")
} else {
  cat("Uji Kolmogorov-Smirnov: p-value <", alpha, "-> data selisih tidak berdistribusi normal.\n")
}
## Uji Kolmogorov-Smirnov: p-value > 0.05 -> data selisih berdistribusi normal.
if (hasil_jb$p.value > alpha) {
  cat("Uji Jarque-Bera: p-value >", alpha, "-> data selisih berdistribusi normal.\n")
} else {
  cat("Uji Jarque-Bera: p-value <", alpha, "-> data selisih tidak berdistribusi normal.\n")
}
## Uji Jarque-Bera: p-value > 0.05 -> data selisih berdistribusi normal.