Skip to content

Instantly share code, notes, and snippets.

@ysaito8015
Last active August 29, 2015 14:01
Show Gist options
  • Save ysaito8015/b5735258d6f64600d856 to your computer and use it in GitHub Desktop.
Save ysaito8015/b5735258d6f64600d856 to your computer and use it in GitHub Desktop.
層によるオッズ比が異なるかどうかを検定するに は,Tarone の検定を利用する. Taroneの検定スクリプト
##metaforパッケージをインストールする
#install.packages("metafor")
#library("metafor")
calcTaronesTest <- function(mylist,referencerow=2)
{
numstrata <- length(mylist)
# 各層における曝露グループの人数のアレイ"ntrt"を作る
# 各層における非曝露グループの人数のアレイ"nctrl"を作る
# 各層における疾病を持つ曝露グループの人数のアレイ"ptrt"を作る
# 各層における疾病を持つ非曝露グループの人数のアレイ"pctrl"を作る
# 各層における疾病を持たない曝露グループの人数のアレイ"htrt"を作る
# 各層における疾病を持たない非曝露グループの人数のアレイ"hctrl"を作る ntrt <- vector()
nctrl <- vector()
ptrt <- vector()
pctrl <- vector()
htrt <- vector()
hctrl <- vector()
if (referencerow == 1) { nonreferencerow <- 2 }
else { nonreferencerow <- 1 }
for (i in 1:numstrata)
{
mymatrix <- mylist[[i]]
DiseaseUnexposed <- mymatrix[referencerow, 1]
ControlUnexposed <- mymatrix[referencerow, 2]
totUnexposed <- DiseaseUnexposed + ControlUnexposed
nctrl[i] <- totUnexposed
pctrl[i] <- DiseaseUnexposed
hctrl[i] <- ControlUnexposed
DiseaseExposed <- mymatrix[nonreferencerow, 1]
ControlExposed <- mymatrix[nonreferencerow, 2]
totExposed <- DiseaseExposed + ControlExposed
ntrt[i] <- totExposed
ptrt[i] <- DiseaseExposed
htrt[i] <- ControlExposed
}
# "matafor"パッケージにあるrma.mh関数を利用してTaroneの均一性の検定を計算する tarone <- rma.mh(ptrt, htrt, pctrl, hctrl, ntrt, nctrl)
pvalue <- tarone$TAp
print(paste("Tarone の検定の p 値 =", pvalue))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment