a. Effect confounded with block
Confound the three-factor interaction ABC with blocks, assuming that this higher-order interaction is less important than the main effects and two-factor interactions.
b. Assignment of treatments
Assign treatments according to the sign of ABC.
dat <- expand.grid(
A = c(-1, 1),
B = c(-1, 1),
C = c(-1, 1)
)
dat$treatment <- c("(1)", "a", "b", "ab",
"c", "ac", "bc", "abc")
dat$life <- c(22, 32, 35, 55, 44, 40, 60, 39)
knitr::kable(dat)
| A | B | C | treatment | life |
|---|---|---|---|---|
| -1 | -1 | -1 | (1) | 22 |
| 1 | -1 | -1 | a | 32 |
| -1 | 1 | -1 | b | 35 |
| 1 | 1 | -1 | ab | 55 |
| -1 | -1 | 1 | c | 44 |
| 1 | -1 | 1 | ac | 40 |
| -1 | 1 | 1 | bc | 60 |
| 1 | 1 | 1 | abc | 39 |
dat$ABC <- with(dat, A * B * C)
dat$block2 <- factor(
ifelse(dat$ABC == -1, "Block 1", "Block 2")
)
knitr::kable(
dat[order(dat$block2),
c("block2", "treatment", "A", "B", "C", "ABC")]
)
| block2 | treatment | A | B | C | ABC | |
|---|---|---|---|---|---|---|
| 1 | Block 1 | (1) | -1 | -1 | -1 | -1 |
| 4 | Block 1 | ab | 1 | 1 | -1 | -1 |
| 6 | Block 1 | ac | 1 | -1 | 1 | -1 |
| 7 | Block 1 | bc | -1 | 1 | 1 | -1 |
| 2 | Block 2 | a | 1 | -1 | -1 | 1 |
| 3 | Block 2 | b | -1 | 1 | -1 | 1 |
| 5 | Block 2 | c | -1 | -1 | 1 | 1 |
| 8 | Block 2 | abc | 1 | 1 | 1 | 1 |
a. Effect confounded with block
Choose AB and AC as the independent block generators.
Their product is
\[ (AB)(AC)=BC. \]
Therefore, AB, AC, and BC are confounded with blocks. This preserves all three main effects.
b. Assignment of treatments
Assign treatments according to the sign of ABC.
dat$AB <- with(dat, A * B)
dat$AC <- with(dat, A * C)
dat$block4 <- factor(
1 + 2 * (dat$AB == 1) + (dat$AC == 1),
levels = 1:4,
labels = paste("Block", 1:4)
)
knitr::kable(
dat[order(dat$block4),
c("block4", "treatment", "A", "B", "C", "AB", "AC")]
)
| block4 | treatment | A | B | C | AB | AC | |
|---|---|---|---|---|---|---|---|
| 2 | Block 1 | a | 1 | -1 | -1 | -1 | -1 |
| 7 | Block 1 | bc | -1 | 1 | 1 | -1 | -1 |
| 3 | Block 2 | b | -1 | 1 | -1 | -1 | 1 |
| 6 | Block 2 | ac | 1 | -1 | 1 | -1 | 1 |
| 4 | Block 3 | ab | 1 | 1 | -1 | 1 | -1 |
| 5 | Block 3 | c | -1 | -1 | 1 | 1 | -1 |
| 1 | Block 4 | (1) | -1 | -1 | -1 | 1 | 1 |
| 8 | Block 4 | abc | 1 | 1 | 1 | 1 | 1 |
The data were collected using the two-block design in Question 1.
ABC is completely confounded with blocks. Therefore, its contrast represents the combined block and ABC interaction contribution; these two contributions cannot be separated.
# Contrast columns for the estimable treatment effects
X <- with(dat, cbind(
A = A,
B = B,
C = C,
AB = A * B,
AC = A * C,
BC = B * C
))
# Factorial effects: contrast divided by 4
effects <- drop(crossprod(X, dat$life)) / 4
# Block contrast, aliased with ABC
block_effect <- sum(dat$ABC * dat$life) / 4
all_effects <- c(
effects,
"Block / ABC" = block_effect
)
knitr::kable(
data.frame(
Term = names(all_effects),
Effect = as.numeric(all_effects),
Absolute_effect = abs(as.numeric(all_effects))
),
digits = 3
)
| Term | Effect | Absolute_effect |
|---|---|---|
| A | 1.25 | 1.25 |
| B | 12.75 | 12.75 |
| C | 9.75 | 9.75 |
| AB | -1.75 | 1.75 |
| AC | -13.75 | 13.75 |
| BC | -5.25 | 5.25 |
| Block / ABC | -6.75 | 6.75 |
# Half-normal plot
ord <- order(abs(all_effects))
ordered_effects <- abs(all_effects)[ord]
half_normal_quantiles <- qnorm(
(1 + ppoints(length(all_effects))) / 2
)
plot(
half_normal_quantiles,
ordered_effects,
pch = 16,
xlab = "Theoretical half-normal quantiles",
ylab = "Absolute effect",
main = "Half-normal plot of effects",
ylim = c(0, max(ordered_effects) * 1.15)
)
text(
half_normal_quantiles,
ordered_effects,
labels = names(all_effects)[ord],
pos = 3,
cex = 0.8
)
a. Important Effect
The largest absolute treatment effects are AC (13.75), B (12.75), and C (9.75). These appear to be the strongest candidates for active effects.
This is a tentative graphical conclusion. The unreplicated design provides no pure-error estimate for a conventional significance test.
b. Block Test
block_means <- tapply(dat$life, dat$block2, mean)
block_means
## Block 1 Block 2
## 44.25 37.50
block_effect
## [1] -6.75
The block means are 44.25 and 37.50 hours, giving a difference of -6.75 hours for Block 2 minus Block 1.
The block/ABC contrast is smaller than the three largest treatment effects and does not clearly stand out as an active effect. Therefore, there is no clear graphical evidence of a strong block effect. A formal significance conclusion cannot be made without an error estimate and an assumption about the ABC interaction.