1. Two blocks

(a)

I would confound ABC with blocks.

(b)

Block ABC Treatments
1 -1 (1), ab, ac, bc
2 +1 a, b, c, abc

We can assign runs using the sign of ABC, and Randomize the run order within each block.

2. Four blocks

(a)

We can use AB and AC as the block generators. Their product is BC, so AB, AC, and BC are confounded with blocks. This preserves the three main effects.

(b)

Group treatments by their AB and AC signs:

Block AB AC Treatments
1 +1 +1 (1), abc
2 -1 -1 a, bc
3 -1 +1 b, ac
4 +1 -1 ab, c

Randomize the run order within each block.

3. Half-normal plot

A <-c(-1, 1, -1, 1, -1, 1, -1, 1)
B <-c(-1, -1, 1, 1, -1, -1, 1, 1)
C <-c(-1, -1, -1, -1, 1, 1, 1, 1)
life <- c(22, 32, 35, 55, 44, 40, 60, 39)
block <- factor(c(1, 2, 2, 1, 2, 1, 1, 2))
signs <- cbind(A, B, C, A*B, A*C, B*C, A*B*C)
effects <- as.vector(t(signs) %*% life / 4)
names(effects) <- c("A", "B", "C", "AB", "AC", "BC", "Block (ABC)")
effects
##           A           B           C          AB          AC          BC 
##        1.25       12.75        9.75       -1.75      -13.75       -5.25 
## Block (ABC) 
##       -6.75
ordered <- sort(abs(effects))
n <- length(ordered)
expected <- qnorm((1 + ppoints(n, a = 0.5)) / 2)
plot(expected, ordered, pch = 19,
     xlab = "Expected half-normal quantile",
     ylab = "Absolute effect (in hours)",
     main = "Half-normal plot of effects")
text(expected, ordered, labels = names(ordered), pos = 3)

(a)

The plot does not clearly show us which effect is significant. We can see that AC, B and C have the largest absolute effects.

(b)

The block does not appear to be properly significant. Its absolute effect is 6.75 hours and does not stand out.