bayes_diag <- function(prev, sens, espec) {
fp <- 1 - espec
p_pos <- sens * prev + fp * (1 - prev)
vpp <- (sens * prev) / p_pos
vpn <- (espec * (1 - prev)) / (1 - p_pos)
pct <- function(x) sprintf("%.1f%%", x * 100)
data.frame(Prevalência = pct(prev), Sensibilidade = pct(sens),
Especificidade = pct(espec), VPP = pct(vpp), VPN = pct(vpn))
}
rbind(
bayes_diag(prev = 0.01, sens = 0.95, espec = 0.90),
bayes_diag(prev = 0.30, sens = 0.95, espec = 0.90)
) Prevalência Sensibilidade Especificidade VPP VPN
1 1.0% 95.0% 90.0% 8.8% 99.9%
2 30.0% 95.0% 90.0% 80.3% 97.7%