WGR3 (MV) {bWGR} | R Documentation |

## Multivariate Regression

### Description

Multivariate model to find breeding values.

### Usage

```
mkr(Y,K,...)
mrr(Y,X,...)
mrr_float(Y,X,...)
```

### Arguments

`Y` |
Numeric matrix of observations x trait. |

`K` |
Numeric matrix containing the relationship matrix. |

`X` |
Numeric matrix containing the genotyping matrix. |

`...` |
Arguments to pass to MRR3/MRR3F. See |

### Details

Algorithm is described in Xavier and Habier (2022). The model for the ridge regression (mrr) is as follows:

`Y = Mu + XB + E`

where `Y`

is a matrix of response variables, `Mu`

represents the intercepts, `X`

is the matrix of genotypic information, `B`

is the matrix of marker effects, and `E`

is the residual matrix.

The model for the kernel regression (mkr) is as follows:

`Y = Mu + UB + E`

where `Y`

is a matrix of response variables, `Mu`

represents the intercepts, `U`

is the matrix of Eigenvector of K, `b`

is a vector of regression coefficients and `E`

is the residual matrix.

Algorithm: Residuals are assumed to be independent among traits. Regression coefficients are solved via a multivaraite adaptation of Gauss-Seidel Residual Update. Since version 2.0, the solver of `mrr`

is based on the Randomized Gauss-Seidel algorithm. Variance and covariance components are solved with an EM-REML like approach proposed by Schaeffer called Pseudo-Expectation.

Other related implementations:

01) `mkr2X(Y,K1,K2):`

Solves multi-trait kernel regressions with two random effects.

02) `mrr2X(Y,X1,X2):`

Solves multi-trait ridge regressions with two random effects.

03) `MRR3(Y,X,...):`

Extension of mrr with additional parameters.

04) `MRR3F(Y,X,...):`

MRR3 running on float.

05) `mrr_svd(Y,W):`

Solves mrr through the principal components of parameters.

06) `MLM(Y,X,Z,maxit=500,logtol=-8,cores=1):`

Multivariate model with fixed effects.

07) `SEM(Y,Z,...):`

Fits a XFA structural equation model (i.e., MegaSEM).

08) `MEGA(Y,X,npc=-1):`

Toy implementation of MegaLMM.

09) `GSEM(Y,X,npc=-1):`

Toy C++ implementaiton of MegaSEM.

10) `XSEMF(Y,X,npc=0):`

PC-based SEM - h2 fixed at 0.5.

11) `ZSEMF(Y,X):`

PC-based SEM - h2 is estimated.

In GSEM and MEGA, 'npc' means number of latent spaces if input is above zero, otherwise, 0 means all and -1 means `2*sqrt(ncol(Y))`

.

### Value

Returns a list with the random effect covariances (`Vb`

), residual variances (`Ve`

), genetic correlations (`GC`

), matrix with marker effects (`b`

) or eigenvector effects (if `mkr`

), intercepts (`mu`

), heritabilities (`h2`

), and a matrix with fitted values (`hat`

).

NOTE: Numeric stability is a serious concern with multivariate models with large number of response variables, as the covariance matrix is often not invesible. If output is filled with NAs, try using `MRR3`

and play with some parameters. For example, one may try adding priors to stabilize variances, e.g., `fit=MRR3(Y,X,df0=20)`

.

### Author(s)

Alencar Xavier, David Habier

### References

Xavier, A and Habier, D. (2022). A new approach fits multivariate genomic prediction models efficiently. GSE, DOI: 10.1186/s12711-022-00730-w

### Examples

```
# Load genomic data
data(tpod)
X = CNT(gen)
# Simulate phenotyp
sim = SimY(X)
Y = sim$Y
TBV = sim$tbv
# Fit regression model
test = mrr(Y,X)
# Genetic correlation
test$GC
# Heritabilies
test$h2
# Accuracy
diag(cor(TBV,test$hat))
# try: demo(multivariates)
```

*bWGR*version 2.2.9 Index]