病理学の講義で、子宮頚癌の患者の99.7%がHPV陽性らしい、ということを聞いた。
これを使ってちょっとこのことについて考えてみようと思う。
A:子宮頚癌であるという事象。
H:HPV検査で陽性という事象。
としよう。
医学的には、前の記事の図が
と、感度sensitivityと特異度specificityという言葉があるらしい。
事前確率は講義によるとらしい。
として、
をいじくってみよう。
x<- function(pre,sen,spe){ return(pre*sen/(pre*sen+(1-pre)*(1-spe))) } pre<- 7/1000 sen<- 997/1000 spe<- seq(from=0,to=1,by=0.001) plot(spe,x(pre,sen,spe),type="s",lwd=2, xlab="specificity",ylab="positive patient probability")
tail(x(pre,sen,spe),n=10) [1] 0.4384896 0.4676674 0.5010050 0.5394605 0.5843101 0.6372934 0.7008435 0.7784718 0.8754390 1.0000000
特異度0.99以上を取り出してみてもこんな具合らしい。
うわオレ講義中聴き間違えたのかと思い、にして上式を
についてゴリゴリ解くと
いやもうなんかようわからん。
いろいろググッていたら、感度0.94、特異度0.915、陽性適中率0.161、陰性適中率0.999とか出てきてウホッ(・Д・;)ってなったからまあどうしよう。
そもそも事前確率が違うのか…?
x<- function(pre,sen,spe){ return(pre*sen/((pre*sen)+(1-pre)*(1-spe))) } b<- 1/500 sen<- seq(from=0,to=1,by=b) spe<- seq(from=0,to=1,by=b) pre<- c(0.01,0.05,0.1,0.2,0.5,0.8) titiles<- c("prior probability = 0.01", "prior probability = 0.05", "prior probability = 0.1", "prior probability = 0.2", "prior probability = 0.5", "prior probability = 0.8" ) theta<- 30 ; phi<- 20 par(mfrow=c(2,3)) for(i in 1:length(pre)){ PLOT<- matrix(x(pre[i],M$Var1,M$Var2),nr=sqrt(nrow(M))) persp(PLOT,col=rainbow(length(sen)*2), xlab="sensitivity", ylab="specificity", zlab="real patient", theta=-theta,phi=phi,main=titiles[i] ) } library(rgl) pre<- runif(1) plot3d(row(PLOT),col(PLOT),PLOT,col=rainbow(length(sen)*2), xlab="sensitivity", ylab="specificity", zlab="real patient" ) pre