lambdaMC: Monte Carlo based regularizing sequences for Group SLOPE

Description Usage Arguments Details References Examples

Description

Generate the regularizing sequence lambda for the Group SLOPE problem according to one of multiple Monte Carlo based methods.

Usage

1
2
lambdaMC(fdr = 0.1, group, A, y = NULL, wt = NULL, method, n.MC,
  MC.reps = 5000)

Arguments

fdr

Target gFDR (group false discovery rate)

group

A vector describing the grouping structure. It should contain a group id for each predictor variable.

A

The model matrix

y

The response variable

wt

A named vector of weights, one weight per group of predictors (named according to names as in vector group)

method

Possible values are "gaussianMC" and "chiMC". See details.

n.MC

The corrections of the entries of lambda will be computed up to the index given by n.MC only. See details.

MC.reps

The number of repetitions of the Monte Carlo procedure

Details

Two Monte Carlo based methods are currently available to generate the regularizing sequence lambda:

The corrections of the entries of lambda will be computed up to the index given by n.MC only (the remaining tail of the returned sequence will be flat). n.MC should be less than or equal to n.group. Since lambda sequences obtained via MC tend to flatten out quickly, it is reasonable to choose n.MC to be much smaller than the number of groups.

References

D. Brzyski, A. Gossmann, W. Su, M. Bogdan (2016), Group SLOPE - adaptive selection of groups of predictors, https://arxiv.org/abs/1610.04960

A. Gossmann, S. Cao, Y.-P. Wang (2015), Identification of Significant Genetic Variants via SLOPE, and Its Extension to Group SLOPE, http://dx.doi.org/10.1145/2808719.2808743

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# generate some data
A <- matrix(rnorm(20000), 200, 100)
b <- c(rep(1, 10), rep(0, 90))
y <- A %*% b
# randomly divide 100 predictors into 30 groups
group <- sample(1:30, 100, repl = TRUE)
# set the weight for each group to the square root of the group's size
wt <- c(sqrt(table(group)))
# compute different lambda sequences
gaussianMC <- lambdaMC(fdr=0.1, group=group, A=A, method="gaussianMC",
                       n.MC=10, MC.reps=100)
chiMC <- lambdaMC(fdr=0.2, group=group, A=A, method="chiMC", 
                  y=y, wt=wt, n.MC=10, MC.reps=100)

agisga/grpSLOPEMC documentation built on May 10, 2019, 7:32 a.m.