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
```