This code implements TODO.
Usage
vsp(x, rank, ...)
# Default S3 method
vsp(x, rank, ...)
# S3 method for class 'matrix'
vsp(
  x,
  rank,
  ...,
  center = FALSE,
  recenter = FALSE,
  degree_normalize = TRUE,
  renormalize = FALSE,
  tau_row = NULL,
  tau_col = NULL,
  kaiser_normalize_u = FALSE,
  kaiser_normalize_v = FALSE,
  rownames = NULL,
  colnames = NULL,
  match_columns = TRUE
)
# S3 method for class 'Matrix'
vsp(
  x,
  rank,
  ...,
  center = FALSE,
  recenter = FALSE,
  degree_normalize = TRUE,
  renormalize = FALSE,
  tau_row = NULL,
  tau_col = NULL,
  kaiser_normalize_u = FALSE,
  kaiser_normalize_v = FALSE,
  rownames = NULL,
  colnames = NULL,
  match_columns = TRUE
)
# S3 method for class 'dgCMatrix'
vsp(
  x,
  rank,
  ...,
  center = FALSE,
  recenter = FALSE,
  degree_normalize = TRUE,
  renormalize = FALSE,
  tau_row = NULL,
  tau_col = NULL,
  kaiser_normalize_u = FALSE,
  kaiser_normalize_v = FALSE,
  rownames = NULL,
  colnames = NULL,
  match_columns = TRUE
)
# S3 method for class 'igraph'
vsp(x, rank, ..., edge_weights = NULL)Arguments
- x
 Either a graph adjacency matrix, igraph::igraph or tidygraph::tbl_graph. If
xis a matrix or Matrix::Matrix thenx[i, j]should correspond to the edge going from nodeito nodej.- rank
 The number of factors to calculate.
- ...
 These dots are for future extensions and must be empty.
- center
 Should the adjacency matrix be row and column centered? Defaults to
FALSE.- recenter
 Should the varimax factors be re-centered around the original factor means? Only used when
center = TRUE, defaults toFALSE.- degree_normalize
 Should the regularized graph laplacian be used instead of the raw adjacency matrix? Defaults to
TRUE. Ifcenter = TRUE,Awill first be centered and then normalized.- renormalize
 Should the regularized graph laplacian be used instead of the raw adjacency matrix? Defaults to
TRUE. Ifcenter = TRUE,Awill first be centered and then normalized.- tau_row
 Row regularization term. Default is
NULL, in which case we use the row degree. Ignored whendegree_normalize = FALSE.- tau_col
 Column regularization term. Default is
NULL, in which case we use the column degree. Ignored whendegree_normalize = FALSE.- kaiser_normalize_u
 Whether or not to use Kaiser normalization when rotating the left singular vectors
U. Defaults toFALSE.- kaiser_normalize_v
 Whether or not to use Kaiser normalization when rotating the right singular vectors
V. Defaults toFALSE.- rownames
 Character vector of row names of
x. These row names are propagated into the row names of theUandZ. Defaults toNULL.- colnames
 Character vector of column names of
x. These column names are propagated into the row names of theVandY. Defaults toNULL.- match_columns
 Should the columns of
Ybe re-ordered such thatY[, i]corresponds toZ[, i]to the extent possible? Defaults toTRUE. Typically helps with interpretation, and often makesBmore diagonally dominant.- edge_weights
 When
xis an igraph::igraph, an edge attribute to use to form a weighted adjacency matrix.
Examples
library(LRMF3)
#> Loading required package: Matrix
vsp(ml100k, rank = 2)
#> Vintage Sparse PCA Factor Analysis
#> 
#> Rows (n):   943
#> Cols (d):   1682
#> Factors (rank): 2
#> Lambda[rank]:   0.2994
#> Components
#> 
#> Z: 943 x 2 [matrix] 
#> B: 2 x 2 [matrix] 
#> Y: 1682 x 2 [matrix] 
#> u: 943 x 2 [matrix] 
#> d: 2      [numeric] 
#> v: 1682 x 2 [matrix] 
#>