An RCB experiment of wheat in South Australia, with strong spatial variation and serpentine row/column effects.

Format

A data frame with 330 observations on the following 5 variables.

col

column

row

row

rep

replicate factor, 3 levels

gen

wheat variety, 108 levels

yield

yield

Details

A randomized complete block experiment. There are 108 varieties in 3 reps. Plots are 6 meters long, 0.75 meters wide, trimmed to 4.2 meters lengths before harvest. Trimming was done by spraying the wheat with herbicide. The sprayer travelled in a serpentine pattern up and down columns. The trial was sown in a serpentine manner with a planter that seeds three rows at a time (Left, Middle, Right).

Field width 15 columns * 6 m = 90 m

Field length 22 plots * .75 m = 16.5 m

Used with permission of Arthur Gilmour, in turn with permission from Gil Hollamby.

Source

Arthur R Gilmour and Brian R Cullis and Arunas P Verbyla, 1997. Accounting for natural and extraneous variation in the analysis of field experiments. Journal of Agric Biol Env Statistics, 2, 269-293.

References

N. W. Galwey. 2014. Introduction to Mixed Modelling: Beyond Regression and Analysis of Variance. Table 10.9

Examples

# \dontrun{ library(agridat) data(gilmour.serpentine) dat <- gilmour.serpentine libs(desplot) desplot(dat, yield~ col*row, num=gen, show.key=FALSE, out1=rep, aspect = 16.5/90, # true aspect main="gilmour.serpentine")
# Extreme field trend. Blocking insufficient--needs a spline/smoother # xyplot(yield~col, data=dat, main="gilmour.serpentine") # ---------------------------------------------------------------------------- libs(asreml,lucid) # asreml4 dat <- transform(dat, rowf=factor(row), colf=factor(10*(col-8))) dat <- dat[order(dat$rowf, dat$colf), ] # Sort order needed by asreml # RCB m0 <- asreml(yield ~ gen, data=dat, random=~rep)
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:38 2021 #> LogLik Sigma2 DF wall cpu #> 1 -1240.605 14296.31 223 17:08:38 0.0 #> 2 -1238.949 14052.47 223 17:08:38 0.0 #> 3 -1237.174 13779.88 223 17:08:38 0.0 #> 4 -1235.989 13576.73 223 17:08:38 0.0 #> 5 -1235.390 13443.10 223 17:08:38 0.0 #> 6 -1235.240 13383.33 223 17:08:38 0.0 #> 7 -1235.223 13362.53 223 17:08:38 0.0 #> 8 -1235.222 13359.15 223 17:08:38 0.0
# Add AR1 x AR1 m1 <- asreml(yield ~ gen, data=dat, resid = ~ar1(rowf):ar1(colf))
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:38 2021 #> LogLik Sigma2 DF wall cpu #> 1 -1276.682 20479.20 223 17:08:38 0.0 (1 restrained) #> 2 -1204.192 12555.38 223 17:08:38 0.0 (1 restrained) #> 3 -1131.606 10258.80 223 17:08:38 0.0 #> 4 -1107.525 13045.24 223 17:08:38 0.0 #> 5 -1103.565 16993.13 223 17:08:38 0.0 #> 6 -1103.220 18861.79 223 17:08:38 0.0 #> 7 -1103.192 19475.06 223 17:08:38 0.0 #> 8 -1103.190 19644.93 223 17:08:38 0.0 #> 9 -1103.190 19689.59 223 17:08:38 0.0
# Add spline m2 <- asreml(yield ~ gen + col, data=dat, random= ~ spl(col) + colf, resid = ~ar1(rowf):ar1(colf))
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:39 2021 #> Spline: design points closer than 0.0014 have been merged. #> LogLik Sigma2 DF wall cpu #> 1 -1115.615 4519.781 222 17:08:39 0.0 #> 2 -1098.274 3998.898 222 17:08:39 0.0 #> 3 -1084.274 3762.414 222 17:08:39 0.0 #> 4 -1078.173 3688.511 222 17:08:39 0.0 #> 5 -1076.057 3634.376 222 17:08:39 0.0 #> 6 -1075.757 3596.593 222 17:08:39 0.0 #> 7 -1075.744 3588.592 222 17:08:39 0.0
# Figure 4 shows serpentine spraying p2 <- predict(m2, data=dat, classify="colf")$pvals
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:39 2021 #> Spline: design points closer than 0.0014 have been merged. #> LogLik Sigma2 DF wall cpu #> 1 -1075.744 3589.184 222 17:08:39 0.0 #> 2 -1075.744 3589.280 222 17:08:39 0.0 #> 3 -1075.744 3589.514 222 17:08:39 0.0
plot(p2$predicted, type='b', xlab="column number", ylab="BLUP")
# Define column code (due to serpentine spraying) # Rhelp doesn't like double-percent modulus symbol, so compute by hand dat <- transform(dat, colcode = factor(dat$col-floor((dat$col-1)/4)*4 -1)) m3 <- asreml(yield ~ gen + lin(colf) + colcode, data=dat, random= ~ colf + rowf + spl(colf), resid = ~ar1(rowf):ar1(colf))
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:39 2021 #> Spline: design points closer than 0.0014 have been merged. #> LogLik Sigma2 DF wall cpu #> 1 -1074.771 3215.959 219 17:08:39 0.0 #> 2 -1065.402 2997.768 219 17:08:39 0.0 #> 3 -1057.721 2912.815 219 17:08:39 0.0 #> 4 -1054.628 2939.717 219 17:08:39 0.0 #> 5 -1053.720 2984.784 219 17:08:39 0.0 #> 6 -1053.619 3001.884 219 17:08:39 0.0 #> 7 -1053.616 3009.864 219 17:08:39 0.0
# Figure 6 shows serpentine row effects p3 <- predict(m3, data=dat, classify="rowf")$pvals
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:39 2021 #> Spline: design points closer than 0.0014 have been merged. #> LogLik Sigma2 DF wall cpu #> 1 -1053.616 3013.371 219 17:08:39 0.0 #> 2 -1053.616 3013.726 219 17:08:39 0.0 #> 3 -1053.616 3014.611 219 17:08:39 0.0
plot(p3$predicted, type='l', xlab="row number", ylab="BLUP")
text(1:22, p3$predicted, c('L','L','M','R','R','M','L','L', 'M','R','R','M','L','L','M','R','R','M','L','L','M','R'))
# Define row code (due to serpentine planting). 1=middle, 2=left/right dat <- transform(dat, rowcode = factor(row)) levels(dat$rowcode) <- c('2','2','1','2','2','1','2','2','1', '2','2','1','2','2','1','2','2','1','2','2','1','2') m6 <- asreml(yield ~ gen + lin(colf) + colcode +rowcode, data=dat, random= ~ colf + rowf + spl(col), resid = ~ar1(rowf):ar1(colf))
#> Model fitted using the gamma parameterization. #> ASReml 4.1.0 Mon Jan 11 17:08:39 2021 #> Spline: design points closer than 0.0014 have been merged. #> LogLik Sigma2 DF wall cpu #> 1 -1069.223 3140.388 218 17:08:39 0.0 #> 2 -1059.875 2949.849 218 17:08:39 0.0 #> 3 -1052.068 2905.675 218 17:08:39 0.0 #> 4 -1048.746 2983.113 218 17:08:39 0.0 #> 5 -1047.717 3075.335 218 17:08:39 0.0 #> 6 -1047.602 3113.167 218 17:08:39 0.0 #> 7 -1047.597 3130.509 218 17:08:39 0.0 #> 8 -1047.596 3137.866 218 17:08:39 0.0
plot(varioGram(m6), xlim=c(0:17), ylim=c(0,11), zlim=c(0,4000), main="gilmour.serpentine")
# }