The full \(2^3\) factorial linear effects model:
\[ y_{ijkl}=\mu+\alpha_i+\beta_j+\gamma_k+\alpha\beta_{ij}+\alpha\gamma_{ik}+\beta\gamma_{jk}+\alpha\beta\gamma_{ijk}+\epsilon_{ijkl} \]
where:
\(\mu\) is the overall mean
\(\alpha_i\) is the Ammonium effect
\(\beta_j\) is the Stir Rate effect
\(\gamma_k\) is the Temperature effect
The remaining terms are the two-way and three-way interactions
\(\epsilon_{ijkl}\) is the random error.
i, j, k = 1,2
l = 1,2
dat1<-read.csv("https://raw.githubusercontent.com/tmatis12/datafiles/main/PowderProduction.csv")
names(dat1)
## [1] "Ammonium" "StirRate" "Temperature" "Density"
head(dat1)
## Ammonium StirRate Temperature Density
## 1 2 100 8 14.68
## 2 2 100 8 15.18
## 3 30 100 8 15.12
## 4 30 100 8 17.48
## 5 2 150 8 7.54
## 6 2 150 8 6.66
names(dat1)[1:4]<-c("ammonium","stir","temp","density")
dat1$ammonium<-factor(dat1$ammonium)
dat1$stir<-factor(dat1$stir)
dat1$temp<-factor(dat1$temp)
full.model<-aov(density~ammonium*stir*temp,data=dat1)
summary(full.model)
## Df Sum Sq Mean Sq F value Pr(>F)
## ammonium 1 44.39 44.39 11.180 0.01018 *
## stir 1 70.69 70.69 17.804 0.00292 **
## temp 1 0.33 0.33 0.083 0.78117
## ammonium:stir 1 28.12 28.12 7.082 0.02875 *
## ammonium:temp 1 0.02 0.02 0.005 0.94281
## stir:temp 1 10.13 10.13 2.551 0.14889
## ammonium:stir:temp 1 1.52 1.52 0.383 0.55341
## Residuals 8 31.76 3.97
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
At \(\alpha=0.05\), Ammonium, Stir Rate, and the Ammonium:Stir interaction are significant in the full model. Temp, Ammonium:Temp, Stir:Temp, and the three-way interaction are not significant.
interaction.plot(dat1$ammonium,dat1$stir,dat1$density,
xlab="Ammonium (%)",trace.label="Stir Rate (RPM)",
ylab="Mean Density",main="Ammonium*Stir Rate")
interaction.plot(dat1$ammonium,dat1$temp,dat1$density,
xlab="Ammonium (%)",trace.label="Temp (C)",
ylab="Mean Density",main="Ammonium*Temp")
interaction.plot(dat1$stir,dat1$temp,dat1$density,
xlab="Stir Rate (RPM)",trace.label="Temp (C)",
ylab="Mean Density",main="Stir Rate*Temp")
The three-way interaction is removed first because its p-value is greater than 0.05. The nonsignificant two-way interactions are then removed, followed by Temp. Ammonium and Stir Rate are retained because their interaction is significant The significant Ammonium:Stir interaction indicates that the effect of Ammonium on density depends on the Stir Rate.
model.2<-aov(density~ammonium+stir+temp+ammonium:stir+ammonium:temp+stir:temp,data=dat1)
summary(model.2)
## Df Sum Sq Mean Sq F value Pr(>F)
## ammonium 1 44.39 44.39 12.004 0.00711 **
## stir 1 70.69 70.69 19.115 0.00179 **
## temp 1 0.33 0.33 0.089 0.77268
## ammonium:stir 1 28.12 28.12 7.603 0.02221 *
## ammonium:temp 1 0.02 0.02 0.006 0.94054
## stir:temp 1 10.13 10.13 2.739 0.13232
## Residuals 9 33.28 3.70
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model.3<-aov(density~ammonium+stir+temp+ammonium:stir+stir:temp,data=dat1)
summary(model.3)
## Df Sum Sq Mean Sq F value Pr(>F)
## ammonium 1 44.39 44.39 13.329 0.00446 **
## stir 1 70.69 70.69 21.225 0.00097 ***
## temp 1 0.33 0.33 0.098 0.76019
## ammonium:stir 1 28.12 28.12 8.443 0.01568 *
## stir:temp 1 10.13 10.13 3.041 0.11178
## Residuals 10 33.30 3.33
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model.4<-aov(density~ammonium+stir+temp+ammonium:stir,data=dat1)
summary(model.4)
## Df Sum Sq Mean Sq F value Pr(>F)
## ammonium 1 44.39 44.39 11.242 0.00644 **
## stir 1 70.69 70.69 17.903 0.00141 **
## temp 1 0.33 0.33 0.083 0.77861
## ammonium:stir 1 28.12 28.12 7.121 0.02185 *
## Residuals 11 43.43 3.95
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
final.model<-aov(density~ammonium*stir,data=dat1)
summary(final.model)
## Df Sum Sq Mean Sq F value Pr(>F)
## ammonium 1 44.39 44.39 12.17 0.004472 **
## stir 1 70.69 70.69 19.38 0.000861 ***
## ammonium:stir 1 28.12 28.12 7.71 0.016751 *
## Residuals 12 43.76 3.65
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
The final significant terms are Ammonium (\(p\approx0.004472\)), Stir Rate (\(p\approx0.000861\)), and Ammonium:Stir (\(p\approx0.016751\)). All three p-values are less than 0.05. The final model is:
\[ y_{ijl}=\mu+\alpha_i+\beta_j+\alpha\beta_{ij}+\epsilon_{ijl} \]
There are \(2^3=8\) treatment combinations and 3 replications, giving \(8(3)=24\) experimental units. Each block contains all eight combinations in randomized order.
library(agricolae)
layout<-design.ab(trt=c(2,2,2),r=3,design="rcbd",seed=4321)
layout$book
## plots block A B C
## 1 101 1 1 2 2
## 2 102 1 1 1 1
## 3 103 1 1 1 2
## 4 104 1 1 2 1
## 5 105 1 2 2 1
## 6 106 1 2 1 2
## 7 107 1 2 2 2
## 8 108 1 2 1 1
## 9 109 2 2 2 1
## 10 110 2 1 2 2
## 11 111 2 2 1 2
## 12 112 2 1 1 1
## 13 113 2 2 2 2
## 14 114 2 1 1 2
## 15 115 2 1 2 1
## 16 116 2 2 1 1
## 17 117 3 2 1 2
## 18 118 3 2 2 1
## 19 119 3 1 1 1
## 20 120 3 1 2 1
## 21 121 3 1 2 2
## 22 122 3 2 1 1
## 23 123 3 2 2 2
## 24 124 3 1 1 2
dat1<-read.csv("https://raw.githubusercontent.com/tmatis12/datafiles/main/PowderProduction.csv")
names(dat1)
head(dat1)
names(dat1)[1:4]<-c("ammonium","stir","temp","density")
dat1$ammonium<-factor(dat1$ammonium)
dat1$stir<-factor(dat1$stir)
dat1$temp<-factor(dat1$temp)
full.model<-aov(density~ammonium*stir*temp,data=dat1)
summary(full.model)
interaction.plot(dat1$ammonium,dat1$stir,dat1$density,
xlab="Ammonium (%)",trace.label="Stir Rate (RPM)",
ylab="Mean Density",main="Ammonium*Stir Rate")
interaction.plot(dat1$ammonium,dat1$temp,dat1$density,
xlab="Ammonium (%)",trace.label="Temp (C)",
ylab="Mean Density",main="Ammonium*Temp")
interaction.plot(dat1$stir,dat1$temp,dat1$density,
xlab="Stir Rate (RPM)",trace.label="Temp (C)",
ylab="Mean Density",main="Stir Rate*Temp")
model.2<-aov(density~ammonium+stir+temp+ammonium:stir+ammonium:temp+stir:temp,data=dat1)
summary(model.2)
model.3<-aov(density~ammonium+stir+temp+ammonium:stir+stir:temp,data=dat1)
summary(model.3)
model.4<-aov(density~ammonium+stir+temp+ammonium:stir,data=dat1)
summary(model.4)
final.model<-aov(density~ammonium*stir,data=dat1)
summary(final.model)
library(agricolae)
layout<-design.ab(trt=c(2,2,2),r=3,design="rcbd",seed=4321)
layout$book