Skip to contents

The `MatSignalExtractJP` function performs signal extraction from a data matrix to estimate the signal rank, signal row space, corresponding perturbation angles, and noise matrix. It adjusts the signals based on random direction angles and uses bootstrap estimation to refine the results.

Usage

MatSignalExtractJP(
  X,
  matName = NULL,
  nsim = 400,
  colCent = F,
  rowCent = F,
  cull = 0.382,
  percentile = 0.5,
  noiselvl = NULL
)

Arguments

X

A numeric matrix (d x n) containing the data to be analyzed. Must not contain any `NA` values.

matName

A string representing the name of the matrix, used for logging purposes.

nsim

An integer specifying the number of bootstrap samples to be used during the estimation process.

colCent

A logical value indicating whether to center the columns of the matrix. Default is `FALSE`.

rowCent

A logical value indicating whether to center the rows of the matrix. Default is `FALSE`.

cull

A numeric value controlling the culling process during signal extraction. Default is `0.5`.

percentile

A numeric value representing the percentile for estimating the noise level.

noiselvl

Optional. A noise level parameter that can be either a numeric value or 'ks' to use the `ksOpt` function for noise level estimation. If not provided, an optimal shrinkage method will be used.

Value

A list containing:

VBar

Matrix representing the adjusted signal row space.

UBar

Matrix representing the adjusted signal column space.

phiBar

Numeric value of the adjusted perturbation angle.

psiBar

Numeric value of the loadings perturbation angle.

rBar

Integer representing the adjusted signal rank.

EHat

Matrix representing the estimated noise.

singVals

Vector of singular values before shrinkage.

singValsHat

Vector of singular values after shrinkage.

rSteps

List of steps used in signal rank adjustment.

VVHatCacheBar

List of matrices from bootstrap validation steps.

UUHatCacheBar

List of matrices from bootstrap validation steps.