感度70%特異度90%で
有病率と陽性的中率・陰性的中率の関係をグラフにしてみた。
https://i.imgur.com/HGqPv2y.jpg

陽性的中率が0.8になるのは有病率が0.63のとき

そのRのコードはこれ。
rm(list=ls())

pr2pv <- function( # prevalence to predicative value
pr ,# prevalence
sn=0.7, # sensitibity=TP/(TP+FN)
sp=0.9) # specificity=TN/(TN+FP)
{
N=1 # polutaion million, billion,or any proper unit
si=pr*N # sick population
he=(1-pr)*N # healthy population
TP=si*sn
FN=si*(1-sn)
TN=he*sn
FP=he*(1-sn)
PPV=TP/(TP+FP)
NPV=TN/(TN+FN)
PV=c(PPV=PPV,NPV=NPV)
return(PV)
}

prev=seq(1e-7,1,length.out = 1000)
plot(prev,sapply(prev, function(x) pr2pv(x)['PPV']),bty='l',type='l',
ylab='predicative vale',xlab='prevalence(log)',main='sensitity=0.7,specificity=0.9',log='x',lwd=2)
lines(prev,sapply(prev, function(x) pr2pv(x)['NPV']),lty=3,lwd=2)
legend('center',bty='n',legend=c('Posivive Predicative Value','Negative Predicative Value'),lty=c(1,3),lwd=2)

abline(h=0.8,col='gray')
uniroot(function(x) pr2pv(x)['PPV']-0.8, c(0,1))