FBartos/zcurve

False discovery rate

Opened this issue · 1 comments

Hi zcurve developer

I am curious about how to get the false discovery rate from zcurve package, as described in this paper:
Schimmack U, Bartoš F (2023) Estimating the false discovery risk of (randomized) clinical trials in medical journals based on published p-values. PLOS ONE 18(8): e0290084. https://doi.org/10.1371/journal.pone.0290084

I could find this estimate. See below reproducible example:
set.seed(666)
library(zcurve)
fit <- zcurve(OSC.z)
summary(fit)

BTW, would you like to show how to use swfdr package to compute the false positive rate using the dataset OSC.z? I want to compare the two packages.

Best,
Yefeng

Hi Yefeng,

You can obtain the false discovery risk (Soric's FDR) estimate by adding all = TRUE argument to the summary function.
(I recognize that this should be a bit better documented)

> library(zcurve)
> fit <- zcurve(OSC.z)
> summary(fit, all = TRUE)
Call:
zcurve(z = OSC.z)

model: EM via EM

              Estimate  l.CI   u.CI
ERR              0.615 0.458  0.746
EDR              0.383 0.072  0.691
Soric FDR        0.085 0.023  0.675
File Drawer R    1.608 0.446 12.826
Expected N         222   123   1175
Missing N          132    33   1085

Model converged in 53 + 62 iterations
Fitted using 73 z-values. 90 supplied, 85 significant (ODR = 0.94, 95% CI [0.87, 0.98]).
Q = -60.61, 95% CI[-71.04, -47.86]

Thanks for the suggestion for a comparison with the swfdr---it would make for a very nice vignette! I will keep it in mind when having some free time over the weekends :)

Cheers,
Frantisek