Given a flash or flash_fit object, returns the LDF decomposition \(Y \approx LDF'\).

ldf(object, type)

# S3 method for flash
ldf(object, type = "f")

# S3 method for flash_fit
ldf(object, type = "f")

Arguments

object

An object inheriting from class flash or flash_fit.

type

Takes identical arguments to function norm. Use "f" or "2" for the 2-norm (Euclidean norm); "o" or "1" for the 1-norm (taxicab norm); and "i" or "m" for the infinity norm (maximum norm).

Value

A list with fields L, D, and F, each of which corresponds to one of the matrices in the decomposition \(Y \approx LDF'\)

(with the columns of \(L\) and \(F\) scaled according to argument type). Note that D is returned as a vector rather than a matrix (the vector of diagonal entries in \(D\)). Thus, "fitted values" \(LDF'\) can be recovered as L %*% diag(D) %*% t(F).

Details

When the prior families \(G_\ell^{(k)}\) and \(G_f^{(k)}\) are closed under scaling (as is typically the case), then the EBMF model (as described in the documention to function flash) is only identifiable up to scaling by a diagonal matrix \(D\): $$Y = LDF' + E.$$

Method ldf scales columns \(\ell_k\) and \(f_k\) so that, depending on the argument to parameter type, their 1-norms, 2-norms, or infinity norms are equal to 1.

Methods (by class)

  • ldf(flash): LDF decomposition for flash objects

  • ldf(flash_fit): LDF decomposition for flash_fit objects