This regressor implements Genomic BLUP using Bayesian methods from BGLR package, but allows to use more than one covariance matrix.
phenoregressor.BGLR.multikinships(
phenotypes,
genotypes = NULL,
covariances,
extraCovariates,
type = "RKHS",
...
)The function returns a list with the following fields:
predictions : an array of (n) predicted phenotypes, with NAs filled and all other positions repredicted (useful for calculating residuals)
hyperparams : empty, returned for compatibility
extradata : list with information on trained model, coming from BGLR
phenotypes, a numeric array (n x 1), missing values are predicted
added for compatibility with the other GROAN regressors, must be NULL
square matrix (n x n) of covariances.
the extra covariance matrices to be added in the GBLUP model, collated in a single matrix-like structure, with optionally first column as an ignored intercept (supported for compatibility). See details, below.
character literal, one of the following: FIXED (Flat prior), BRR (Gaussian prior), BL (Double-Exponential prior), BayesA (scaled-t prior), BayesB (two component mixture prior with a point of mass at zero and a scaled-t slab), BayesC (two component mixture prior with a point of mass at zero and a Gaussian slab), RKHS (Gaussian processes, default)
extra parameters are passed to BGLR
In its simplest form, GBLUP is defined as: $$y = 1\mu + Z u + e$$ with $$var(y) = K \sigma_u^2 + I\sigma_e^2$$
Where \(\mu\) is the overall mean, \(K\) is the incidence matrix relating individual weights \(u\) to \(y\), and \(e\) is a vector of residuals with zero mean and covariance matrix \(I\sigma_e^2\)
It is possible to extend the above model to include different types of kinship matrices, each capturing different links between genotypes and phenotypes:
$$y = 1\mu + Z1 u1 + Z2 u2 + \dots + e$$ with $$var(y) = K1 \sigma_u1^2 + K2 \sigma_u2^2 + \dots + I\sigma_e^2$$
This function receives the first kinship matrix \(K1\) via the covariances
argument and an arbitrary number of extra matrices via the extraCovariates
built as follow:
#given the following defined variables
y = <some values, Nx1 array>
K1 = <NxN kinship matrix>
K2 = <another NxN kinship matrix>
K3 = <a third NxN kinship matrix>#invoking the multi kinship GBLUP
y_hat = phenoregressor.BGLR.multikinships(
phenotypes = y,
covariances = K1,
extraCovariates = cbind(K2, K3)
)
BGLR
Other phenoRegressors:
phenoRegressor.BGLR(),
phenoRegressor.RFR(),
phenoRegressor.SVR(),
phenoRegressor.dummy(),
phenoRegressor.rrBLUP()