Description Usage Arguments Details References Examples
Generate the regularizing sequence lambda
for the Group SLOPE
problem according to one of multiple Monte Carlo based methods.
1 2 |
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 |
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 |
MC.reps |
The number of repetitions of the Monte Carlo procedure |
Two Monte Carlo based methods are currently available to generate the regularizing sequence lambda
:
"gaussianMC" – method introduced in Gossmann et. al. (2015)
"chiMC" – A Monte Carlo lambda selection method based on equation (G.10)
in Brzyski et. al. (2016). Requires that rank(A
) is greater than
the sum of the number of elements in any n.MC
groups.
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.
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
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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.