The RRBLUP2 function works best when the number of markers is not
too large. This is because it solves the RR-BLUP problem by setting
up and solving Henderson's mixed model equations. Solving these equations
involves a square matrix with dimensions equal to the number of fixed
effects plus the number of random effects (markers). Whereas the RRBLUP
function solves the RR-BLUP problem using the EMMA approach. This approach involves
a square matrix with dimensions equal to the number of phenotypic records. This means
that the RRBLUP2 function uses less memory than RRBLUP when the number of markers
is approximately equal to or smaller than the number of phenotypic records.
The RRBLUP2 function is not recommend for cases where the variance components are
unknown. This is uses the EM algorithm to solve for unknown variance components,
which is generally considerably slower than the EMMA approach of RRBLUP
.
The number of iterations for the EM algorith is set by maxIter. The default value
is typically too small for convergence. When the algorithm fails to converage a
warning is displayed, but results are given for the last iteration. These results may
be "good enough". However we make no claim to this effect, because we can not generalize
to all possible use cases.
The RRBLUP2 function can quickly solve the mixed model equations without estimating variance
components. The variance components are set by defining Vu and Ve. Estimation of components
is suppressed by setting useEM to false. This may be useful if the model is being retrained
multiple times during the simulation. You could run RRBLUP
function the first
time the model is trained, and then use the variance components from this output for all
future runs with the RRBLUP2 functions. Again, we can make no claim to the general robustness
of this approach.