Uji-t

Uji-t satu dan dua sampel beserta asumsi dan penafsiran hasilnya.

Daftar isi

Uji-t membandingkan rata-rata data dengan sebuah nilai acuan atau membandingkan rata-rata dua kelompok, sambil mengakomodasi ketidakpastian yang berasal dari sampel. Topik ini menjalankan t.test() untuk tiga bentuk yang paling umum, yaitu uji satu sampel, uji dua sampel independen, dan uji berpasangan, kemudian membedah setiap bagian keluarannya. Asumsi yang mendasari uji beserta cara menafsirkan p-value dengan benar dibahas pada bagian akhir.

Uji-t satu sampel#

Uji-t satu sampel menanyakan apakah rata-rata populasi berbeda dari satu nilai acuan. Data contohnya berupa nilai ujian statistika dari 18 siswa, sedangkan acuannya adalah target sekolah sebesar 75. Hipotesis nol (null hypothesis) menyatakan rata-rata populasi sama dengan acuan, dituliskan H0:μ=75H_0: \mu = 75, sedangkan hipotesis alternatif menyatakan rata-rata populasi berbeda dari acuan, dituliskan Ha:μ≠75H_a: \mu \neq 75. Dalam bahasa sehari-hari, pertanyaannya berbunyi apakah rata-rata kelas ini benar-benar berbeda dari target 75 atau selisihnya masih dapat dijelaskan oleh kebetulan sampling.

r
library(tidyverse)

nilai <- c(78, 82, 75, 68, 85, 79, 71, 84, 88, 76, 80, 73, 77, 81, 69, 83, 86, 74)
text Keluaran
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.2.1     ✔ readr     2.2.0
✔ forcats   1.0.1     ✔ stringr   1.6.0
✔ ggplot2   4.0.3     ✔ tibble    3.3.1
✔ lubridate 1.9.5     ✔ tidyr     1.3.2
✔ purrr     1.2.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Fungsi t.test() menerima datanya pada argumen pertama dan nilai acuannya pada argumen mu.

r
t.test(nilai, mu = 75)
text Keluaran

	One Sample t-test

data:  nilai
t = 2.3653, df = 17, p-value = 0.03016
alternative hypothesis: true mean is not equal to 75
95 percent confidence interval:
 75.35410 81.20145
sample estimates:
mean of x 
 78.27778 

Bagian pertama keluaran melaporkan statistik uji t sebesar 2,3653 dengan derajat bebas (degrees of freedom, df) 17, yaitu ukuran sampel dikurangi satu. Nilai p-value 0,03016 adalah peluang memperoleh statistik uji yang sama ekstremnya atau lebih apabila H0H_0 benar. Karena 0,03016 lebih kecil daripada ambang lazim 0,05, hipotesis nol ditolak dan rata-rata kelas dinyatakan berbeda nyata dari 75. Baris sample estimates melaporkan rata-rata sampel 78,28, sedangkan interval kepercayaan 95 persen dari 75,35 sampai 81,20 tidak memuat angka 75, selaras dengan keputusan menolak H0H_0.

Uji-t dua sampel independen#

Uji-t dua sampel independen membandingkan rata-rata dua kelompok yang subjeknya tidak saling berhubungan. Data yang digunakan adalah ToothGrowth, dataset bawaan R yang mencatat panjang gigi 60 tikus guinea pada dua jenis pemberian vitamin C, yaitu jus jeruk (OJ) dan asam askorbat (VC). Pada bagian ini kedua kelompok dibandingkan pada dosis 0,5 mg per hari, dengan formula len ~ supp yang membaca kolom len menurut kelompok pada kolom supp. Hipotesis nolnya menyatakan selisih rata-rata kedua kelompok sama dengan nol.

r
tooth05 <- ToothGrowth[ToothGrowth$dose == 0.5, ]
t.test(len ~ supp, data = tooth05)
text Keluaran

	Welch Two Sample t-test

data:  len by supp
t = 3.1697, df = 14.969, p-value = 0.006359
alternative hypothesis: true difference in means between group OJ and group VC is not equal to 0
95 percent confidence interval:
 1.719057 8.780943
sample estimates:
mean in group OJ mean in group VC 
           13.23             7.98 

Keluarannya menyebut Welch Two Sample t-test karena secara default t.test() menggunakan koreksi Welch melalui argumen bawaan var.equal = FALSE. Koreksi ini tidak menuntut kedua kelompok bervarians sama dan menyesuaikan derajat bebannya, yang terlihat dari nilai df 14,969 yang bukan bilangan bulat. Rata-rata kelompok OJ sebesar 13,23 lebih tinggi daripada VC sebesar 7,98, dan interval kepercayaan 95 persen menaksir selisih sebenarnya berada di antara 1,72 dan 8,78. Dengan p-value 0,006359 yang jauh di bawah 0,05, hipotesis nol ditolak. Apabila kedua kelompok memang diasumsikan bervarians sama, argumen var.equal = TRUE mengaktifkan uji Student klasik.

Uji-t berpasangan#

Uji-t berpasangan digunakan apabila kedua pengukuran berasal dari subjek yang sama, misalnya pengukuran sebelum dan sesudah perlakuan. Dataset sleep bawaan R mencatat tambahan jam tidur sepuluh subjek pada dua perlakuan obat tidur yang berbeda. Karena subjeknya sama, variasi antarindividu dapat dikeluarkan dari perhitungan, sehingga uji berpasangan biasanya lebih sensitif daripada uji independen pada data semacam ini. Data kedua kelompoknya disiapkan sebagai dua vektor yang terurut sama per subjek.

r
obat_1 <- sleep$extra[sleep$group == 1]
obat_2 <- sleep$extra[sleep$group == 2]
t.test(obat_2, obat_1, paired = TRUE)
text Keluaran

	Paired t-test

data:  obat_2 and obat_1
t = 4.0621, df = 9, p-value = 0.002833
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 0.7001142 2.4598858
sample estimates:
mean difference 
           1.58 

Argumen paired = TRUE membuat uji bekerja pada selisih kedua pengukuran setiap subjek, lalu menguji apakah rata-rata selisihnya berbeda dari nol. Hasilnya t = 4,0621 dengan df = 9 karena pasangan yang dibandingkan ada sepuluh. p-value 0,002833 menunjukkan tambahan jam tidur antara kedua perlakuan berbeda nyata, dengan selisih rata-rata 1,58 jam dan interval kepercayaan 95 persen dari 0,70 sampai 2,46 jam.

Asumsi dan penafsiran p-value#

Uji-t menuntut dua asumsi utama. Pertama, nilainya berdistribusi mendekati normal pada setiap kelompok, atau data yang diuji berupa selisih yang mendekati normal pada uji berpasangan. Kedua, observasi saling bebas, yaitu satu subjek tidak memengaruhi subjek lain, dan asumsi ini ditentukan oleh cara pengumpulan data, bukan oleh uji statistik. Uji Shapiro-Wilk melalui shapiro.test() memberikan cara ringkas memeriksa asumsi normalitas pada data.

r
shapiro.test(nilai)
text Keluaran

	Shapiro-Wilk normality test

data:  nilai
W = 0.97652, p-value = 0.9072

p-value 0,9072 jauh di atas 0,05, sehingga data tidak menunjukkan penyimpangan yang jelas dari normalitas dan asumsi tersebut dapat diterima. Sebagai catatan, uji-t cukup tahan terhadap penyimpangan ringan dari normalitas, terutama pada sampel yang besar. Untuk sampel kecil dengan sebaran yang miring, uji Wilcoxon menjadi alternatif yang tidak menuntut normalitas.

Penafsiran p-value perlu dijaga agar tidak melebihi maknanya. p-value bukan peluang bahwa hipotesis nol benar, bukan pula bukti kebenaran hipotesis alternatif. Angka 0,03016 pada uji satu sampel hanya menyatakan bahwa data yang teramati sulit muncul apabila rata-rata populasi benar-benar 75. Keputusan juga tidak boleh dibuat dari p-value semata, karena ukuran sampel, besaran selisih yang praktis berarti, dan konteks data ikut menentukan kesimpulan akhirnya.

Kesalahan umum#

Kesalahan yang pertama adalah memberikan argumen paired = TRUE pada t.test() yang menggunakan formula. Metode formula tidak mengetahui pasangan mana yang bersesuaian, sehingga R menampilkan pesan error berikut.

r
t.test(extra ~ group, data = sleep, paired = TRUE)
text Keluaran
Error in t.test.formula(extra ~ group, data = sleep, paired = TRUE) : cannot use 'paired' in formula method

Perbaikannya adalah menyediakan dua vektor yang terurut sama per subjek, sebagaimana dilakukan pada bagian uji-t berpasangan. Kesalahan yang kedua adalah mengulang pengukuran pada subjek yang sama tetapi menganalisisnya sebagai dua kelompok independen. Penyebabnya kerap berupa format data yang belum memuat penanda subjek, dan akibatnya uji kehilangan sensitivitas serta melaporkan p-value yang terlalu besar. Perbaikannya adalah memastikan identitas subjek tercatat lalu menggunakan paired = TRUE pada data yang sejajar.

Kesalahan yang ketiga adalah menafsirkan gagal menolak hipotesis nol sebagai pembuktian bahwa hipotesis nol benar. Uji yang menghasilkan p-value, misalnya 0,1314, hanya menyatakan bahwa bukti terhadap perbedaan belum cukup kuat, bukan bahwa kedua rata-ratanya pasti sama. Sampel yang lebih besar dapat membalik keputusan pada data yang sama, sehingga laporan sebaiknya menyebut ukuran sampelnya bersama keputusan ujinya.

Ringkasan#

  • t.test(x, mu = ) menguji satu rata-rata terhadap nilai acuan, t.test(x ~ g) membandingkan dua kelompok dengan koreksi Welch secara default, dan paired = TRUE menangani data berpasangan.
  • Keluaran t.test() memuat statistik t, derajat bebas, p-value, interval kepercayaan 95 persen, dan rata-rata sampel.
  • Asumsi utamanya adalah normalitas yang dapat diperiksa dengan shapiro.test() serta independensi observasi yang ditentukan oleh desain pengumpulan data.
  • p-value adalah peluang memperoleh data yang sama ekstremnya atau lebih apabila hipotesis nol benar, sehingga bukan bukti kebenaran hipotesis alternatif.

Referensi#