Tutorial R
Uji Tanda merupakan uji statistik nonparametrik untuk dua sampel berhubungan. Untuk melakukan Uji Tanda dalam R, kita dapat menggunakan perintah atau fungsi SignTest()
.
Uji Tanda merupakan uji statistik nonparametrik untuk dua sampel berhubungan dan digunakan untuk menguji signifikansi dua perlakuan. Untuk melakukan uji tanda dalam R, kita dapat menggunakan perintah atau fungsi SignTest()
.
Sebagai contoh, kita akan gunakan data mice2
pada package datarium
. Data mice2
ini berisi berat 10 tikus sebelum (before) dan sesudah (after) diberikan perlakuan dalam suatu percobaan.
Sintaks:
#install.packages("datarium")
library(datarium)
# Menampilkan 6 pengamatan pertama
data("mice2", package = "datarium")
head(mice2)
Output:
id before after
1 1 187.2 429.5
2 2 194.2 404.4
3 3 231.7 405.6
4 4 200.5 397.2
5 5 201.7 377.9
6 6 235.0 445.8
# Uji Tanda
SignTest(mice2$after, mice2$before)
Output:
Dependent-samples Sign-Test
data: mice2$after and mice2$before
S = 10, number of differences = 10, p-value = 0.001953
alternative hypothesis: true median difference is not equal to 0
97.9 percent confidence interval:
173.9 229.7
sample estimates:
median of the differences
198.2
Dari hasil di atas, kita peroleh p-value untuk uji tanda sebesar 0.001953. Nilai ini lebih kecil dari tingkat signifikansi uji 0.05 sehingga tolak hipotesis nol. Jadi, dapat disimpulkan bahwa berat tikus sebelum dan sesudah diberi perlakuan adalah berbeda secara nyata. Dengan kata lain, perlakuan yang diberikan efektif meningkatkan berat tikus.
Selain menggunakan perintah SignTest()
, kita juga dapat menggunakan perintah sign_test()
. Kita akan gunakan data yang sama dengan kasus di atas. Tapi sebelum itu, pastikan beberapa package berikut telah terinstall di R.
#install.packages("tidyverse")
#install.packages("rstatix")
#install.packages("ggpubr")
library(tidyverse)
library(rstatix)
library(ggpubr)
# Mengubah tampilan data ke dalam format memanjang ke bawah
# atau menghimpun nilai data sebelum dan sesudah ke dalam satu kolom yang sama
mice2.long <- mice2 %>% gather(key = "group",
value = "weight", before, after)
# menampilkan 6 pengamatan pertama
head(mice2.long)
Output:
id group weight
1 1 before 187.2
2 2 before 194.2
3 3 before 231.7
4 4 before 200.5
5 5 before 201.7
6 6 before 235.0
### Membuat ringkasan statistik menurut kelompok
mice2.long %>%
group_by(group) %>%
get_summary_stats(weight, type = "median_iqr")
Output:
# A tibble: 2 x 5
group variable n median iqr
(chr) (chr) (dbl) (dbl) (dbl)
1 after weight 10 405 28.3
2 before weight 10 197. 19.2
Sebenarnya, tanpa melakukan uji tanda pun kita cukup yakin bahwa weight
sebelum dan sesudah diberikan perlakuan adalah berbeda secara signifikan. Itu karena dari ringkasan statistik yang kita buat di atas, tampak bahwa median yang diperoleh berbeda cukup nyata pada data sebelum dan sesudah perlakuan. Untuk lebih jelas, perhatikan visualisasinya berikut ini.
bxp <- ggpaired(mice2.long, x = "group", y = "weight",
order = c("before", "after"),
ylab = "Weight", xlab = "Groups")
bxp
Akan tetapi, untuk lebih menyakinkan ada baiknya kita lakukan uji tanda (sign test) dengan sintaks sebagai berikut:
stat.test <- mice2.long %>%
sign_test(weight ~ group) %>%
add_significance()
stat.test
Output:
# A tibble: 1 x 9
.y. group1 group2 n1 n2 statistic df p p.signif
(chr) (chr) (chr) (int) (int) (dbl) (dbl) (dbl) (chr)
1 weight after before 10 10 10 10 0.00195 **
Dari output yang diperoleh di atas, dapat kita simpulkan bahwa median weight
tikus sebelum diberi perlakuan adalah berbeda secara signifikan dengan median weight
setelah diberi perlakuan berdasarkan uji tanda (sign test) dengan p-value sebesar 0,002.
stat.test <- stat.test %>% add_xy_position(x = "group")
bxp +
stat_pvalue_manual(stat.test, tip.length = 0) +
labs(
subtitle = get_test_label(stat.test, detailed= TRUE)
)
Always walk through life as if you have something new to learn and you will.
Vernon Howard