sJIVE | R Documentation |
Given multi-source data and a continuous outcome, sJIVE can simultaneously identify shared (joint) and source-specific (individual) underlying structure while building a linear prediction model for an outcome using these structures. These two components are weighted to compromise between explaining variation in the multi-source data and in the outcome.
sJIVE( X, Y, rankJ = NULL, rankA = NULL, eta = c(0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99), max.iter = 1000, threshold = 0.001, method = "permute", center.scale = TRUE, reduce.dim = TRUE, numCores = 1 )
X |
A list of two or more linked data matrices. Each matrix must have the same number of columns, which is assumed to be common, but the number of rows may differ. |
Y |
A numeric outcome expressed as a vector with length equal
to the number of columns in each view of |
rankJ |
An integer specifying the joint rank of the data.
If |
rankA |
A vector specifying the individual ranks of the data.
If |
eta |
A value or vector of values greater than 0 and less than 1. If |
max.iter |
The maximum number of iterations for each instance of the sJIVE algorithm. |
threshold |
The threshold used to determine convergence of the algorithm. |
method |
A string specifying which rank selection method to use. Possible options are "permute" which uses JIVE's permutation method, or "CV" which uses 5-fold forward CV to determine ranks. |
center.scale |
A boolean indicating whether or not the data should be centered and scaled. |
reduce.dim |
A boolean indicating whether or not dimension reduction should be used to increase computation efficiency. |
numCores |
An integer specifying the number of cores to use when estimating eta. Default is 1. |
The method requires the data to be centered and scaled. This can be done prior to running the method or by specifying center.scale=T. The rank of the joint and individual components as well as the weight between the data and the outcome can be pre-specified or adaptively selected within the function. The method will print the ranks, the weight, and the number of iterations needed to reach convergence.
sJIVE
extends jive
to allow for simultaneous prediction
of a continuous outcome. It decomposes multi-source data into low-rank,
orthogonal joint and individual components. Each component is broken down
into the loadings, or left eigenvectors, and the scores, the product of the
eigenvalues and the right eigenvectors. The number of eigenvectors is equal to
the rank of the component, and the scores are used to predict y
.
sJIVE
returns an object of class "sJIVE". The function summary
(i.e. summary.sJIVE
) can be used to summarize the model results, including a
variance table and testing the significance of the joint and individual components.
An object of class "sJIVE" is a list containing the following components.
S_J |
A matrix capturing the joint scores of the data. |
S_I |
A list containing matrices that capture the individual scores of the data. |
U_I |
A list containing matrices that capture the joint loadings of the data. |
W_I |
A list containing matrices that capture the individual loadings of the data. |
theta1 |
A vector that captures the effect of the joint scores on the outcome. |
theta2 |
A list containing vectors that capture the effect of the individual scores on the outcome. |
fittedY |
The fitted Y values. |
error |
The error value at which the model converged. |
all.error |
The error value at each iteration. |
iterations |
The number of iterations needed to reach convergence. |
rankJ |
The rank of the joint structure. |
rankA |
The rank of the individual structure. |
eta |
The weight between the data and the outcome. |
data |
A list containing the centered and scaled data sets, if applicable. |
predict.sJIVE
summary.sJIVE
train.x <- list(matrix(rnorm(300), ncol=20), matrix(rnorm(200), ncol=20)) train.y <- rnorm(20) train.fit <- sJIVE(X=train.x,Y=train.y,rankJ=1,rankA=c(1,1),eta=0.5) ## Not run: train.fit <- sJIVE(X=X,Y=Y,rankJ=1,rankA=c(1,1),eta=0.5) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.