Šis kods veic hipotēžu testu par indikatora biežumiem dažādās vēža stadijās
by Artis Luguzis, 03/2018
library(fifer) # chi-square post hoc testi
## Warning: package 'fifer' was built under R version 3.4.3
## Loading required package: MASS
# I - IV stadijas salīdzinājums
tab1<-matrix(c(25,26,54,35,7,15,45,73),nrow = 4)
k<-(nrow(tab1)-1)*(ncol(tab1)-1) # Hī-kvadrāta testam
rownames(tab1)<-c("I stadija","II stadija","III stadija","IV stadija")
colnames(tab1)<-c("<3.7",">=3.7")
# IIIb - IV stadijas salīdzinājums
tab2<-matrix(c(22,21,41,24,38,134),nrow = 3)
k<-(nrow(tab2)-1)*(ncol(tab2)-1) # Hī-kvadrāta testam
rownames(tab2)<-c("IIIb stadija","IIIc stadija","IV stadija")
colnames(tab2)<-c("<3.7",">=3.7")
tab1
## <3.7 >=3.7
## I stadija 25 7
## II stadija 26 15
## III stadija 54 45
## IV stadija 35 73
tab2
## <3.7 >=3.7
## IIIb stadija 22 24
## IIIc stadija 21 38
## IV stadija 41 134
chisq.res1<-chisq.test(tab1)
chisq.res1$statistic
## X-squared
## 27.26477
chisq.res1$p.value
## [1] 5.180882e-06
chisq.res2<-chisq.test(tab2)
chisq.res2$statistic
## X-squared
## 11.43824
chisq.res2$p.value
## [1] 0.003282604
Abos gadījumus nulles hipotēzi par faktoru vienādību noraida!
Post-hoc testi veic savstarpējas salīdzināšanas starp vēža stadijām pa pāriem ar to pašu Hī-kvadrāta testu, tikai p-vērtības tiek koriģētas, lai ņemtu vērā multiple testing. Zemāk aprēķina p-vērtību korekcijas ar dažādām metodēm.
# Tabula 1
p.vals.m.tab1<-chisq.post.hoc(tab1, test='chisq.test',control = "bonferroni")[,1:2]
## Adjusted p-values used the bonferroni method.
var.pvals.tab1<-round(sapply(c("holm", "hochberg", "hommel", "bonferroni", "BH", "BY"),
function(x) p.adjust(p.vals.m.tab1[,2],method = x)),5)
p.vals.comp.m1<-cbind(p.vals.m.tab1,var.pvals.tab1)
p.vals.comp.m1
## comparison raw.p holm hochberg hommel bonferroni
## 1 I stadija vs. II stadija 0.2704 0.5408 0.4369 0.43690 1.0000
## 2 I stadija vs. III stadija 0.0306 0.0918 0.0918 0.09180 0.1836
## 3 I stadija vs. IV stadija 0.0000 0.0000 0.0000 0.00000 0.0000
## 4 II stadija vs. III stadija 0.4369 0.5408 0.4369 0.43690 1.0000
## 5 II stadija vs. IV stadija 0.0011 0.0055 0.0055 0.00525 0.0066
## 6 III stadija vs. IV stadija 0.0021 0.0084 0.0084 0.00840 0.0126
## BH BY
## 1 0.32448 0.79498
## 2 0.04590 0.11246
## 3 0.00000 0.00000
## 4 0.43690 1.00000
## 5 0.00330 0.00809
## 6 0.00420 0.01029
Principā redzams, ka gandrīz visas korekcijas dod līdzīgus spriedumus par testiem, t.i.
# Tabula 2
p.vals.m.tab2<-chisq.post.hoc(tab2, test='chisq.test',control = "bonferroni")[,1:2]
## Adjusted p-values used the bonferroni method.
var.pvals.tab2<-round(sapply(c("holm", "hochberg", "hommel", "bonferroni", "BH", "BY"),
function(x) p.adjust(p.vals.m.tab2[,2],method = x)),5)
p.vals.comp.m2<-cbind(p.vals.m.tab2,var.pvals.tab2)
p.vals.comp.m2
## comparison raw.p holm hochberg hommel bonferroni
## 1 IIIb stadija vs. IIIc stadija 0.2870 0.2870 0.2870 0.2870 0.8610
## 2 IIIb stadija vs. IV stadija 0.0021 0.0063 0.0063 0.0063 0.0063
## 3 IIIc stadija vs. IV stadija 0.0968 0.1936 0.1936 0.1936 0.2904
## BH BY
## 1 0.2870 0.52617
## 2 0.0063 0.01155
## 3 0.1452 0.26620
Atkal, starp dažādām korekcijām nav būtiskas atšķirības spriedumu ziņā, t.i.
Šķiet, ka rezultāti ir saskaņā ar vēža stadiju progresiju, kā rakstīji.