Variance component based parameter estimation of incomplete block designs

By Deependra Dhakal in R

December 12, 2018

Introduction

Variance component models are also suited for analysis of incomplete block designs, besides complete block designs. This post aims to demonstrate exactly that. Using a dataset generated from alpha lattice design, I show how the design can be properly modeled and fit using OLS regression having various fixed model components. This system of model fitting is analogous to classical ANOVA based technique of estimating parameters.

The dataset

The data is same as introduced earlier in “Design and analysis of balanced randomized complete block (RCBD) experiment” post. It comprises of plant height trait for the maize recorded in multiple replication units, only difference from the earlier post being that the arrangement of observation plots into blocks which are themselves nested within replication will be accounted for. This is the objective of this post: to account for effects of incomplete blocks which was incorporated in the design.

An overview of how the data looks like is shown in Table 1.

(\#tab:ihyb-height)Intermediate maturing hybrids with 50 entries each in 3 replicated blocks
Rep Block Plot Entry Plant_height
1 1 1 1 270
1 1 2 3 266
1 1 3 18 261
1 1 4 32 224
1 1 5 37 268
1 2 6 27 268
1 2 7 21 277
1 2 8 13 264

Model formulation

model_pht <- lm(formula(paste("Plant_height", "~ Rep + Entry + Block%in%Rep")), 
            data = ihyb_multiple)
ANOVA_pht <- anova(model_pht) # model anova
(\#tab:anova-print)ANOVA of fixed effects factors with block nested within replication
Df Sum Sq Mean Sq F value Pr(>F)
Rep 2 8534 4267 38.86 0.000
Entry 49 42993 877 7.99 0.000
Rep:Block 27 3779 140 1.27 0.207
Residuals 71 7796 110
mean_pht # overall mean
## [1] 267
Fstat <- data.frame("Fit Statistics" = c(AIC = AIC(model_pht), BIC = BIC(model_pht)))
Fstat # fit statistics
##     Fit.Statistics
## AIC           1178
## BIC           1419
E <- (ntr - 1) * (nrep - 1)/((ntr - 1) * (nrep - 1) + nrep * (s - 1)) 
# ntr = number of treatments, 
# nrep = number of replications
# s = number of blocks per replication 
E # efficiency factor
## [1] 0.784
CV <- sqrt(Ee) * 100/mean_pht # where, Ee = deviance(model_pht)/df_resid_pht 
CV # model CV 
## [1] 3.93
(\#tab:model-means-and-group)Treatment means and groups for the response variable
treatment means groups
24 310 a
15 300 ab
14 299 ab
17 294 abc
20 289 bcd
46 283 bcde
36 282 bcde
21 282 cde
9 281 cde
10 280 cdef
3 279 cdefg
8 278 cdefg
1 278 cdefg
41 277 cdefg
11 277 cdefgh

Alternatively, analysis and results from analysis could be obtained via agricolae function PBIB.test().

# vc_model_alpha <- agricolae::PBIB.test(block = block, trt = trt, replication = replication, 
#                      k = sblock, y = y, method = "VC", console = TRUE)
# vc_model_alpha$groups
Posted on:
December 12, 2018
Length:
3 minute read, 466 words
Categories:
R
Tags:
R
See Also:
Simulating genetic drift
Missing negative from the normal
Internals of Mixed Models