# NOT RUN {
data(durban.splitplot)
dat <- durban.splitplot
if(require(desplot)){
desplot(yield~bed*row, dat,
out1=block, out2=fung, num=gen, # aspect unknown
main="durban.splitplot")
}
# Durban 2003, Figure 2
m20 <- lm(yield~gen*fung, data=dat)
dat$resid <- m20$resid
## require(lattice)
## xyplot(resid~row, dat, type=c('p','smooth'), main="durban.splitplot")
## xyplot(resid~bed, dat, type=c('p','smooth'), main="durban.splitplot")
# Figure 4 doesn't quite match due to different break points
if(require(lattice)){
xyplot(resid ~ bed|factor(row), data=dat,
main="durban.splitplot",
type=c('p','smooth'))
}
# ----------------------------------------------------------------------------
# }
# NOT RUN {
# Figure 6 - field trend
# note, Durban used gam package like this
# m2lo <- gam(yield ~ gen*fung + lo(row, bed, span=.082), data=dat)
require(mgcv)
m2lo <- gam(yield ~ gen*fung + s(row, bed,k=45), data=dat)
new2 <- expand.grid(row=unique(dat$row), bed=unique(dat$bed))
new2 <- cbind(new2, gen="G01", fung="F1")
p2lo <- predict(m2lo, newdata=new2)
require(lattice)
wireframe(p2lo~row+bed, new2, aspect=c(1,.5), main="Field trend")
# }
# NOT RUN {
# ----------------------------------------------------------------------------
# }
# NOT RUN {
# asreml3
require(asreml)
# Table 5, variance components. Table 6, F tests
dat <- transform(dat, rowf=factor(row), bedf=factor(bed))
dat <- dat[order(dat$rowf, dat$bedf),]
m2a2 <- asreml(yield ~ gen*fung, random=~block/fung+units, data=dat,
rcov=~ar1v(rowf):ar1(bedf))
m2a2 <- update(m2a2)
require(lucid)
vc(m2a2)
## effect component std.error z.ratio constr
## block!block.var 0.0000001 NA NA bound
## block:fung!block.var 0.01207 0.01513 0.8 pos
## units!units.var 0.02463 0.002465 10 pos
## R!variance 1 NA NA fix
## R!rowf.cor 0.8836 0.03647 24 uncon
## R!rowf.var 0.1262 0.04432 2.8 pos
## R!bedf.cor 0.9202 0.02847 32 uncon
anova(m2a2)
# }
# NOT RUN {
# ----------------------------------------------------------------------------
# }
# NOT RUN {
## require(asreml4)
## # Table 5, variance components. Table 6, F tests
## dat <- transform(dat, rowf=factor(row), bedf=factor(bed))
## dat <- dat[order(dat$rowf, dat$bedf),]
## m2a2 <- asreml(yield ~ gen*fung, random=~block/fung+units, data=dat,
## resid =~ar1v(rowf):ar1(bedf))
## m2a2 <- update(m2a2)
## require(lucid)
## vc(m2a2)
## ## effect component std.error z.ratio bound <!-- %ch -->
## ## block 0 NA NA B NA
## ## block:fung 0.01206 0.01512 0.8 P 0
## ## units 0.02463 0.002465 10 P 0
## ## rowf:bedf(R) 1 NA NA F 0
## ## rowf:bedf!rowf!cor 0.8836 0.03646 24 U 0
## ## rowf:bedf!rowf!var 0.1261 0.04434 2.8 P 0
## ## rowf:bedf!bedf!cor 0.9202 0.02846 32 U 0
## wald(m2a2)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab