という記事を観測した。
詳細はいつもの通り不明だが、記事によると、
がん患者1400人に実施した検査では的中率は約85%に上り、特にステージ0~1の患者は87%で判定できた。一般的ながん検査「腫瘍マーカー」よりかなり高確率という。
反応するのは胃、大腸、肺、乳、膵(すい)臓、肝臓、子宮、前立腺など15種のがん。現時点では検査でがんの部位までは判明しないが、今後は特定も目指す。
ということらしく、あるか、ないかはわかる。そして、がん患者という陽性例に対して検査性能をはかっているので、感度は85%のようである。
こんな話をやっていた。
mikuhatsune.hatenadiary.com
この手の話の場合、たいてい事前確率が低いと事後確率も低い、という話になる。
ここから感度と特異度と事前確率のスクリプトをパクる。
事前確率は日本のがん統計から取ってくる。
ganjoho.jp
2018年度版のがん統計の、incidence(罹患率)はここからの引用らしい。罹患率が事前確率でいいかはこの際置いておく。
www.ncbi.nlm.nih.gov
55歳以下だとせいぜい2%、80歳くらいの高齢者でも6%くらい。
post <- function(pre, sn, sp){ res <- array(0, sapply(list(pre, sn, sp), length)) for(pre1 in seq(pre)){ for(sn1 in seq(sn)){ for(sp1 in seq(sp)){ res[pre1, sn1, sp1] <- (pre[pre1] * sn[sn1]) / (pre[pre1] * sn[sn1] + (1-pre[pre1])*(1-sp[sp1])) } } } return(res) } incidence <- c(0.2, 0.35, 0.9, 2, 5, 10, 25, 70, 100, 200, 300, 600, 800, 900, 1100, 1200, 1100, 1000) names(incidence) <- c(sprintf("< %d", seq(5, 85, 5)), "85+") log_incidence <- log10(incidence) par(mfrow=c(2, 1), mar=c(4, 5, 2, 2), las=1, cex.lab=1.2) plot(log_incidence, type="o", pch=15, xaxt="n", yaxt="n", xlab="Age group", ylab="罹患率 10万人あたり", lwd=3) axis(1, at=seq(incidence), labels=names(incidence)) axis(2, at=0:3, labels=10^(0:3)) abline(h=0:3, lty=3) title("各年齢層におけるがん罹患率") txt <- "Cancer Epidemiol. 2014 Oct;38(5):490-5. \nがんの統計’18 " text(par()$usr[2], par()$usr[3], txt, xpd=TRUE, adj=c(1, -0.5)) p <- post(pre=incidence/100000, sn=0.85, sp=0.85)[,,1] par(mar=c(5, 5, 2, 2), las=1) plot(p, type="o", pch=15, xaxt="n", xlab="Age group", ylab="検査結果陽性で本当に癌の確率", lwd=3) axis(1, at=seq(p), labels=names(incidence)) title("感度 0.85,特異度 0.85 の検査による各年齢層のがん事後確率")