A <- c(-1, 1, -1, 1)
B <- c(-1, -1, 1, 1)
C <- A * B
P1 <- c(129, 189, 132, 39)
P2 <- c(163, 224, 83, 27)
P3 <- c(117, 278, 89, 51)
df <- data.frame(A, B, C, P1, P2, P3)
df$Y <- rowMeans(df[, c("P1","P2","P3")])
df$Y
## [1] 136.3333 230.3333 101.3333 39.0000
contrast <- function(factor, y) sum(factor * y)
K_A <- contrast(df$A, df$Y)
K_B <- contrast(df$B, df$Y)
K_C <- contrast(df$C, df$Y)
K_A; K_B; K_C
## [1] 31.66667
## [1] -226.3333
## [1] -156.3333
Ef_A <- K_A / 4
Ef_B <- K_B / 4
Ef_C <- K_C / 4
Ef_A
## [1] 7.916667
Ef_B
## [1] -56.58333
Ef_C
## [1] -39.08333
rep <- 3
SS_A <- (K_A^2 / 4) * rep
SS_B <- (K_B^2 / 4) * rep
SS_C <- (K_C^2 / 4) * rep
SS_A
## [1] 752.0833
SS_B
## [1] 38420.08
SS_C
## [1] 18330.08
raw <- c(P1, P2, P3)
SS_total <- sum((raw - mean(raw))^2)
SS_total
## [1] 64378.25
SS_error <- SS_total - (SS_A + SS_B + SS_C)
SS_error
## [1] 6876
ANOVA <- data.frame(
Source = c("A","B","C","Error","Total"),
SS = c(SS_A, SS_B, SS_C, SS_error, SS_total),
DF = c(1, 1, 1, 8, 11)
)
ANOVA$MS <- ANOVA$SS / ANOVA$DF
ANOVA$Fvalue <- ANOVA$MS / ANOVA$MS[4]
ANOVA
## Source SS DF MS Fvalue
## 1 A 752.0833 1 752.0833 0.8750242
## 2 B 38420.0833 1 38420.0833 44.7005042
## 3 C 18330.0833 1 18330.0833 21.3264495
## 4 Error 6876.0000 8 859.5000 1.0000000
## 5 Total 64378.2500 11 5852.5682 6.8092707
den <- SS_A + SS_B + SS_C
Percent <- (c(SS_A, SS_B, SS_C) / den) * 100
names(Percent) <- c("A","B","C")
round(Percent, 2)
## A B C
## 1.31 66.81 31.88