A rocket propellant manufacturer is studying the burning rate of propellant from three production processes. Four batches of propellant are randomly selected from the output of each process, and three determinations of the burning rate are made on each batch. The results follow.
For this we first write the model equation:
\[ Y_{ijk}= \mu + \alpha_i+ \beta_{j(i)} + \epsilon_{ijk} \]
We state the hypothesis tests:
\[H_o: \alpha_i=0\]
\[ H_a:\alpha_i\not=0 \]
\[ H_o: {\sigma_\beta}^2=0 \]
\[ H_a: {\sigma_\beta}^2\not=0 \]
We will first input the data from the table that we are given:
process<- c(rep(1,4),rep(2,4),rep(3,4),rep(1,4),rep(2,4),rep(3,4),rep(1,4),rep(2,4),rep(3,4))
batch<- rep(seq(1,4),9)
obs<- c(25,19,15,15,29,23,28,35,24,35,38,25,30,28,17,16,27,24,21,27,25,21,34,29,26,20,14,13,24,21,27,25,20,24,30,33)
library(GAD)
## Loading required package: matrixStats
## Loading required package: R.methodsS3
## R.methodsS3 v1.8.2 (2022-06-13 22:00:14 UTC) successfully loaded. See ?R.methodsS3 for help.
Once the data is done to input we will start with the analysis:
process<-as.fixed(process)
batch<-as.random(batch)
data<-data.frame(process,batch,obs)
data
## process batch obs
## 1 1 1 25
## 2 1 2 19
## 3 1 3 15
## 4 1 4 15
## 5 2 1 29
## 6 2 2 23
## 7 2 3 28
## 8 2 4 35
## 9 3 1 24
## 10 3 2 35
## 11 3 3 38
## 12 3 4 25
## 13 1 1 30
## 14 1 2 28
## 15 1 3 17
## 16 1 4 16
## 17 2 1 27
## 18 2 2 24
## 19 2 3 21
## 20 2 4 27
## 21 3 1 25
## 22 3 2 21
## 23 3 3 34
## 24 3 4 29
## 25 1 1 26
## 26 1 2 20
## 27 1 3 14
## 28 1 4 13
## 29 2 1 24
## 30 2 2 21
## 31 2 3 27
## 32 2 4 25
## 33 3 1 20
## 34 3 2 24
## 35 3 3 30
## 36 3 4 33
model<-lm(obs~process+batch%in%process)
gad(model)
## Analysis of Variance Table
##
## Response: obs
## Df Sum Sq Mean Sq F value Pr(>F)
## process 2 446.06 223.028 3.5365 0.073563 .
## process:batch 9 567.58 63.065 4.1965 0.002349 **
## Residual 24 360.67 15.028
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
We can see the p-values clearly from the above table, we will show more by plotting some graphs.
plot(model)
summary(model)
##
## Call:
## lm(formula = obs ~ process + batch %in% process)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.667 -2.417 0.000 1.750 8.333
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 27.0000 2.2381 12.064 1.12e-11 ***
## process2 -0.3333 3.1652 -0.105 0.917004
## process3 -4.0000 3.1652 -1.264 0.218461
## process1:batch2 -4.6667 3.1652 -1.474 0.153381
## process2:batch2 -4.0000 3.1652 -1.264 0.218461
## process3:batch2 3.6667 3.1652 1.158 0.258086
## process1:batch3 -11.6667 3.1652 -3.686 0.001160 **
## process2:batch3 -1.3333 3.1652 -0.421 0.677323
## process3:batch3 11.0000 3.1652 3.475 0.001958 **
## process1:batch4 -12.3333 3.1652 -3.897 0.000684 ***
## process2:batch4 2.3333 3.1652 0.737 0.468158
## process3:batch4 6.0000 3.1652 1.896 0.070117 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.877 on 24 degrees of freedom
## Multiple R-squared: 0.7376, Adjusted R-squared: 0.6173
## F-statistic: 6.132 on 11 and 24 DF, p-value: 0.0001051
From the graph of theoretical quantiles we can conclude by looking at the points that the data is fairly normal and some of the points are at some of the extreme point.