対応のある分割表 McNemar検定

MikuHatsune2014-05-26

急性期の脊髄損傷患者にメチルプレドニゾロンを高用量投与するのが有用かどうか、DPCのデータベースからデータを取ってきてPSマッチングにより解析した論文を読んだ。
Emerg Med J. 2014 Mar;31(3):201-6.
結論としては、高用量メチルプレドニゾロン(> 5000mg)で消化管出血などの合併症が増えたが、死亡率は統計学的有意差が見いだせなかった。
短期予後に関して言えば、合併症が増えるけれども、高用量メチルプレドニゾロンで受傷後6ヶ月の神経学的予後はいいらしいし、神経損傷にはステロイドとよく習うけど…
 
で、PSマッチングしたあとの統計学的手法で、

Fisher's exact test was used to compare in-hospital mortality and major complication rates between the high-dose methylprednisolone group and the control group.

と書いていて、PSマッチングしないの?と思ったら、結果のところでも

Table 2 shows the in-hospital mortality and major complication rates in the unmatched and propensity-matched groups. Fisher's exact test in the propensity-matched groups showed no significant difference in in-hospital mortality between the high-dose methylprednisolone and control groups (2.8% vs 3.0%, p=0.884).

と書いてあって、PSマッチングした対応のある表において、対応のなさそうなFisher の正確確率検定を行なっている。
Emerg Med J. 2014 Mar;31(3):201-6.

 

library(exact2x2)
library(rbounds)

n1 <- 2101
n2 <- 824
n_match <- 812

unmatched <- rbind(c(71, 23),
	c(191, 151),
	c(84, 53),
	c(52, 29),
	c(16, 10),
	c(66, 71),
	c(1, 4),
	c(16, 27)
)

PS <- rbind(c(24, 23),
	c(96, 144),
	c(39, 49),
	c(32, 29),
	c(6, 10),
	c(31, 68),
	c(1, 4),
	c(23, 26)
)

res <- matrix(0, nrow(PS), 3)
colnames(res) <- c("Unmatched Fisher", "PS Fisher", "PS McNemar")
for(i in seq(nrow(unmatched))){
	mat <- matrix(c(unmatched[i,], n1-unmatched[i,1], n2-unmatched[i,2]), 2)
	res[i, 1] <- fisher.exact(mat)$p.value

	mat1 <- matrix(c(PS[i,], n_match-PS[i,1], n_match-PS[i,2]), 2)
	mat2 <- matrix(c(0, PS[i,], 0), 2)
	res[i, 2] <- fisher.exact(mat1, tsmethod="central")$p.value
	res[i, 3] <- mcnemar.exact(mat2)$p.value
}
res
     Unmatched Fisher    PS Fisher   PS McNemar
[1,]     4.847065e-01 1.0000000000 1.0000000000
[2,]     1.772685e-11 0.0009854336 0.0023454452
[3,]     6.352932e-03 0.3239038946 0.3373990369
[4,]     1.327400e-01 0.7943185269 0.7981526273
[5,]     2.733003e-01 0.4522277521 0.4544982910
[6,]     2.358752e-09 0.0001623091 0.0002553461
[7,]     2.429050e-02 0.3742291086 0.3750000000
[8,]     2.561790e-06 0.7720568231 0.7754496547

PSに対してFisher の正確確率検定をして、論文と微妙に…というかかなりずれているのだが、McNemar検定をしても有意水準による判断は変わらないが、統計学的手法は適切なものを選んだほうがいいんじゃない(適当
 
また、Gastrointestinal ulcer/bleeding の31症例と68症例で、sensitivity analysis をすると、1.4倍偏るような未確認パラメータがあると有意水準0.05を上回る(たぶんこれは片側検定の結果のp値を返すっぽい)。論文ではメチルプレドニゾロンを投与することに関わるだろうパラメータとして

To estimate the propensity score, we fitted a logistic regression model for the receipt of high-dose methylprednisolone treatment as a function of patient demographic and hospital factors, including age, sex, JCS score, CCI, receipt of cervical spinal surgery and hospital volume.

を挙げている。これら以外のパラメータでメチルプレドニゾロンの投与を考慮する原因となるようなもの、例えば、ようわからんけど病院搬送までにかかった時間が長くて、神経保護のため高用量いったほうがよくね?なんてことがあればバイアスが入って結果の信憑性が低くなるかもしれない。

binarysens(31, 68, Gamma=2, GammaInc=0.2)
 Rosenbaum Sensitivity Test 
 
Unconfounded estimate ....  1e-04 

 Gamma Lower bound Upper bound
   1.0     0.00013     0.00013
   1.2     0.00000     0.00288
   1.4     0.00000     0.02220
   1.6     0.00000     0.08585
   1.8     0.00000     0.21031
   2.0     0.00000     0.37873

 Note: Gamma is Odds of Differential Assignment To
 Treatment Due to Unobserved Factors