Learn R Programming

FLLat (version 1.2)

FLLat: Fused Lasso Latent Feature Model

Description

Fits the Fused Lasso Latent Feature (FLLat) model for given values of \(J\) (the number of features), and \(\lambda_1\) and \(\lambda_2\) (the two fused lasso tuning parameters).

Usage

FLLat(Y, J=min(15,floor(ncol(Y)/2)), B="pc", lam1, lam2, thresh=10^(-4),
      maxiter=100, maxiter.B=1, maxiter.T=1)

Arguments

Y
A matrix of data from an aCGH experiment (usually in the form of log intensity ratios) or some other type of copy number data. Rows correspond to the probes and columns correspond to the samples.
J
The number of features in the FLLat model. The default is the smaller of either \(15\) or the number of samples divided by \(2\).
B
The initial values for the features. Can be one of "pc" (the first J principal components of Y), "rand" (a random selection of J columns of Y), or a user specified matrix of initial values, where rows correspond to the probes and columns correspond to the features. The default is "pc".
lam1
The tuning parameter \(\lambda_1\) in the fused lasso penalty that controls the level of sparsity in the features.
lam2
The tuning parameter \(\lambda_2\) in the fused lasso penalty that controls the level of smoothness in the features.
thresh
The threshold for determining when the solutions have converged. The default is \(10^{-4}\).
maxiter
The maximum number of iterations for the outer loop of the algorithm. The default is \(100\).
maxiter.B
The maximum number of iterations for the inner loop of the algorithm for estimating the features \(B\). The default is \(1\). Increasing this may decrease the number of iterations for the outer loop but may still increase total run time.
maxiter.T
The maximum number of iterations for the inner loop of the algorithm for estimating the weights \(\Theta\). The default is \(1\). Increasing this may decrease the number of iterations for the outer loop but may still increase total run time.

Value

An object of class FLLat with components:
Beta
The estimated features \(\hat{B}\).
Theta
The estimated weights \(\hat{\Theta}\).
niter
The number of iterations taken by the algorithm (outer loop).
rss
The residual sum of squares of the fitted model.
bic
The BIC for the fitted model. See FLLat.BIC for more details.
lam1
The value of \(\lambda_1\) used in the model.
lam2
The value of \(\lambda_2\) used in the model.
There is a plot method and a predict method for FLLat objects.

Details

This function fits the Fused Lasso Latent Feature model to multi-sample aCGH data, as described in Nowak and others (2011), for given values of \(J\), \(\lambda_1\) and \(\lambda_2\). Given aCGH data consisting of \(S\) samples and \(L\) probes, the model is given by: $$Y=B\Theta,$$ where \(Y\) is an \(L\)-by-\(S\) matrix denoting the aCGH data (with samples in columns), \(B\) is an \(L\)-by-\(J\) matrix denoting the features (with features in columns), and \(\Theta\) is a \(J\)-by-\(S\) matrix denoting the weights. Each feature describes a pattern of copy number variation and the weights describe the composition of each sample. Specifically, each sample (column of \(Y\)) is modeled as a weighted sum of the features (columns of \(B\)), with the weights given by the corresponding column of \(\Theta\).

The model is fitted by minimizing a penalized version of the residual sum of squares (RSS): $$RSS + \sum_{j=1}^J PEN_j$$ where the penalty is given by: $$PEN_j = \lambda_1\sum_{l=1}^L\left|\beta_{lj}\right| + \lambda_2\sum_{l=2}^L\left|\beta_{lj} - \beta_{l-1,j}\right|.$$ Here \(\beta_{lj}\) denotes the \((l,j)\)th element of \(B\). We also constrain the \(L_2\) norm of each row of \(\Theta\) to be less than or equal to \(1\).

For more details, please see Nowak and others (2011) and the package vignette.

References

G. Nowak, T. Hastie, J. R. Pollack and R. Tibshirani. A Fused Lasso Latent Feature Model for Analyzing Multi-Sample aCGH Data. Biostatistics, 2011, doi: 10.1093/biostatistics/kxr012

See Also

plot.FLLat, predict.FLLat, FLLat.BIC, FLLat.PVE, FLLat.FDR

Examples

Run this code
## Load simulated aCGH data.
data(simaCGH)

## Run FLLat for J = 5, lam1 = 1 and lam2 = 9.
result <- FLLat(simaCGH,J=5,lam1=1,lam2=9)

## Plot the estimated features.
plot(result)

## Plot a heatmap of the estimated weights.
plot(result,type="weights")

Run the code above in your browser using DataLab