FindOpt_DM_Iterative: Function that iteratively calculates the optimal low-rank...

View source: R/FindOptMatrix.R

FindOpt_DM_IterativeR Documentation

Function that iteratively calculates the optimal low-rank signal matrix given partial column and row space basis.

Description

Function that iteratively calculates the optimal low-rank signal matrix given partial column and row space basis.

Usage

FindOpt_DM_Iterative(
  X,
  M,
  N,
  r,
  maxiter = 10000,
  tol = .Machine$double.eps^0.5
)

Arguments

X

The noisy matrix. The dimension is n by p

M

The column space that the signal matrix contains. The dimension is n by

r_c

N

The row space that the signal matrix contains. The dimension is p by

r_r

r

The rank of output signal matrix

maxiter

The maximum number of iterations allowed in the calculation. Default is 1e4

tol

The tolerance used to monitor the convergence. Default is the square root of machine precision

Details

This function solves the optimization problem of (2) in Dongbang Yuan & Irina Gaynanova (2022) Double-Matched Matrix Decomposition for Multi-View Data, Journal of Computational and Graphical Statistics, DOI: 10.1080/10618600.2022.2067860, that is:

min_{A}{||X - A||^2_F}

subject to

M is a subset of column space of A, N is a subset of row space of A

Value

A list with the following elements:

result

A matrix that is the estimated solution to the optimization problem

R

The remaining

r - r_c

column bases

S

The remaining

r - r_r

row bases

num_iter

The actual number of iteration run

opt_function_val

A vector of objective values calculated at each iteration. It is supposed to be monotonically decreasing

Examples

X = matrix(c(2,1,1,3,2,2),nrow = 3)
M = matrix(c(1,1,0), nrow = 3)
N = matrix(c(0,1), nrow = 2)
r = 2
FindOpt_DM_Iterative(X, M, N, r)

justicesuker/DMMD_Package documentation built on Aug. 6, 2022, 12:34 p.m.