create_structure_list: Creates a list of candidate structures for the SLIDE model

Description Usage Arguments Details Value Examples

View source: R/Algorithm1.R

Description

Creates a list of candidate structures for the SLIDE model based on the solution path of penalized matrix factorization problem.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
create_structure_list(
  X,
  pvec,
  lambda_seq = NULL,
  n_lambda = 50,
  lambda_min = 0.01,
  lambda_max = 1,
  ratio_max = 2/3,
  standardized = F,
  eps = 1e-06,
  k_max = 1000
)

Arguments

X

A n x p concatenated data matrix of views X_1,...,X_d.

pvec

A vector of values p_1,....,p_d corresponding to the number of measurements within each view.

lambda_seq

An optional sequence of tuning parameters for the penalized matrix decomposition problem. By default, the algorithm generates its own sequence based on supplied values of n_lambda, lambda_min and lambda_max.

n_lambda

A length of tuning parameter sequence. The default value is 50. It is only used when lambda_seq = NULL.

lambda_min

A minimal value for tuning parameter. The default value is 0.01.

lambda_max

A maximal value for tuning parameter. The default value is 1. If X is already standardized, it is recommended to set lambda_max to the largest singular value within the view. If standardized = F, this choice is made automatically by the algorithm.

ratio_max

A maximal allowable rank of the binary structure as a ratio of maximal rank of X, the default value is 2/3.

standardized

A logical indicator of whether X is centered and standardized. The default value is FALSE and the standardization is performed within the function.

eps

A convergence tolerance criterion as measured by the differene in objective functions at successive iterations, the default value is 1e-06.

k_max

A maximal number of allowed iterations, the default value is 1000.

Details

The function solves the penalized matrix factorization problem for each value of from the sequence of tuning parameters lambda_1,..., lambda_m. The block-sparsity pattern of the resulting V(lambda_1), ..., V(lambda_m) is used to generate the sequence of binary structures S(lambda_1),..., S(lambda_m). This sequence is further trimmed to remove any repetitions, and to only keep structures with the number of nonzero columns being less than ratio_max * min(n, sum(pvec)).

Value

A list with the elements

lambda_seq

A sequence of tuning parameters used to generate the structure sequence.

Slist

A list of distinct binary structures which forms a candidate set for SLIDE model.

id_used

A binary vector indicating the correspondence between lambda_seq and Slist. The zero values indicate the tuning parameters that either lead to the same structures, or resulted in structures with the rank larger than allowed by ratio_max.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
n = 30
p1 = 10
p2 = 20
X1 = matrix(rnorm(n*p1), n, p1)
X2 = matrix(rnorm(n*p2), n, p2)
X = cbind(X1, X2)
pvec = c(p1,p2)

# Unstandardized
slist = create_structure_list(X, pvec)

# Already standardized
out = standardizeX(X, pvec = c(p1,p2))
slist = create_structure_list(out$X, pvec, lambda_max = max(out$svec), standardized = TRUE)

irinagain/SLIDE documentation built on Aug. 14, 2021, 2:56 p.m.