library(readr)
df <- read.csv("https://raw.githubusercontent.com/tmatis12/datafiles/main/PowderProduction.csv")
\[ y_{ijkl}: \mu + \alpha_{i} + \beta_{j}+ \gamma_{k}+ \alpha \beta_{ij} + \alpha \gamma_{ik} + \beta \gamma_{jk} + \alpha \beta \gamma_{ijk} + \epsilon_{ijkl} \]
1.( b ) Considering the Factors as fixed effects.
library(GAD)
df$Ammonium <- as.fixed(df$Ammonium)
df$StirRate <- as.fixed(df$StirRate)
df$Temperature <- as.fixed(df$Temperature)
df
## 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
## 7 30 150 8 12.46
## 8 30 150 8 12.62
## 9 2 100 40 10.95
## 10 2 100 40 17.68
## 11 30 100 40 12.65
## 12 30 100 40 15.96
## 13 2 150 40 8.03
## 14 2 150 40 8.84
## 15 30 150 40 14.96
## 16 30 150 40 14.96
Model 1 (Considering 3 factors interaction)
model<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate + Ammonium*Temperature + StirRate*Temperature + StirRate*Ammonium*Temperature, data=df)
summary(model)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ammonium 1 44.39 44.39 11.180 0.01018 *
## StirRate 1 70.69 70.69 17.804 0.00292 **
## Temperature 1 0.33 0.33 0.083 0.78117
## Ammonium:StirRate 1 28.12 28.12 7.082 0.02875 *
## Ammonium:Temperature 1 0.02 0.02 0.005 0.94281
## StirRate:Temperature 1 10.13 10.13 2.551 0.14889
## Ammonium:StirRate:Temperature 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
According to the given alpha value = 0.05, the three factor interaction term is insignificant so we are dropping it from further analysis.
Model 2 (Now 2 factors dropping one)
model2<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate + Ammonium*Temperature + StirRate*Temperature, data=df)
summary(model2)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ammonium 1 44.39 44.39 12.004 0.00711 **
## StirRate 1 70.69 70.69 19.115 0.00179 **
## Temperature 1 0.33 0.33 0.089 0.77268
## Ammonium:StirRate 1 28.12 28.12 7.603 0.02221 *
## Ammonium:Temperature 1 0.02 0.02 0.006 0.94054
## StirRate:Temperature 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
According to the given alpha value = 0.05, the two factor interaction term of ammonium and temperature is insignificant so we are dropping it from further analysis.
Model 3
model3<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate + StirRate*Temperature, data=df)
summary(model3)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ammonium 1 44.39 44.39 13.329 0.00446 **
## StirRate 1 70.69 70.69 21.225 0.00097 ***
## Temperature 1 0.33 0.33 0.098 0.76019
## Ammonium:StirRate 1 28.12 28.12 8.443 0.01568 *
## StirRate:Temperature 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
According to the given alpha value = 0.05, the two factor interaction term of stir rate and temperature is insignificant so we are dropping it from further analysis.
Model 4
model4<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate, data=df)
summary(model4)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ammonium 1 44.39 44.39 11.242 0.00644 **
## StirRate 1 70.69 70.69 17.903 0.00141 **
## Temperature 1 0.33 0.33 0.083 0.77861
## Ammonium:StirRate 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
According to the given alpha value = 0.05, main factor of temperature is insignificant so we are dropping it from further analysis.
Model 5
model5<-aov(Density ~ Ammonium + StirRate
+ Ammonium*StirRate, data=df)
summary(model5)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ammonium 1 44.39 44.39 12.17 0.004472 **
## StirRate 1 70.69 70.69 19.38 0.000861 ***
## Ammonium:StirRate 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
So, the significant factors are Ammonium, Stir rate and ammonium stir rate interaction term are significant.
interaction.plot(df$Ammonium,df$StirRate,df$Density)
Conclusion : We can see from the interaction plot also that ammonium
and density are significant factors.
position=c(1,2)
temperature=c(800,825,850)
df1<- expand.grid(position,temperature)
df1
## Var1 Var2
## 1 1 800
## 2 2 800
## 3 1 825
## 4 2 825
## 5 1 850
## 6 2 850
df2 <- rbind(df1,df1,df1)
df2
## Var1 Var2
## 1 1 800
## 2 2 800
## 3 1 825
## 4 2 825
## 5 1 850
## 6 2 850
## 7 1 800
## 8 2 800
## 9 1 825
## 10 2 825
## 11 1 850
## 12 2 850
## 13 1 800
## 14 2 800
## 15 1 825
## 16 2 825
## 17 1 850
## 18 2 850
colnames(df2) <- c("Position","Temperature")
df2
## Position Temperature
## 1 1 800
## 2 2 800
## 3 1 825
## 4 2 825
## 5 1 850
## 6 2 850
## 7 1 800
## 8 2 800
## 9 1 825
## 10 2 825
## 11 1 850
## 12 2 850
## 13 1 800
## 14 2 800
## 15 1 825
## 16 2 825
## 17 1 850
## 18 2 850
df2$Response <- c(570, 528, 1063, 988, 565, 526,
565, 547, 1080, 1026, 510, 538,
583, 521, 1043, 1004, 590, 532)
df2
## Position Temperature Response
## 1 1 800 570
## 2 2 800 528
## 3 1 825 1063
## 4 2 825 988
## 5 1 850 565
## 6 2 850 526
## 7 1 800 565
## 8 2 800 547
## 9 1 825 1080
## 10 2 825 1026
## 11 1 850 510
## 12 2 850 538
## 13 1 800 583
## 14 2 800 521
## 15 1 825 1043
## 16 2 825 1004
## 17 1 850 590
## 18 2 850 532
2. ( a ) Assuming Both Temperature and Position are fixed Effects
df2$Position <- as.fixed(df2$Position)
df2$Temperature <- as.fixed(df2$Temperature)
model2a <- aov(Response~Position + Temperature + Position*Temperature, data=df2)
GAD::gad(model2a)
## $anova
## Analysis of Variance Table
##
## Response: Response
## Df Sum Sq Mean Sq F value Pr(>F)
## Position 1 7160 7160 15.998 0.001762 **
## Temperature 2 945342 472671 1056.117 3.25e-14 ***
## Position:Temperature 2 818 409 0.914 0.427110
## Residuals 12 5371 448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(model2a)
## Df Sum Sq Mean Sq F value Pr(>F)
## Position 1 7160 7160 15.998 0.00176 **
## Temperature 2 945342 472671 1056.117 3.25e-14 ***
## Position:Temperature 2 818 409 0.914 0.42711
## Residuals 12 5371 448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
a. The P values are Position = 0.001 , Temperature = 3.25e-14 , Position: Temperature = 0.0427
df3 <- df2
df3$Position <- as.random(df3$Position)
df3$Temperature <- as.random(df3$Temperature)
model3a <- aov(Response~Position + Temperature + Position*Temperature, data=df3)
GAD::gad(model3a)
## $anova
## Analysis of Variance Table
##
## Response: Response
## Df Sum Sq Mean Sq F value Pr(>F)
## Position 1 7160 7160 17.504 0.0526583 .
## Temperature 2 945342 472671 1155.518 0.0008647 ***
## Position:Temperature 2 818 409 0.914 0.4271101
## Residuals 12 5371 448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(model3a)
## Df Sum Sq Mean Sq F value Pr(>F)
## Position 1 7160 7160 15.998 0.00176 **
## Temperature 2 945342 472671 1056.117 3.25e-14 ***
## Position:Temperature 2 818 409 0.914 0.42711
## Residuals 12 5371 448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
b. The P values are Position = 0.052 , Temperature = 0.00086 , Position: Temperature = 0.0427
df4 <- df2
df4$Position <- as.fixed(df4$Position)
df4$Temperature <- as.random(df4$Temperature)
model4a <- aov(Response~Position + Temperature + Position*Temperature, data=df3)
GAD::gad(model4a)
## $anova
## Analysis of Variance Table
##
## Response: Response
## Df Sum Sq Mean Sq F value Pr(>F)
## Position 1 7160 7160 17.504 0.0526583 .
## Temperature 2 945342 472671 1155.518 0.0008647 ***
## Position:Temperature 2 818 409 0.914 0.4271101
## Residuals 12 5371 448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(model4a)
## Df Sum Sq Mean Sq F value Pr(>F)
## Position 1 7160 7160 15.998 0.00176 **
## Temperature 2 945342 472671 1056.117 3.25e-14 ***
## Position:Temperature 2 818 409 0.914 0.42711
## Residuals 12 5371 448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
c. The P values are Position = 0.052 , Temperature = 0.00086 ,
Position: Temperature = 0.0427
d. F-statistics is calculated using residual error as denominator in the
case of fixed effect model.
F-statistics is calculated using interaction in denominator in the case
of random effect model.
Therefore, the changing F-statistics resulted in changing P-values.
library(readr)
df <- read.csv("https://raw.githubusercontent.com/tmatis12/datafiles/main/PowderProduction.csv")
library(GAD)
df$Ammonium <- as.fixed(df$Ammonium)
df$StirRate <- as.fixed(df$StirRate)
df$Temperature <- as.fixed(df$Temperature)
df
model<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate + Ammonium*Temperature + StirRate*Temperature + StirRate*Ammonium*Temperature, data=df)
summary(model)
model2<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate + Ammonium*Temperature + StirRate*Temperature, data=df)
summary(model2)
model3<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate + StirRate*Temperature, data=df)
summary(model3)
model4<-aov(Density ~ Ammonium + StirRate + Temperature
+ Ammonium*StirRate, data=df)
summary(model4)
model5<-aov(Density ~ Ammonium + StirRate
+ Ammonium*StirRate, data=df)
summary(model5)
interaction.plot(df$Ammonium,df$StirRate,df$Density)
position=c(1,2)
temperature=c(800,825,850)
df1<- expand.grid(position,temperature)
df1
df2 <- rbind(df1,df1,df1)
df2
colnames(df2) <- c("Position","Temperature")
df2
df2$Response <- c(570, 528, 1063, 988, 565, 526,
565, 547, 1080, 1026, 510, 538,
583, 521, 1043, 1004, 590, 532)
df2
df2$Position <- as.fixed(df2$Position)
df2$Temperature <- as.fixed(df2$Temperature)
model2a <- aov(Response~Position + Temperature + Position*Temperature, data=df2)
GAD::gad(model2a)
summary(model2a)
df3 <- df2
df3$Position <- as.random(df3$Position)
df3$Temperature <- as.random(df3$Temperature)
model3a <- aov(Response~Position + Temperature + Position*Temperature, data=df3)
GAD::gad(model3a)
summary(model3a)
df4 <- df2
df4$Position <- as.fixed(df4$Position)
df4$Temperature <- as.random(df4$Temperature)
model4a <- aov(Response~Position + Temperature + Position*Temperature, data=df3)
GAD::gad(model4a)
summary(model4a)