dataframe <-data.frame(
effect=c(23,24,25,36,35,36,28,24,27,27,28,26,34,38,39,35,35,34,31,32,29,33,34,35,26,27,25,24,23,28,37,39,35,26,29,25,38,36,35,34,38,36,36,37,34,34,36,39,34,36,31,28,26,24),
Temperature=gl(2,27,54),
operator=gl(3,9,54),
Time=gl(3,3,54))
summary (dataframe)
dataframe.aov2 <- aov(effect~Time*operator*Temperature,data=dataframe)
summary (dataframe.aov2)
> summary (dataframe.aov2)
Df Sum Sq Mean Sq F value Pr(>F)
Time 2 436.0 218.00 66.508 8.14e-13 ***
operator 2 261.3 130.67 39.864 7.44e-10 ***
Temperature 1 50.1 50.07 15.277 0.000393 ***
Time:operator 4 355.7 88.92 27.127 1.98e-10 ***
Time:Temperature 2 78.8 39.41 12.023 0.000100 ***
operator:Temperature 2 11.3 5.63 1.718 0.193895
Time:operator:Temperature 4 46.2 11.55 3.523 0.015870 *
Residuals 36 118.0 3.28
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
par(mfrow=c(2,2))
with(dataframe,interaction.plot(Temperature,operator,effect,type="b",pch=19,fixed=T,xlab="Temperature (°F)",ylab="effect"))
with(dataframe,interaction.plot(Temperature,Time,effect,type="b",pch=19,fixed=T,xlab="Temperature (°F)",ylab="effect"))
with(dataframe,interaction.plot(operator,Time,effect,type="b",pch=19,fixed=T,xlab="operator)",ylab="effect"))
plot.design(effect~operator*Temperature*Time,data=dataframe)
fit <-lm(effect ~ operator*Temperature*Time,data=dataframe)
anova(fit)
summary(fit)
> summary(fit)
Call:
lm(formula = effect ~ operator * Temperature * Time, data = dataframe)
Residuals:
Min 1Q Median 3Q Max
-3 -1 0 1 3
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 24.0000 1.0453 22.961 < 2e-16 ***
operator2 3.0000 1.4782 2.029 0.049856 *
operator3 6.6667 1.4782 4.510 6.65e-05 ***
Temperature2 1.0000 1.4782 0.676 0.503059
Time2 11.6667 1.4782 7.892 2.30e-09 ***
Time3 2.3333 1.4782 1.578 0.123209
operator2:Temperature2 8.3333 2.0905 3.986 0.000314 ***
operator3:Temperature2 4.6667 2.0905 2.232 0.031909 *
operator2:Time2 -1.6667 2.0905 -0.797 0.430538
operator3:Time2 -8.3333 2.0905 -3.986 0.000314 ***
operator2:Time3 5.3333 2.0905 2.551 0.015130 *
operator3:Time3 -7.0000 2.0905 -3.348 0.001915 **
Temperature2:Time2 0.3333 2.0905 0.159 0.874207
Temperature2:Time3 -0.6667 2.0905 -0.319 0.751648
operator2:Temperature2:Time2 -10.6667 2.9565 -3.608 0.000930 ***
operator3:Temperature2:Time2 -6.3333 2.9565 -2.142 0.039015 *
operator2:Temperature2:Time3 -7.6667 2.9565 -2.593 0.013661 *
operator3:Temperature2:Time3 -5.0000 2.9565 -1.691 0.099439 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.81 on 36 degrees of freedom
Multiple R-squared: 0.9131, Adjusted R-squared: 0.872
F-statistic: 22.24 on 17 and 36 DF, p-value: 3.701e-14
par(mfrow=c(2,2))
plot(fit)
par(mfrow=c(2,2))
plot(as.numeric(dataframe$Time), fit$residuals, xlab="Time", ylab="Residuals", type="p", pch=16)
plot(as.numeric(dataframe $Temperature), fit$residuals, xlab="Temperature", ylab="Residuals", pch=16)
plot(as.numeric(dataframe $operator), fit$residuals, xlab="operator", ylab="Residuals", pch=16)