Plot marginal false discovery rate curves from an mfdr
or perm.ncvreg
object.
A perm.ncvreg
or mfdr
object.
What to plot on the vertical axis. mFDR
plots the marginal
false discovery rate; EF
plots the expected number of false discoveries
along with the actual number of variables included in the model.
Should horizontal axis be on the log scale? Default is FALSE
.
If TRUE
(the default), places an axis on top of the plot
denoting the number of variables in the model (i.e., that have a nonzero
regression coefficient) at that value of lambda
.
For type="EF"
plots, draw a legend to indicate which line
is for the actual selections and which line is for the expected number of
false discoveries? Default is TRUE
.
Other graphical parameters to pass to plot()
Breheny P (2019). Marginal false discovery rates for penalized regression models. Biostatistics, 20: 299-314.
data(Prostate)
fit <- ncvreg(Prostate$X, Prostate$y)
obj <- mfdr(fit)
obj[1:10,]
#> EF S mFDR
#> 0.84343 0.000000e+00 0 0.000000e+00
#> 0.78658 1.418692e-11 1 1.418692e-11
#> 0.73357 3.642789e-11 1 3.642789e-11
#> 0.68413 1.098086e-10 1 1.098086e-10
#> 0.63802 3.833845e-10 1 3.833845e-10
#> 0.59502 1.516932e-09 1 1.516932e-09
#> 0.55492 6.608721e-09 1 6.608721e-09
#> 0.51752 3.065378e-08 1 3.065378e-08
#> 0.48264 1.460789e-07 1 1.460789e-07
#> 0.45011 6.907848e-07 1 6.907848e-07
# Some plotting options
plot(obj)
plot(obj, type="EF")
plot(obj, log=TRUE)
# Comparison with perm.ncvreg
op <- par(mfrow=c(2,2))
plot(obj)
plot(obj, type="EF")
pmfit <- perm.ncvreg(Prostate$X, Prostate$y)
plot(pmfit)
plot(pmfit, type="EF")
par(op)