MVOPR3 {MVOPR}R Documentation

Multi-View Orthogonal Projection Regression for three modalities

Description

Fit Multi-View Orthogonal Projection Regression for three modalities with Lasso, MCP, SCAD. The function is capable for linear, logistic, and poisson regression.

Usage

MVOPR3(
  M1,
  M2,
  M3,
  Y,
  RRR_Control = list(Sparsity = TRUE, nrank = 10, ic.type = "GIC"),
  family = "gaussian",
  penalty = "lasso"
)

Arguments

M1

A numeric matrix (n x p1) for the first modality.

M2

A numeric matrix (n x p2) for the second modality. Assumes 'M2' is correlated to 'M1' via a low-rank matrix.

M3

A numeric matrix (n x p3) for the third modality. Assumes 'M3' is correlated to 'M1' and 'M2' via a low-rank matrix.

Y

A numeric response vector of length 'n', connected to 'M1', 'M2', and 'M3'.

RRR_Control

A list to control the fitting for reduced rank regression.

Sparsity

Logical. If 'TRUE', performs Sparse Orthogonal Factor Regression (SOFAR); otherwise, a reduced-rank regression model is fitted.

nrank

Integer. Maximum rank to be searched for the reduced-rank model.

ic.type

Character. Model selection criterion: '"AIC"', '"BIC"', or '"GIC"'.

family

Either "gaussian", "binomial", or "poisson", depending on the response.

penalty

The penalty to be applied in the outcome model Y to M1 and M2. Either "MCP" (the default), "SCAD", or "lasso".

Value

A list containing:

fitY

A fitted object from 'cv.ncvreg', containing the penalized regression results for 'Y'.

fitM2

The fitted reduced-rank regression ('sofar' or 'rrr' object) for 'M2' given 'M1'.

fitM3

The fitted reduced-rank regression ('sofar' or 'rrr' object) for 'M3' given 'M1' and 'M2'.

CoefY

A vector of estimated regression coefficients for 'Y'.

coefM2

A matrix of estimated regression coefficients for 'M2' given 'M1'.

coefM3

A matrix of estimated regression coefficients for 'M3' given 'M1' and 'M2'.

rank1

An integer indicating the estimated rank of the reduced-rank regression for 'M2'.

rank2

An integer indicating the estimated rank of the reduced-rank regression for 'M3'.

P1

A projection matrix used to extract the orthogonal components of 'M1'.

P2

A projection matrix used to extract the orthogonal components of 'E2', which is the error term in the regression for 'M2' given 'M1'.

M1s

A transformed version of 'M1' after projection.

M2s

A transformed version of 'M2' after removing the effect of 'M1' and projecting to the orthogonal space.

M3s

A transformed version of 'M3' after removing the effects of 'M1' and 'M2'.

#' @references Dai, Z., Huang, Y. J., & Li, G. (2025). Multi-View Orthogonal Projection Regression with Application in Multi-omics Integration. arXiv preprint arXiv:2503.16807. Available at <https://arxiv.org/abs/2503.16807>

Examples


## Simulation: three modalities
p1 = 50; p2 = 50; p3 = 50; n = 200
rank = 2

beta = c(rep(c(rep(1,5),rep(0,45)),3))
M1 = matrix(rnorm(p1*n),n,p1)

U1 = matrix(rnorm(rank*p1),p1,rank)
V1 = matrix(runif(rank*p2,-0.1,0.1),rank,p2)
B1 = U1 %*% V1

U2 = matrix(rnorm(rank*p1),p1,rank)
V2 = matrix(runif(rank*p2,-0.1,0.1),rank,p3)
B2 = U2 %*% V2

U3 = matrix(rnorm(rank*p2),p2,rank)
V3 = matrix(runif(rank*p2,-0.1,0.1),rank,p3)
B3 = U3 %*% V3

E1 = matrix(rnorm(p2*n),n,p2)
E2 = matrix(rnorm(p3*n),n,p3)

M2 = M1 %*% B1 + E1
M3 = M1 %*% B2 + M2 %*% B3 + E2
Y = cbind(M1,M2,M3) %*% matrix(beta,p1+p2+p3,1)

## Fit MVOPR with Lasso
Fit1 = MVOPR3(M1,M2,M3,Y,RRR_Control = list(Sparsity = FALSE),penalty = 'lasso')

## Fit MVOPR with MCP
Fit2 = MVOPR3(M1,M2,M3,Y,RRR_Control = list(Sparsity = FALSE),penalty = 'MCP')

## Fit MVOPR with SCAD
Fit3 = MVOPR3(M1,M2,M3,Y,RRR_Control = list(Sparsity = FALSE),penalty = 'SCAD')

## Compare the variable selection between Lasso, MCP, SCAD
print(data.frame(Lasso = Fit1$CoefY[2:151],MCP = Fit2$CoefY[2:151],SCAD = Fit3$CoefY[2:151],beta))


[Package MVOPR version 2.0.0 Index]