p = 0.1 N = 10^7 # N >> ns --> binomial ns = 1000 E.pi1 = 0.978; sigma.pi1 = 0.007 E.pi2 = 0.115; sigma.pi2 = 0.022 # E.pi2 = 0.115; sigma.pi2 = sigma.pi1 # reduced sigma.pi2 # E.pi2 = 1 - E.pi1; sigma.pi2 = sigma.pi1 # improved specificity E.ps <- p E.fP <- E.pi1*E.ps + E.pi2*(1-E.ps) s.fP.R <- sqrt( E.pi1*(1-E.pi1)*E.ps + E.pi2*(1-E.pi2)*(1-E.ps) )/sqrt(ns) s.fP.pi1 <- sigma.pi1*E.ps s.fP.pi2 <- sigma.pi2*(1-E.ps) s.ps <- sqrt(p*(1-p)*(1-ns/N))/sqrt(ns) s.fP.ps <- s.ps*abs(E.pi1-E.pi2) s.fP.stat <- sqrt(s.fP.R^2+s.fP.ps^2) s.fP.syst <- sqrt(s.fP.pi1^2+s.fP.pi2^2) s.fP = sqrt(s.fP.stat^2 + s.fP.syst^2) cat(sprintf("p = %.2f; ns = %d\n", p, ns)) cat(sprintf("E(fN) = %.3f; sigma(fN) = %.3f; sigma(fN)/E(fN) = %.2f\n", E.fP, s.fP, s.fP/E.fP)) cat("Contributions : \n") cat(sprintf(" s.fP.R = %.3e; s.fP.R/E.fP = %.2e\n", s.fP.R, s.fP.R/E.fP)) cat(sprintf(" s.fP.p1 = %.3e; s.fP.p1/E.fP = %.2e\n", s.fP.pi1, s.fP.pi1/E.fP)) cat(sprintf(" s.fP.p2 = %.3e; s.fP.p2/E.fP = %.2e\n", s.fP.pi2, s.fP.pi2/E.fP)) cat(sprintf(" s.fP.ps = %.3e; s.fP.ps/E.fP = %.2e\n", s.fP.ps, s.fP.ps/E.fP)) cat(sprintf(" s.fP.stat = %.3e; s.fP.stat/E.fP = %.2e\n", s.fP.stat, s.fP.stat/E.fP)) cat(sprintf(" s.fP.syst = %.3e; s.fP.syst/E.fP = %.2e\n", s.fP.syst, s.fP.syst/E.fP))