scaled_sgs {sgs} | R Documentation |
Fits a scaled SGS model.
Description
Fits an SGS model using the noise estimation procedure (Algorithm 5 from Bogdan et. al. (2015)). This estimates \lambda
and then fits the model using the estimated value. It is an alternative approach to cross-validation (fit_sgs_cv()
).
Usage
scaled_sgs(
X,
y,
groups,
type = "linear",
pen_method = 1,
alpha = 0.95,
vFDR = 0.1,
gFDR = 0.1,
standardise = "l2",
intercept = TRUE,
verbose = FALSE
)
Arguments
X |
Input matrix of dimensions |
y |
Output vector of dimension |
groups |
A grouping structure for the input data. Should take the form of a vector of group indices. |
type |
The type of regression to perform. Supported values are: |
pen_method |
The type of penalty sequences to use.
|
alpha |
The value of |
vFDR |
Defines the desired variable false discovery rate (FDR) level, which determines the shape of the variable penalties. Must be between 0 and 1. |
gFDR |
Defines the desired group false discovery rate (FDR) level, which determines the shape of the group penalties. Must be between 0 and 1. |
standardise |
Type of standardisation to perform on
|
intercept |
Logical flag for whether to fit an intercept. |
verbose |
Logical flag for whether to print fitting information. |
Value
An object of type "sgs"
containing model fit information (see fit_sgs()
).
References
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
See Also
Other model-selection:
as_sgs()
,
fit_gslope_cv()
,
fit_sgs_cv()
Other SGS-methods:
as_sgs()
,
coef.sgs()
,
fit_sgs()
,
fit_sgs_cv()
,
plot.sgs()
,
predict.sgs()
,
print.sgs()
Examples
# specify a grouping structure
groups = c(1,1,2,2,3)
# generate data
data = gen_toy_data(p=5, n=4, groups = groups, seed_id=3,
signal_mean=20,group_sparsity=1,var_sparsity=1)
# run noise estimation
model = scaled_sgs(X=data$X, y=data$y, groups=groups, pen_method=1)