gen_net function

Simulate a Partial Correlation Matrix

Simulate a Partial Correlation Matrix

gen_net(p = 20, edge_prob = 0.3, lb = 0.05, ub = 0.3)

Arguments

  • p: number of variables (nodes)
  • edge_prob: connectivity
  • lb: lower bound for the partial correlations
  • ub: upper bound for the partial correlations

Returns

A list containing the following:

  • pcor: Partial correlation matrix, encoding the conditional (in)dependence structure.
  • cors: Correlation matrix.
  • adj: Adjacency matrix.
  • trys: Number of attempts to obtain a positive definite matrix.

Note

The function checks for a valid matrix (positive definite), but sometimes this will still fail. For example, for larger p, to have large partial correlations this requires a sparse GGM (accomplished by setting edge_prob

to a small value).

Examples

p <- 20 n <- 500 true_net <- gen_net(p = p, edge_prob = 0.25) y <- MASS::mvrnorm(n = n, mu = rep(0, p), Sigma = true_net$cors) # default fit_atan <- ggmncv(R = cor(y), n = nrow(y), penalty = "atan", progress = FALSE) # lasso fit_l1 <- ggmncv(R = cor(y), n = nrow(y), penalty = "lasso", progress = FALSE) # atan score_binary(estimate = true_net$adj, true = fit_atan$adj, model_name = "atan") # lasso score_binary(estimate = fit_l1$adj, true = true_net$adj, model_name = "lasso")
  • Maintainer: Donald Williams
  • License: GPL-2
  • Last published: 2021-12-15

Useful links