cp_int2 function

ATLD-ALS algorithm for Candecomp/Parafac (CP)

ATLD-ALS algorithm for Candecomp/Parafac (CP)

Integrated algorithm combining ATLD and ALS for the minimization of the Candecomp/Parafac (CP) loss function.

cp_int2( X, n, m, p, ncomp, initconv = 0.01, conv = 1e-06, const = "none", start = "random", maxit = 5000, trace = FALSE )

Arguments

  • X: A three-way array or a matrix. If X is a matrix (matricised threeway array), n, m and p must be given and are the number of A-, B- and C-mode entities respectively
  • n: Number of A-mode entities
  • m: Number of B-mode entities
  • p: Number of C-mode entities
  • ncomp: Number of components to extract
  • initconv: Convergence criterion for the initialization phase (ATLD), default is conv=1e-2.
  • conv: Convergence criterion, default is conv=1e-6.
  • const: Optional constraints for each mode. Can be a three element character vector or a single character, one of "none" for no constraints (default), "orth" for orthogonality constraints or "zerocor" for zero correlation between the extracted factors. For example, const="orth" means orthogonality constraints for all modes, while const=c("orth", "none", "none") sets the orthogonality constraint only for mode A.
  • start: Initial values for the A, B and C components. Can be "svd" for starting point of the algorithm from SVD's, "random" for random starting point (orthonormalized component matrices or nonnegative matrices in case of nonnegativity constraint), or a list containing user specified components.
  • maxit: Maximum number of iterations, default is maxit=10000.
  • trace: Logical, provide trace output.

Returns

The result of the decomposition as a list with the following elements:

  • fit Value of the loss function
  • fp Fit value expressed as a percentage
  • ss Sum of squares
  • A Component matrix for the A-mode
  • B Component matrix for the B-mode
  • C Component matrix for the C-mode
  • iter Number of iterations
  • tripcos Minimal triple cosine between two components across the three component matrices, used to inspect degeneracy
  • mintripcos Minimal triple cosine during the iterative algorithm observed at every 10 iterations, used to inspect degeneracy
  • ftiter Matrix containing in each row the function value and the minimal triple cosine at every 10 iterations
  • const Optional constraints (same as the input parameter const)

Note

The argument const should be a three element character vector. Set const[j]="none" for unconstrained update in j-th mode weight matrix (the default), const[j]="orth" for orthogonal update in j-th mode weight matrix or const[j]="zerocor" for zero correlation between the extracted factors. The default is unconstrained update for all modes.

The loss function to be minimized is sum(k)X(k)AD(k)B2sum(k)|| X(k) - A D(k) B' ||^2, where D(k)D(k) is a diagonal matrix holding the k-th row of C.

Examples

## Not run: ## Example with the OECD data data(elind) dim(elind) res <- cp_int2(elind, ncomp=3) res$fp res$fp res$iter res <- cp_int2(elind, ncomp=3, const="orth") res$A ## End(Not run)

References

H.-L. Wu, M. Shibukawa, K. Oguma, An alternating trilinear decomposition algorithm with application to calibration of HPLC-DAD for simultaneous determination of overlapped chlorinated aromatic hydrocarbons, Journal of Chemometrics 12 (1998) 1--26.

Simonacci, V. and Gallo, M. (2020). An ATLD--ALS method for the trilinear decomposition of large third-order tensors, Soft Computing 24 13535--13546.

Todorov, V. and Simonacci, V. and Gallo, M. and Trendafilov, N. (2023). A novel estimation procedure for robust CANDECOMP/PARAFAC model fitting. Econometrics and Statistics. In press.

Author(s)

Valentin Todorov, valentin.todorov@chello.at ; Violetta Simonacci, violetta.simonacci@unina.it

  • Maintainer: Valentin Todorov
  • License: GPL (>= 3)
  • Last published: 2024-02-06