Title: | Differential Network Estimation in R |
Version: | 1.0.1 |
Description: | An efficient and convenient set of functions to perform differential network estimation through the use of alternating direction method of multipliers optimization with a variety of loss functions. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
RoxygenNote: | 7.1.1 |
URL: | https://github.com/RicSalgado/dineR |
BugReports: | https://github.com/RicSalgado/dineR/issues |
Imports: | MASS, progress, Matrix |
Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2021-11-13 09:29:04 UTC; danie |
Author: | Ricardo Daniel Marques Salgado
|
Maintainer: | Ricardo Daniel Marques Salgado <ricardodansalgado@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2021-11-15 09:20:12 UTC |
Data Generator
Description
This functions generates two n
by p
size samples of multivariate normal
data. In doing this it also determines and provides the relevant covariance
matrices.
Usage
data_generator(n, p, Delta = NULL, case = "sparse", seed = NULL)
Arguments
n |
The number of observations generated. |
p |
The number of dimensions for the generated samples. |
Delta |
Optional parameter - Provides the differential network that will be used to obtain the sample covariance matrices. |
case |
Optional parameter - Selects under which case the covariance matrices are determined. Possible cases are: "sparse" - Sparse Case or "asymsparse"- Asymptotically Sparse Case. Defaults to "sparse". |
seed |
Optional parameter - Allows a seed to be set for reproducibility. |
Value
A list of various outputs, namely:
case - The case used.
seed_option - The seed provided.
X - The first multivariate normal sample.
Y - The second multivariate normal sample.
Sigma_X - The covariance matrix of X.
Sigma_Y - The covariance matrix of Y.
Omega_X - The precision matrix of X.
Omega_Y - The precision matrix of Y.
diff_Omega - The difference of precision matrices.
Delta - The target differential network.
Examples
data <- data_generator(n = 100, p = 50, seed = 123)
data <- data_generator(n = 10, p = 50, case = "asymsparse")
Estimation
Description
This function performs alternating direction method of multipliers optimization for a variety of loss functions to estimate the differential network given two samples of multivariate normal data.
Usage
estimation(
X,
Y,
lambdas = NULL,
lambda_min_ratio = 0.3,
nlambda = 10,
a = NULL,
loss = "lasso",
tuning = "none",
perturb = FALSE,
stop_tol = 1e-05,
max_iter = 500,
correlation = FALSE,
Delta_init = NULL,
rho = NULL,
gamma = NULL,
verbose = FALSE
)
Arguments
X |
The first multivariate normal sample. |
Y |
The second multivariate normal sample. |
lambdas |
Optional parameter - A list of the regularization values to be used within the loss functions. |
lambda_min_ratio |
Optional parameter - Defines the smallest regularization values as this proportion of the largest regularization value. Defaults to 0.3. |
nlambda |
Optional parameter - The number of regularization values considered. Defaults to 10. |
a |
Optional parameter - The thresholding parameter used in SCAD and MCP loss functions. Defaults to 3.7 with SCAD, and 3 with MCP respectively. |
loss |
Optional parameter - The loss function of choice to implement. The function allows for four choices, namely "lasso", "scad", "mcp" and "d-trace". Defaults to "lasso". |
tuning |
Optional parameter - The tuning method selected to determine the optimal value for the regularization parameter. Options are "none", "AIC", "BIC" and "EBIC". Defaults to "none". |
perturb |
Optional parameter - When set to TRUE perturbation as done by the CLIME software to improve performance is implemented. Options are TRUE or FALSE, with the function defaulting to FALSE. |
stop_tol |
Optional parameter - The stop tolerance to determine whether convergence has occurred. Defaults to 1e-5. |
max_iter |
Optional parameter - The maximum number of iterations that can be perform for any one regularization value. Defaults to 100. |
correlation |
Optional parameter - Determines whether the sample correlation matrices should be used in the place of the sample covariance matrices. Choices are TRUE and FALSE with the function defaulting to FALSE. |
Delta_init |
Optional parameter - Allows for the algorithm to provided an initial estimate of the differential network to ease computation. |
rho |
Optional parameter - Allows the user to adjust the ADMM step-size. Defaults to 1. |
gamma |
Optional parameter - Allows the user to adjust the EBIC value when EBIC is the selected tuning method. Defaults to 0.5. |
verbose |
Optional parameter - Allows the user to obtain a summary of the estimation results. Options are TRUE or FALSE, where FALSE indicates the summary is not provided. Defaults to FALSE. |
Value
A list of various outputs, namely:
n_X - The number of observations in X.
n_Y - The number of observations in Y.
Sigma_X - The covariance matrix of X.
Sigma_Y - The covariance matrix of Y.
loss - The loss function implemented.
tuning - The tuning method utilized.
lip - The value of the lipschitz constant.
iter - The iterations until convergence for each of the regularization values.
elapse - The total system time (in seconds) elapsed from initialization to completion of the optimization.
lambdas - The regularization parameter values used.
sparsity - The level of sparsity of the differential network for each regularization value.
path - The set of all differential networks for all regularization values considered.
ic - The output obtained from any possible tuning.
ic_index - The index at which the tuning is optimized.
ic_value - The tuning method optimal value.
chosen_lambda_ic - The regularization value that occurs at ic_index.
loss_index - The index at which the loss function is optimized.
loss_value - The loss function optimal value.
chosen_lambda_loss - The regularization value that occurs at loss_index.
Examples
data <- data_generator(n = 100, p = 50, seed = 123)
X <- data$X
Y <- data$Y
result <- estimation(X,Y)
NPN - Non paranormal Transformation
Description
This functions allows us to transform non-normal multivariate data to that of non paranormal data.
Usage
npn(x, npn_func = "shrinkage", npn_thresh = NULL, verbose = TRUE)
Arguments
x |
The multivariate non-normal data to be transformed. |
npn_func |
Optional parameter - The method of transformation to be applied. Can either be "shrinkage" or "truncation" but defaults to "shrinkage". |
npn_thresh |
Optional parameter - The truncation threshold that is used when making use of truncation. |
verbose |
Optional parameter - Prints additional output of the selected approach. Can either be "TRUE" or "FALSE" and defaults to "TRUE". |
Value
Returns the transformed data matrix.
Examples
data <- data_generator(n = 100, p = 50, seed = 123)
X <- data$X
X_transformed <- npn(X, npn_func = "truncation")