Tulisan ini memuat panduan Uji-t dengan menggunakan contoh fiktif. Dalam panduan ini, ada dua tipe Uji-t yang akan dijabarkan, pertama Uji-t untuk 2 contoh tidak berkaitan (independent samples) dan Uji-t Berpasangan. Sebelum menggunakan kode R di bawah ini, penting untuk diketahui bahwa sebelum melakukan Uji-t, asumsi untuk analisis tersebut diperiksa terlebih dahulu. Asumsi tersebut yaitu kehomogenan ragam dan kenormalan distribusi data. Jika data tidak terdistribusi normal, maka lakukan transformasi data terlebih dahulu. Transformasi data yang biasa dilakukan misalnya transformasi logaritma atau akar.
Panduan untuk Uji-t menggunakan beberapa paket R, yaitu ggpubr, FSA, car dan PairedData. Jika akan melakukan analisis ini di laptop atau komputer Anda, pastikan bahwa keempat paket tersebut telah terpasang.
PENTING
Untuk menggunakan panduan ini, pertama jalankan program R Studio, lalu klik File - New File - R script. Setelah itu, ketik kode R di tiap blok abu-abu yang tertera di bawah ini. Untuk menjalankan kode di tiap baris, arahkan pointer di awal kode atau di akhir kode kemudian tekan tombol ctrl (control) bersamaan dengan menekan tombol enter. Alternatif lainnya klik run yang ada di bagian kanan atas panel source.
Hasil operasi dari kode R yang dijalankan akan muncul di bagian panel console (panel di bagian kiri bawah) atau panel fitur (panel di bagian kanan bawah) jika hasil berupa grafik. Jika pekerjaan Anda sudah selesai, klik File dan pilih Save. Simpan hasil pekerjaan Anda di folder yang Anda inginkan.
Memuat paket
library(ggpubr)
## Loading required package: ggplot2
library(FSA)
## ## FSA v0.8.31. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:FSA':
##
## bootCase
library(PairedData)
## Loading required package: MASS
## Loading required package: gld
## Loading required package: mvtnorm
## Loading required package: lattice
##
## Attaching package: 'PairedData'
## The following object is masked from 'package:base':
##
## summary
Menyusun dataset
Dataset dapat disusun langsung di R jika titik data tidak terlalu banyak. Walaupun demikian disarankan agar dataset dibuat terlebih dahulu di program Excel jika variabel yang akan dianalisis lebih dari satu dan titik data perlu dilakukan transformasi logaritmik atau jenis transformasi data lainnya. Dalam panduan ini, dataset dibuat langsung di R dengan alasan kepraktisan.
Data yang akan dianalisis di panduan ini merupakan data fiktif. Untuk Uji-t dengan 2 contoh tidak berkaitan, data yang akan dianalisis adalah perbandingan waktu pembekuan darah (detik) setelah konsumsi dua obat yang berbeda.
# Menyusun dataset
# Jika ulangan berbeda tiap kelompok obat maka ubah nilai ulangan di setiap kelompok obat
Obat <- c(rep("Obat A", 10), rep("Obat B", 10))
# Nilai waktu pembekuan darah dimasukkan melalui kode ini.
Waktu <- c(42, 45, 38, 41, 47, 35, 44, 40, 48, 47, 35, 37, 32, 30, 29, 38, 30, 33, 34, 28)
Obat <- factor(Obat) # Kode untuk menentukan tipe obat sebagai faktor
data <- data.frame(Obat, Waktu) # Kode untuk menyusun dataset
str(data) # kode untuk melihat struktur data
## 'data.frame': 20 obs. of 2 variables:
## $ Obat : Factor w/ 2 levels "Obat A","Obat B": 1 1 1 1 1 1 1 1 1 1 ...
## $ Waktu: num 42 45 38 41 47 35 44 40 48 47 ...
head(data) # Kode untuk melihat beberapa baris awal data
## Obat Waktu
## 1 Obat A 42
## 2 Obat A 45
## 3 Obat A 38
## 4 Obat A 41
## 5 Obat A 47
## 6 Obat A 35
Summarize(Waktu ~ Obat,
data=data,
digits=1) # Kode untuk menampilkan statistik deskriptif
## Obat n mean sd min Q1 median Q3 max
## 1 Obat A 10 42.7 4.3 35 40.2 43.0 46.5 48
## 2 Obat B 10 32.6 3.4 28 30.0 32.5 34.8 38
Pemeriksaan Kenormalan distribusi data
Kode di bawah ini digunakan untuk pemeriksaan kenormalan distribusi data. Ada 2 metode yang dipakai dalam panduan ini, yaitu Uji Shapiro-Wilk dan Mencermati QQ-Plot. Jika akan menggunakan data lain dengan nama kelompok/perlakuan serta variabel yang berbeda, ganti kata Waktu dengan nama variabel dari data yang akan dibandingkan.
# shapiro.test: kode untuk instruksi pemeriksaan normalitas data dengan Uji Shapiro.
# Jika nilai p > 0.05, asumsi normalitas data terpenuhi
with(data, shapiro.test(Waktu[Obat == "Obat A"]))
##
## Shapiro-Wilk normality test
##
## data: Waktu[Obat == "Obat A"]
## W = 0.95076, p-value = 0.6775
with(data, shapiro.test(Waktu[Obat == "Obat B"]))
##
## Shapiro-Wilk normality test
##
## data: Waktu[Obat == "Obat B"]
## W = 0.95248, p-value = 0.6979
# kode untuk menyusun Q-Q plot untuk mengetahui apakah data memenuhi asumsi atau tidak.
# Jika titik data berada di antara garis putus-putus, data memenuhi asumsi.
qqPlot(data$Waktu)
## [1] 9 20
Pemeriksaan varians
# Jika nilai p > 0.05, asumsi kehomogenan ragam terpenuhi
var.test(Waktu ~ Obat, data = data)
##
## F test to compare two variances
##
## data: Waktu by Obat
## F = 1.5718, num df = 9, denom df = 9, p-value = 0.5111
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.3904226 6.3282150
## sample estimates:
## ratio of variances
## 1.571839
Uji T untuk dua contoh tidak berkaitan
# Jika nilai p < 0,05, berarti bahwa ada perbedaan yang signifikan antar kelompok/perlakuan.
t.test(Waktu ~ Obat, data = data, var.equal = TRUE)
##
## Two Sample t-test
##
## data: Waktu by Obat
## t = 5.8475, df = 18, p-value = 1.542e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 6.471218 13.728782
## sample estimates:
## mean in group Obat A mean in group Obat B
## 42.7 32.6
Grafik
Visualisasi hasil Uji-t dapat dilakukan dengan menggunakan kode R di bawah ini. Dalam panduan ini, grafik yang dihasilkan dalam bentuk diagram batang. Modifikasi grafik untuk data yang lain dapat dilakukan dengan mengganti nama kelompok atau perlakuan, variabel yang diamati, nilai ylim, posisi label geom_text (nilai x dan y) dan keterangan nama uji statistik yang digunakan serta nilai p pada label geom_text.
ggbarplot(data, x="Obat", y="Waktu", ylim= c(0, 50), add = "mean_se", xlab= "Jenis Obat", ylab="Waktu (detik)") +
geom_text(x=2.1, y=50, label="Uji-t, p < 0,01")
Menyusun dataset 2
Data yang akan dianalisis untuk Uji-t berpasangan adalah perbandingan panjang tungkai depan dan tungkai belakang (cm) pada Orangutan Kalimantan.
# Menyusun dataset
# Jika ulangan berbeda tiap kelompok maka ubah nilai ulangan di setiap kelompok
Tungkai <- c(rep("Depan", 10), rep("Belakang", 10))
# Nilai panjang tungkai depan dan belakang dimasukkan melalui kode ini
Panjang <- c(75, 74, 70, 78, 77, 79, 71, 72, 73, 80, 65, 66, 62, 63, 61, 60, 67, 64, 62, 65)
Tungkai <- factor(Tungkai) # Kode untuk menentukan tungkai sebagai faktor
data2 <- data.frame(Tungkai, Panjang) # Kode untuk menyusun dataset
str(data2) # kode untuk melihat struktur data
## 'data.frame': 20 obs. of 2 variables:
## $ Tungkai: Factor w/ 2 levels "Belakang","Depan": 2 2 2 2 2 2 2 2 2 2 ...
## $ Panjang: num 75 74 70 78 77 79 71 72 73 80 ...
head(data2) # Kode untuk melihat beberapa baris awal data
## Tungkai Panjang
## 1 Depan 75
## 2 Depan 74
## 3 Depan 70
## 4 Depan 78
## 5 Depan 77
## 6 Depan 79
Summarize(Panjang ~ Tungkai,
data=data2,
digits=1) # Kode untuk menampilkan statistik deskriptif
## Tungkai n mean sd min Q1 median Q3 max
## 1 Belakang 10 63.5 2.3 60 62.0 63.5 65.0 67
## 2 Depan 10 74.9 3.5 70 72.2 74.5 77.8 80
Pemeriksaan Kenormalan distribusi data
# shapiro.test: kode untuk instruksi pemeriksaan normalitas data dengan Uji Shapiro.
# Jika nilai p > 0.05, asumsi normalitas data terpenuhi.
d <- with(data2,
Panjang[Tungkai == "Depan"] - Panjang[Tungkai == "Belakang"])
shapiro.test(d)
##
## Shapiro-Wilk normality test
##
## data: d
## W = 0.94696, p-value = 0.6327
# qqPlot: kode untuk menyusun Q-Q plot untuk mengetahui apakah data memenuhi asumsi atau tidak.
# Jika titik data berada di antara garis putus-putus, data memenuhi asumsi.
qqPlot(data2$Panjang)
## [1] 10 6
Uji T berpasangan
# Jika nilai p < 0,05, berarti bahwa ada perbedaan yang signifikan antar kelompok/perlakuan.
t.test(Panjang ~ Tungkai, data = data2, paired = TRUE)
##
## Paired t-test
##
## data: Panjang by Tungkai
## t = -7.7171, df = 9, p-value = 2.948e-05
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -14.741737 -8.058263
## sample estimates:
## mean of the differences
## -11.4
Grafik
Visualisasi hasil Uji-t dapat dilakukan dengan menggunakan kode R di bawah ini. Dalam panduan ini, grafik yang dihasilkan dalam bentuk diagram batang. Modifikasi grafik untuk data yang lain dapat dilakukan dengan mengganti nama kelompok atau perlakuan, variabel yang diamati, nilai ylim, posisi label geom_text (nilai x dan y) dan keterangan nama uji statistik yang digunakan serta nilai p pada label geom_text.
ggbarplot(data2, x="Tungkai", y="Panjang", ylim= c(0, 80), add = "mean_se", xlab= "Tungkai", ylab="Panjang (cm)") +
geom_text(x=1, y=80, label="Uji-t berpasangan, p < 0,01")