本文是實驗設計與分析(第6版,Montgomery著,傅玨生譯) 第5章析因設計引導5.7節思考題5.5 R語言解題。主要涉及方差分析,正態假設檢驗,殘差分析,交互作用圖。
dataframe <-data.frame(
wrap=c(17,20,12,9,16,12,21,17,16,21,18,13,18,21,23,21,24,22,17,12,25,23,23,22,28,27,27,31,30,23,29,31),
Temperature=gl(4,2,32),
copper=gl(4,8, 32))
summary (dataframe)
dataframe.aov2 <- aov(wrap~copper*Temperature,data=dataframe)
summary (dataframe.aov2)
> summary (dataframe.aov2)
?????????????????? Df Sum Sq Mean Sq F value?? Pr(>F)???
copper????????????? 3? 698.3? 232.78? 34.327 3.35e-07 ***
Temperature???????? 3? 156.1?? 52.03?? 7.673? 0.00213 **
copper:Temperature? 9? 113.8?? 12.64?? 1.864? 0.13275???
Residuals????????? 16? 108.5??? 6.78????????????????????
---
Signif. codes:? 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
with(dataframe,interaction.plot(Temperature,copper,wrap,type="b",pch=19,fixed=T,xlab="Temperature (°F)",ylab="wrap"))
plot.design(wrap~copper*Temperature,data=dataframe)
fit <-lm(wrap~copper*Temperature,data=dataframe)
anova(fit)
> anova(fit)
Analysis of Variance Table
Response: wrap
?????????????????? Df Sum Sq Mean Sq F value?? Pr(>F)???
copper????????????? 3 698.34 232.781 34.3272 3.35e-07 ***
Temperature???????? 3 156.09? 52.031? 7.6728 0.002127 **
copper:Temperature? 9 113.78? 12.642? 1.8643 0.132748???
Residuals????????? 16 108.50?? 6.781????????????????????
---
Signif. codes:? 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
summary(fit)
> summary(fit)
Call:
lm(formula = wrap ~ copper * Temperature, data = dataframe)
Residuals:
?? Min???? 1Q Median???? 3Q??? Max
? -3.5?? -1.5??? 0.0??? 1.5??? 3.5
Coefficients:
?????????????????????? Estimate Std. Error t value Pr(>|t|)???
(Intercept)?????????? 1.850e+01? 1.841e+00? 10.047 2.57e-08 ***
copper2?????????????? 8.521e-15? 2.604e+00?? 0.000? 1.00000???
copper3?????????????? 4.500e+00? 2.604e+00?? 1.728? 0.10323???
copper4?????????????? 9.000e+00? 2.604e+00?? 3.456? 0.00325 **
Temperature2???????? -8.000e+00? 2.604e+00? -3.072? 0.00729 **
Temperature3???????? -4.500e+00? 2.604e+00? -1.728? 0.10323???
Temperature4????????? 5.000e-01? 2.604e+00?? 0.192? 0.85015???
copper2:Temperature2? 5.000e+00? 3.683e+00?? 1.358? 0.19340???
copper3:Temperature2 -5.000e-01? 3.683e+00? -0.136? 0.89370???
copper4:Temperature2? 9.500e+00? 3.683e+00?? 2.580? 0.02016 *?
copper2:Temperature3? 5.500e+00? 3.683e+00?? 1.493? 0.15477???
copper3:Temperature3? 5.500e+00? 3.683e+00?? 1.493? 0.15477???
copper4:Temperature3? 3.500e+00? 3.683e+00?? 0.950? 0.35605???
copper2:Temperature4? 3.000e+00? 3.683e+00?? 0.815? 0.42725???
copper3:Temperature4 -1.000e+00? 3.683e+00? -0.272? 0.78945???
copper4:Temperature4? 2.000e+00? 3.683e+00?? 0.543? 0.59456???
---
Signif. codes:? 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.604 on 16 degrees of freedom
Multiple R-squared:? 0.8992,??? Adjusted R-squared:? 0.8048
F-statistic: 9.519 on 15 and 16 DF,? p-value: 2.57e-05
par(mfrow=c(2,2))
plot(fit)
par(mfrow=c(2,2))
plot(as.numeric(dataframe$copper), fit$residuals, xlab="copper", ylab="Residuals", type="p", pch=16)
plot(as.numeric(dataframe$Temperature), fit$residuals, xlab="Temperature", ylab="Residuals", pch=16)