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 |
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:
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.
<- asreml(
asr015 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:
<- as.data.frame(summary(asr015, coef = TRUE)$coef.random)
BLUP 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