variance structure specification
vs
is the main function to build the variance-covariance structure for the random effects to be fitted in the mmer
solver.
vs(..., Gu=NULL, Gti=NULL, Gtc=NULL, reorderGu=TRUE)
... |
variance structure to be specified following the logic desired in the internal kronecker product. For example, if user wants to define a diagonal variance structure for the random effect 'genotypes'(g) with respect to a random effect 'environments'(e), this is:
being
One strength of sommer is the ability to specify very complex structures with as many kronecker products as desired. For example:
is equivalent to
where different covariance structures can be applied to the levels of |
Gu |
matrix with the known variance-covariance values for the levels of the u.th random effect (i.e. relationship matrix among individuals or any other known covariance matrix). If NULL, then an identity matrix is assumed. The Gu matrix can have more levels than the ones present in the random effect linked to it but not the other way around. Otherwise, an error message of missing level in Gu will be returned. |
Gti |
matrix with dimensions t x t (t equal to number of traits) with initial values of the variance-covariance components for the random effect specified in the .... argument. If NULL the program will provide the initial values. |
Gtc |
matrix with dimensions t x t (t equal to number of traits) of constraints for the variance-covariance components for the random effect specified in the ... argument according to the following rules:
In the multi-response scenario if the user doesn't specify this argument the default is to build an unstructured matrix (using the |
reorderGu |
a TRUE/FALSE statement if the Gu matrix should be reordered based on the names of the design matrix of the random effect or passed with the custom order of the user. This may be important when fitting covariance components in a customized fashion. Only for advanced use. |
a list with all neccesary elements (incidence matrices, known var-cov structures, unknown covariance structures to be estimated and constraints) to be used in the mmer solver.
Giovanny Covarrubias-Pazaran
Covarrubias-Pazaran G (2016) Genome assisted prediction of quantitative traits using the R package sommer. PLoS ONE 11(6): doi:10.1371/journal.pone.0156744
Covarrubias-Pazaran G (2018) Software update: Moving the R package sommer to multivariate mixed models for genome-assisted prediction. doi: https://doi.org/10.1101/354639
The core function of the package: mmer
data(DT_example) DT <- DT_example A <- A_example ## ============================ ## ## example to without structure ## ============================ ## ds(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(Name), rcov=~ vs(units), data=DT) ## ============================ ## ## example to without structure but ## using covariance among levels in the ## random effect Name ## ============================ ## ds(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(Name, Gu=A), rcov=~ vs(units), data=DT) ## ============================ ## ## example to use ds() structure (DIAGONAL) ## ============================ ## ds(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(ds(Year),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use at() structure (level-specific) ## ============================ ## unique(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(at(Year,c("2011","2012")),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use us() structure (UNSTRUCTURED) ## ============================ ## us(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(us(Year),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use cs() structure (CUSTOMIZED) ## ============================ ## unique(DT$Year) mm <- matrix(1,3,3); mm[1,3] <- mm[3,1] <- 0;mm #don't estimate cov 2011-2013 mix <- mmer(Yield~Env, random= ~ vs(cs(Year,mm),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use overlay() + vs() structure ## ============================ ## data("DT_halfdiallel") DT <- DT_halfdiallel head(DT) DT$femalef <- as.factor(DT$female) DT$malef <- as.factor(DT$male) DT$genof <- as.factor(DT$geno) A <- diag(7); colnames(A) <- rownames(A) <- 1:7;A # if you want to provide a covariance matrix #### model using overlay modh <- mmer(sugar~1, random=~vs(overlay(femalef,malef), Gu=A) + genof, data=DT) ## ============================ ## ## example to use vs() + ds() + spl2D() structure ## ============================ ## # ### mimic two fields # data(DT_cpdata) # DT <- DT_cpdata # GT <- GT_cpdata # MP <- MP_cpdata # aa <- DT; bb <- DT # aa$FIELD <- "A";bb$FIELD <- "B" # set.seed(1234) # aa$Yield <- aa$Yield + rnorm(length(aa$Yield),0,4) # DT2 <- rbind(aa,bb) # head(DT2) # # mix <- mmer(Yield~1, # random=~vs(ds(FIELD),id, Gu=A) + # vs(ds(FIELD),Rowf) + # vs(ds(FIELD),Colf) + # vs(ds(FIELD),spl2D(Row,Col)), # rcov=~vs(ds(FIELD),units), # data=DT2)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.