get.GIC: GIC criterion selection for FuncompCGL

Description Usage Arguments Details Value

Description

Calculate GIC for GIC.FuncompCGL, select beta coefficients vector and df via BIC, AIC, GIC criterion

Usage

1
2
3
4
get.GIC(p, df_list, GIC_obj, GIC_arg, cut_type = c("Strict", "Matrix",
  "Curve"), lower_tri = 0.01, GIC_type = c("GIC1", "GIC2", "GIC3", "GIC4",
  "AIC", "BIC"), method_type = c("cgl", "naive", "base"), y = NULL,
  Zc = NULL, refit = FALSE)

Arguments

p

number of compositional predictors

df_list

vector of df's used in GIC_obj

GIC_obj

an object of GIC.FuncompCGL

GIC_arg

argument list used to fit GIC.FuncompCGL, need to at least provide information for basis generation, including basis_fun, degree and sseq.

cut_type

cut method for none zero group - default value is Strict which is no cut-off. Other two methods are Matrix and Curve. See details.

lower_tri

lower percentage boundary used in cut none zero groups.

GIC_type

variations of GIC's, AIC and BIC. See details.

method_type

mehod used to fitted GIC.FuncompCGL
cgl - constrained group lasso
base - log contract group lasso
naive - do not consider the fact of compositional.

y, Zc

when refit=TRUE, need to privde y and Zc to re-calcualte likelihood.

refit

logical, whehter refit likelihood when small magnitude groups are cut to zeros' Default value is FALSE.

Details

$$GIC(λ) = log(MSE) + Selection * alpha$$, for normal error. If include linear constraints, like in log contract and constraints group lasso model, selection = None zero group - 1; otherwise in naive method without consideration of linear constraints, selection = None zero group.

alpha_GIC1 = log(max(p*df, n)) * df / n
alpha_GIC2 = log(max(p*df, n)) * df * log(log(n)) / n
alpha_GIC3 = log(p*df) *df /n
alpha_GIC4 = log(p*df) * df * log(log(n)) / n
alpha_BIC = log(n) * df / n
alpha_AIC = 2 * df / n.

cut_off = 'Curve', calculate L2 function norm for curves for each compositional covariates , across df and lambda. Consider those betas' with L2 curve norm smaller than sum(L2_j)*lower_tri as none-selected.

cut_off = 'Matrix' calculate L2 norm for coefficient matrix by rows, across df and lambda, condiser these betas' with vector L2 norm that is smaller than srqt(sum(L2_j^2)) * lower_tri.

cut_off = 'Strict', strict none zero group, whenever there is none zero entries considered as selected.

Value

beta

selected beta vector.

k_opt

selected df.

GIC_curve

a length(df_list) by nlam matrix of GIC values

N_zero

a matrix of numbers of none zero groups selected.


jiji6454/Rpac_compReg documentation built on May 31, 2019, 5:01 a.m.