Tabel 2 x 2

Sebagai ilustrasi pertama, akan digunakan data yang sama seperti yang dibahas pada kelas kuliah ke-2 MK STA1544, yaitu data yang diperoleh dari studi yang dilakukan oleh Hampton dan Hill (1978). Studi ini melibatkan 264 subjek yang dialokasikan secara acak apakah dirawat di rumah atau dirawat di rumah sakit. Kemudian diamati kejadian meninggal selama enam minggu.

Membuat tabel menggunakan fungsi matrix()

rawat<-matrix(c(17, 14, 115, 118), nrow=2, ncol=2, byrow=T)
dimnames(rawat)<-list(Respon=c("Meninggal", "Hidup"), 
                        Perlakuan=c("Rawat Rumah", "Rawat RS"))

print(rawat)
##            Perlakuan
## Respon      Rawat Rumah Rawat RS
##   Meninggal          17       14
##   Hidup             115      118
rawat<-as.table(rawat)
str(rawat)
##  'table' num [1:2, 1:2] 17 115 14 118
##  - attr(*, "dimnames")=List of 2
##   ..$ Respon   : chr [1:2] "Meninggal" "Hidup"
##   ..$ Perlakuan: chr [1:2] "Rawat Rumah" "Rawat RS"

Rasio Odds

Jika kejadian meninggal dianggap sebagai kasus, berikut ini adalah perhitungan rasio odds dirawat di rumah vs di rumah sakit.

library(DescTools)
(OR.rawat <- OddsRatio(rawat, conf.level = 0.95))
## odds ratio     lwr.ci     upr.ci 
##   1.245963   0.587058   2.644412
ORToRelRisk(OR.rawat, 14/132)
## odds ratio     lwr.ci     upr.ci 
##  1.2142857  0.6139469  2.2516992

Uji Asosiasi

chisq.test(rawat)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  rawat
## X-squared = 0.1462, df = 1, p-value = 0.7022

Tabel Kontingensi Umum

dengkur<-matrix(c(24, 35, 21, 30,
                  1355, 603, 192, 224), nrow=2, byrow = T)

dimnames(dengkur)<-list(Peny.jantung=c("Ya", "Tidak"), 
                        Perilaku.Mendengkur=c("Tidak", "Kadang", "Sering", "Selalu"))

print(dengkur)
##             Perilaku.Mendengkur
## Peny.jantung Tidak Kadang Sering Selalu
##        Ya       24     35     21     30
##        Tidak  1355    603    192    224

Uji Asosiasi

chisq.test(dengkur)
## 
##  Pearson's Chi-squared test
## 
## data:  dengkur
## X-squared = 72.782, df = 3, p-value = 1.082e-15

Uji Khi-Kuadrat Mantel-Haenszel

library(vcd)
## Warning: package 'vcd' was built under R version 4.2.3
## Loading required package: grid
CHL<-matrix(c(14, 57, 91, 447), nrow=2, byrow = T)

dimnames(CHL)<-list(CHD=c("Ya", "Tidak"), 
                        CHLbeyond260=c("Ya", "Tidak"))

print(CHL)
##        CHLbeyond260
## CHD     Ya Tidak
##   Ya    14    57
##   Tidak 91   447
OddsRatio(CHL, conf.level = 0.95)
## odds ratio     lwr.ci     upr.ci 
##  1.2064777  0.6447671  2.2575417

Hipotesis yang diuji adalah \(H_0: OR=1\) lawan \(H_1: OR\ne1\)

MHChisqTest(CHL)
## 
##  Mantel-Haenszel Chi-Square
## 
## data:  CHL
## X-squared = 0.345, df = 1, p-value = 0.557

Rasio Odds Mantel Haenszel

strata1<-as.table(matrix(c(3, 4, 176, 293),
                         nrow=2, byrow = T,
                         dimnames=(list(Prenatal=c("Ya","Tidak"),
                                       Meninggal=c("Ya","Tidak")))))

strata2<-as.table(matrix(c(17, 2, 197, 23),
                         nrow=2, byrow = T,
                         dimnames=(list(Prenatal=c("Ya","Tidak"),
                                       Meninggal=c("Ya","Tidak")))))
s1<-epitools::expand.table(strata1)
s1$strata<-rep("Klinik A", nrow(s1))

s2<-epitools::expand.table(strata2)
s2$strata<-rep("Klinik B", nrow(s2))

contoh<-rbind(s1, s2)
(contoh.MH<-with(contoh, table(Prenatal, Meninggal, strata)))
## , , strata = Klinik A
## 
##         Meninggal
## Prenatal  Ya Tidak
##    Ya      3     4
##    Tidak 176   293
## 
## , , strata = Klinik B
## 
##         Meninggal
## Prenatal  Ya Tidak
##    Ya     17     2
##    Tidak 197    23
library(epiDisplay)
mhor(mhtable=contoh.MH, graph=F)
## 
## Stratified analysis by  strata 
##                     OR lower lim. upper lim. P value
## strata Klinik A  1.248      0.181       7.47   1.000
## strata Klinik B  0.992      0.213       9.41   1.000
## M-H combined     1.114      0.376       3.30   0.844
## 
## M-H Chi2(1) = 0.04 , P value = 0.844 
## Homogeneity test, chi-squared 1 d.f. = 0.04 , P value = 0.834
(crude<-with(contoh, table(Prenatal, Meninggal)))
##         Meninggal
## Prenatal  Ya Tidak
##    Ya     20     6
##    Tidak 373   316
OddsRatio(crude, conf.level = 0.95)
## odds ratio     lwr.ci     upr.ci 
##   2.823950   1.120302   7.118344

Data Lainnya

data("Arthritis", package="vcd")
data("HairEyeColor")
data("UCBAdmissions")