Finds the solution path of logistic functional additive regression with log-contrast constrain.
Source:R/mm_path_solver.R
Logistic_FARMM_Path.Rd
Logistic_FARMM_Path
finds the solution path of logistic functional additive
regression with log-contrast constrain. It will NOT perform within-group orthonormalization
as preprocession of the data.
Usage
Logistic_FARMM_Path(
y_vec,
x_mat,
h,
kn,
p,
rand_eff_df,
p_type,
p_param,
lambda_seq,
lambda_length,
min_lambda_ratio = 0.01,
mu2,
a = 1,
bj_vec = 1,
cj_vec = sqrt(kn),
rj_vec = 10^(-6),
weight_vec = 1,
logit_weight_vec = 1,
weight_already_combine = FALSE,
delta_init,
eta_stack_init,
mu1_init,
tol = 10^(-6),
max_iter = 500,
verbose = 0,
svd_thresh = 10^{
-7
}
)
Arguments
- y_vec
response vector, 0 for control, 1 for case. n = length(y_vec) is the number of observations.
- x_mat
covariate matrix, consists of two parts. dim(x_mat) = (n, h + p * kn) First h columns are for demographical covariates(can include an intercept term) Rest columns are for p functional covariates, each being represented by a set of basis functions resulting kn covariates.
- h, kn, p
dimension information for the dataset(
x_mat
).- rand_eff_df
data.frame
of random effect related data. It must contain at least one column named "subj_vec_fct", which indicates the subject level. If this is the only column inrand_eff_df
, then a constant random effect is applied. If there is other column(s), then they will all be additively added to the random effect as the slope term. The number of rows ofrand_eff_df
is the the same aslength(y_vec)
.- p_type
an character variable indicating different types of the penalty
- p_param
numerical vector for the penalty function.
p_param[1]
store sthe lambda value and will be provided bylambda_seq
.- lambda_seq
a non-negative sequence of lambda, along which the solution path is searched. It is RECOMMENED to not supply this parameter and let the function itself determines it from the given data.
- lambda_length
length of the lambda sequence when computing
lambda_seq
. Iflambda_seq
is provided, then of courselambda_length = length(lambda_seq)
.- mu2
quadratic term in the ADMM algorithm
- a, bj_vec, cj_vec, rj_vec
parameters for the algorithm. See Algorithm_Details.pdf for more information.
- weight_vec
weight vector for each subject. The final weight for each subject will be adjusted also by
logit_weight_vec
. And the summation of the final weight vector is normalized ton
, the sample size.- logit_weight_vec
weight vector for each subject when computing the integral in the logit values. Each entry should be positive and no more than 1. This is a naive method for adjusting for early stop during the interval.
- weight_already_combine
boolen, indicating whether the
weight_vec
is already combined withlogit_weight_vec
for each subject.- delta_init, eta_stack_init, mu1_init
initial values for the algorithm.
- tol, max_iter
convergence tolerance and max number of iteration of the algorithm.
- verbose
integer, indicating level of information to be printed during computation, currently supports: always: some info if something went wrong, e.g. when no penalty function is matched 1: information about the start and stop of the iteration 2. How the loss value is changed during each iteration
- svd_thresh
not used
- min_lam_ratio:
min(lambda_seq) / max{lambda_seq}
. This function uses this parameter to determine the minimal value oflambda_seq
. Ifp > n
, then it is recommended to set this no smaller than 0.01 (sometimes even 0.05), otherwise you can set it to 0.001 or even smaller.