FMGM_StEPS {fusedMGM}R Documentation

StEPS: train subsamples and calculate edge instabilities

Description

From large to small values of candidates, calculate the edge inference instabilities from subsamples The smallest values with the instabilities under the cutoff are chosen. See Sedgewich et al. (2016) for more details

Usage

FMGM_StEPS(
  data,
  ind_disc,
  group,
  lambda_list,
  with_prior = FALSE,
  prior_list = NULL,
  N = 20,
  b = NULL,
  gamma = 0.05,
  perm = 10000,
  eps = 0.05,
  tol_polish = 1e-12,
  ...,
  cores = parallel::detectCores(),
  verbose = FALSE
)

Arguments

data

Data frame with rows as observations and columns as variables

ind_disc

Indices of discrete variables

group

Group indices, must be provided with the observation names

lambda_list

Vector with numeric variables. Penalization parameter candidates

with_prior

Logical. Is prior information provided? Default: FALSE

prior_list

List of prior information. Each element must be a 3-column data frames, with the 1st and the 2nd columns being variable names and the 3rd column being prior confidence (0,1)

N

Integer. Number of subsamples to use. Default: 20

b

Integer. Number of observations in each subsample. Default: ceiling(10*sqrt(number of total observations))

gamma

Numeric. Instability cutoff. Default: 0.05

perm

Integer. Number of permutations to normalize the prior confidence. Default: 10000

eps

Numeric. Pseudocount to calculate the likelihood of edge detection. Default: 0.05

tol_polish

Numeric. Cutoff of polishing the resulting network. Default: 1e-12

...

Other arguments sent to fast proximal gradient method

cores

Integer. Number of cores to use multi-core utilization. Default: maximum number of available cores

verbose

Logical. If TRUE, the procedures are reported in real-time manner. Default: FALSE

Value

The resulting networks, in the form of a list of MGMs

Examples


data(data_all) ;  # Example 500-by-100 simulation data
data(ind_disc) ;

group <- rep(c(1,2), each=250) ;
names(group) <- seq(500) ;

if (Sys.info()['sysname'] == 'Windows') {
  cores=1
} else {
  cores=parallel::detectCores() ;
}

lambda_list <- 2^seq(log2(.08), log2(.32), length.out=7) ;
lambda_list <- sort(lambda_list, decreasing=TRUE) ;

res_steps <- FMGM_StEPS(data_all, ind_disc, group, 
                    lambda_list=lambda_list, 
                    cores=cores, verbose=TRUE)


[Package fusedMGM version 0.1.0.1 Index]