Generates variable and group penalties for SGS.
gen_pens(gFDR, vFDR, pen_method, groups, alpha)
A list containing:
A vector of the variable penalty sequence.
A vector of the group penalty sequence.
Defines the desired group false discovery rate (FDR) level, which determines the shape of the group penalties.
Defines the desired variable false discovery rate (FDR) level, which determines the shape of the variable penalties.
The type of penalty sequences to use (see Feser and Evangelou (2023)):
"1"
uses the vMean SGS and gMean gSLOPE sequences.
"2"
uses the vMax SGS and gMean gSLOPE sequences.
"3"
uses the BH SLOPE and gMean gSLOPE sequences, also known as SGS Original.
"4"
uses the gMax gSLOPE sequence. For a gSLOPE model only.
A grouping structure for the input data. Should take the form of a vector of group indices.
The value of
The vMean and vMax SGS sequences are variable sequences derived specifically to give variable false discovery rate (FDR) control for SGS under orthogonal designs (see Feser and Evangelou (2023)). The BH SLOPE sequence is derived in Bodgan et al. (2015) and has links to the Benjamini-Hochberg critical values. The sequence provides variable FDR-control for SLOPE under orthogonal designs. The gMean gSLOPE sequence is derived in Brzyski et al. (2015) and provides group FDR-control for gSLOPE under orthogonal designs.
Bogdan, M., Van den Berg, E., Sabatti, C., Su, W., Candes, E. (2015). SLOPE — Adaptive variable selection via convex optimization, https://projecteuclid.org/journals/annals-of-applied-statistics/volume-9/issue-3/SLOPEAdaptive-variable-selection-via-convex-optimization/10.1214/15-AOAS842.full
Brzyski, D., Gossmann, A., Su, W., Bodgan, M. (2019). Group SLOPE – Adaptive Selection of Groups of Predictors, https://www.tandfonline.com/doi/full/10.1080/01621459.2017.1411269
Feser, F., Evangelou, M. (2023). Sparse-group SLOPE: adaptive bi-level selection with FDR-control, https://arxiv.org/abs/2305.09467
# specify a grouping structure
groups = c(rep(1:20, each=3),
rep(21:40, each=4),
rep(41:60, each=5),
rep(61:80, each=6),
rep(81:100, each=7))
# generate sequences
sequences = gen_pens(gFDR=0.1, vFDR=0.1, pen_method=1, groups=groups, alpha=0.5)
Run the code above in your browser using DataLab