| lucid | R Documentation |
Fit a lucid model for integrated analysis on exposure, outcome and multi-omics data, allowing for tuning
lucid(
G,
Z,
Y,
CoG = NULL,
CoY = NULL,
family = c("normal", "binary"),
K = 2,
lucid_model = c("early", "parallel", "serial"),
Rho_G = 0,
Rho_Z_Mu = 0,
Rho_Z_Cov = 0,
verbose_tune = FALSE,
...
)
G |
Exposures, a numeric vector, matrix, or data frame. Categorical variable should be transformed into dummy variables. If a matrix or data frame, rows represent observations and columns correspond to variables. |
Z |
Omics data. If "early", an N by M matrix. If "parallel", a list, each element i is a matrix with N rows and P_i features. If "serial", a list, each element i is either a matrix with N rows and p_i features, or a list with two or more matrices with N rows. |
Y |
Outcome, a numeric vector. Categorical variable is not allowed. Binary outcome should be coded as 0 and 1. |
CoG |
Optional, covariates to be adjusted for estimating the latent cluster. A numeric vector, matrix or data frame. Categorical variable should be transformed into dummy variables. |
CoY |
Optional, covariates to be adjusted for estimating the association between latent cluster and the outcome. A numeric vector, matrix or data frame. Categorical variable should be transformed into dummy variables. |
family |
Distribution of outcome. For continuous outcome, use "normal"; for binary outcome, use "binary". Default is "normal". |
K |
Number of latent clusters to be tuned. For lucid_model = "early", number of latent clusters (should be greater or equal than 2). Either an integer or a vector of integer. If K is a vector, model selection on K is performed. For lucid_model = "parallel",a list with vectors of integers or just integers, same length as Z, if the element itself is a vector, model selection on K is performed; For lucid_model = "serial", a list, each element is either an integer or an list of integers, same length as Z, if the smallest element (integer) itself is a vector, model selection on K is performed |
lucid_model |
Specifying LUCID model, "early" for early integration, "parallel" for lucid in parallel, "serial" for lucid in serial |
Rho_G |
A scalar or a vector. This parameter is the LASSO penalty to regularize
exposure coefficients in the G-to-X model; |
Rho_Z_Mu |
A scalar or a vector. This parameter is the LASSO penalty to
regularize cluster-specific means for omics data (Z). If it is a vector,
|
Rho_Z_Cov |
A scalar or a vector. This parameter is the graphical LASSO
penalty to estimate sparse cluster-specific variance-covariance matrices for omics
data (Z). If it is a vector, |
verbose_tune |
A flag to print details of tuning process. |
... |
Other parameters passed to |
A fitted LUCID model of class early_lucid,
lucid_parallel or lucid_serial – the candidate with the lowest
BIC when K or any penalty is given as a vector, and otherwise simply
the single fitted model. The components are those documented in
estimate_lucid, with one addition:
Present for "early" only, and only when a non-zero penalty
selected a strict subset of the input variables. Records what the tuned
penalties dropped, as selectG and selectZ (logical vectors
over the original inputs), the corresponding Gnames and
Znames, and the tuned Rho that produced the selection.
Because lucid refits the selected model unpenalized on the retained
features, the model's own select component describes the refit
dimensions and indexes res_Beta and res_Mu; use
selection to see what was dropped from the original data.
# LUCID early integration (quick smoke example)
G <- sim_data$G[1:80, , drop = FALSE]
Z <- sim_data$Z[1:80, , drop = FALSE]
Y <- sim_data$Y_normal[1:80]
fit_early <- lucid(
G = G, Z = Z, Y = Y,
lucid_model = "early", family = "normal", K = 2,
max_itr = 30, max_tot.itr = 60, seed = 1008
)
# LUCID in parallel (two layers)
i <- 1008
set.seed(i)
G <- matrix(rnorm(240), nrow = 80)
Z1 <- matrix(rnorm(320), nrow = 80)
Z2 <- matrix(rnorm(320), nrow = 80)
Z <- list(Z1 = Z1, Z2 = Z2)
CoY <- matrix(rnorm(160), nrow = 80)
CoG <- matrix(rnorm(160), nrow = 80)
Y <- rnorm(80)
fit_parallel <- lucid(
G = G, Z = Z, Y = Y, K = list(2, 2),
CoG = CoG, CoY = CoY, lucid_model = "parallel",
family = "normal", seed = i,
max_itr = 30, max_tot.itr = 60
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.