ASR015. LMM for a row-column design with nested effects - Spring barley varieties

The complete script for this example can be downloaded here:

Dataset

The model that we will fit here is based on the D010 dataset, and the first few rows are presented below:

row bed rep gen yield
8 6 R1 G001 5.12
4 4 R1 G002 5.28
1 23 R1 G003 5.81
8 28 R1 G004 5.49
5 2 R1 G005 5.14
8 14 R1 G006 5.72


Model

In this example we will fit a LMM with factors to describe a row-column design. The specification of the model is: \[ y = \mu + rep + gen + rep:row + rep:bed + e\ \]

where,

    \(y\) is the grain yield,

    \(\mu\) is the overall mean,

    \(rep\) is the fixed effect of replicate (block),

    \(gen\) is the random effect of genotype, with \(gen \sim \mathcal{N}(0,\,\sigma^{2}_{g})\),

    \(rep:row\) is the nested random effect of row within replicate, with \(row \sim \mathcal{N}(0,\,\sigma^{2}_{r})\),

    \(rep:bed\) is the nested random effect of bed (column) within replicate, with \(bed \sim \mathcal{N}(0,\,\sigma^{2}_{b})\),

    \(e\) is the random residual effect, with \(e \sim \mathcal{N}(0,\,\sigma^{2}_{e})\).


Here we will see how to write the model with ASReml-R. Note that before fitting the model, rep, gen, row and bed need to be set as factors.

asr015 <- asreml(
  fixed = yield ~ rep,
  random = ~gen + rep:row + rep:bed,
  residual = ~units,
  data = d010
)


Exploring output

Here is how the ANOVA table looks like:

wald(asr015, denDF = 'numeric')$Wald
            Df denDF    F.inc        Pr
(Intercept)  1  28.1 9816.000 0.0000000
rep          1  23.7    1.504 0.2321964

We can see that in this case the factor rep is not significant.


Here are the variance components:

summary(asr015)$varcomp
         component   std.error   z.ratio bound %ch
rep:row 0.03115915 0.012943351  2.407348     P   0
rep:bed 0.05255079 0.011455872  4.587237     P   0
gen     0.06962016 0.010053014  6.925302     P   0
units!R 0.06622248 0.006561527 10.092541     P   0


And here is the heritability estimate:

vpredict(asr015, h2 ~ V3/(V1+V2+V3+V4))
    Estimate         SE
h2 0.3171001 0.04353551


The adjusted means (BLUEs) are:

summary(asr015,coef = TRUE)$coef.fixed
              solution  std error   z.ratio
(Intercept)  5.5798162 0.07707063 72.398736
rep_R1       0.0000000         NA        NA
rep_R2      -0.1307353 0.10662014 -1.226178


The random effects (BLUPs) are:

BLUP <- as.data.frame(summary(asr015, coef = TRUE)$coef.random)
head(BLUP)
            solution std.error    z.ratio
gen_G001 -0.08874435 0.1598190 -0.5552802
gen_G002 -0.07687905 0.1602842 -0.4796420
gen_G003  0.07750463 0.1601375  0.4839880
gen_G004  0.09170360 0.1599738  0.5732414
gen_G005 -0.05877844 0.1600065 -0.3673503
gen_G006  0.24510227 0.1600466  1.5314429