Process <- rep(c(rep(1,4),rep(2,4),rep(3,4)),3)
Batch <- rep(seq(1,4),9)
Obs1 <- c(25,19,15,15,19,23,18,35,14,35,38,25)
Obs2 <- c(30,28,17,16,17,24,21,27,15,21,54,29)
Obs3 <- c(26,20,14,13,14,21,17,25,20,24,50,33)
Obs <- c(Obs1,Obs2,Obs3)
Table <- data.frame(Process, Batch, Obs)
library(GAD)
## 载入需要的程辑包:matrixStats
## 载入需要的程辑包:R.methodsS3
## R.methodsS3 v1.8.1 (2020-08-26 16:20:06 UTC) successfully loaded. See ?R.methodsS3 for help.
Process <- as.fixed(Process)
Batch <- as.random(Batch)
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  676.06  338.03  1.4643    0.2815    
## Process:Batch  9 2077.58  230.84 12.2031 5.477e-07 ***
## Residual      24  454.00   18.92                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

\(\overline{y_{ijk}}=\mu+\alpha_{i}+\beta_{j(i)}+\epsilon_{ijk}\)

\(H_{0}\): \(\alpha_{i}=0\), all i

\(H_{1}\): \(\alpha_{i}\neq0\), some i

\(H_{0}\): \(\beta_{j(i)}=0\), all j in i

\(H_{1}\): \(\beta_{j(i)}\neq0\), some j in i

Conclusion: P(Batch nested in Process)=5.477e-07<0.05, we reject the null hypothesis, the effect by Batch nested in Process significantly does affect means.

P(Process)=0.2815>0.05, we do not reject the null hypothesis, the effect by Process significantly does not affect means.

Raw code

Process <- rep(c(rep(1,4),rep(2,4),rep(3,4)),3)
Batch <- rep(seq(1,4),9)
Obs1 <- c(25,19,15,15,19,23,18,35,14,35,38,25)
Obs2 <- c(30,28,17,16,17,24,21,27,15,21,54,29)
Obs3 <- c(26,20,14,13,14,21,17,25,20,24,50,33)
Obs <- c(Obs1,Obs2,Obs3)
Table <- data.frame(Process, Batch, Obs)
library(GAD)
Process <- as.fixed(Process)
Batch <- as.random(Batch)
model <- lm(Obs~Process+Batch%in%Process)
gad(model)