karakteristik <- c(14,12,13,11,17,14,11,12,14,13,11,10,13,13,12,12,12,10,9,8)
aditif <- factor(c(2,3,4,5,1,2,4,5,1,3,4,5,1,2,3,4,1,2,3,5))
mobil <- factor(c(rep(1,4),rep(2,4),rep(3,4),rep(4,4), rep(5,4)))
dat <- data.frame(karakteristik,aditif,mobil)
dat
##    karakteristik aditif mobil
## 1             14      2     1
## 2             12      3     1
## 3             13      4     1
## 4             11      5     1
## 5             17      1     2
## 6             14      2     2
## 7             11      4     2
## 8             12      5     2
## 9             14      1     3
## 10            13      3     3
## 11            11      4     3
## 12            10      5     3
## 13            13      1     4
## 14            13      2     4
## 15            12      3     4
## 16            12      4     4
## 17            12      1     5
## 18            10      2     5
## 19             9      3     5
## 20             8      5     5
#correct model
mod<-lm(karakteristik~mobil+aditif, data=dat)
anova(mod)
## Analysis of Variance Table
## 
## Response: karakteristik
##           Df Sum Sq Mean Sq F value   Pr(>F)   
## mobil      4 31.200  7.8000  8.5657 0.002158 **
## aditif     4 35.733  8.9333  9.8103 0.001247 **
## Residuals 11 10.017  0.9106                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
qf(0.95, df1=4, df2=7)
## [1] 4.120312
#p-value
1-pf(9.81, df1=4, df2=7)
## [1] 0.005359056
#Alternatif fungsi lm di R, dapat digunakan fungsi aov untuk memperoleh hasil analisis variansi dari BIBD
options(digits = 10)
mod2 <- aov(karakteristik~mobil+aditif)
summary(mod2)
##             Df   Sum Sq  Mean Sq F value    Pr(>F)   
## mobil        4 31.20000 7.800000 8.56572 0.0021578 **
## aditif       4 35.73333 8.933333 9.81032 0.0012467 **
## Residuals   11 10.01667 0.910606                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Interval kepercayaan 95% bagi Tau i - Tau j dengan prosedur tukey
qtukey(0.95,nmeans = 5, df = 11)
## [1] 4.573596254
library(multcomp)
## Warning: package 'multcomp' was built under R version 4.4.1
## Loading required package: mvtnorm
## Warning: package 'mvtnorm' was built under R version 4.4.1
## Loading required package: survival
## Loading required package: TH.data
## Warning: package 'TH.data' was built under R version 4.4.1
## Loading required package: MASS
## 
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
## 
##     geyser
contr <- glht(mod2, linfct = mcp(aditif = "Tukey"))
summary(contr)
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: aov(formula = karakteristik ~ mobil + aditif)
## 
## Linear Hypotheses:
##              Estimate Std. Error  t value  Pr(>|t|)    
## 2 - 1 == 0 -1.4666667  0.6968906 -2.10459 0.2837969    
## 3 - 1 == 0 -2.4000000  0.6968906 -3.44387 0.0355415 *  
## 4 - 1 == 0 -3.1333333  0.6968906 -4.49616 0.0065177 ** 
## 5 - 1 == 0 -4.0000000  0.6968906 -5.73978   < 0.001 ***
## 3 - 2 == 0 -0.9333333  0.6968906 -1.33928 0.6745762    
## 4 - 2 == 0 -1.6666667  0.6968906 -2.39158 0.1883599    
## 5 - 2 == 0 -2.5333333  0.6968906 -3.63519 0.0258461 *  
## 4 - 3 == 0 -0.7333333  0.6968906 -1.05229 0.8262270    
## 5 - 3 == 0 -1.6000000  0.6968906 -2.29591 0.2167189    
## 5 - 4 == 0 -0.8666667  0.6968906 -1.24362 0.7279676    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)
confint(contr)
## 
##   Simultaneous Confidence Intervals
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: aov(formula = karakteristik ~ mobil + aditif)
## 
## Quantile = 3.2353434
## 95% family-wise confidence level
##  
## 
## Linear Hypotheses:
##            Estimate   lwr        upr       
## 2 - 1 == 0 -1.4666667 -3.7213472  0.7880139
## 3 - 1 == 0 -2.4000000 -4.6546805 -0.1453195
## 4 - 1 == 0 -3.1333333 -5.3880139 -0.8786528
## 5 - 1 == 0 -4.0000000 -6.2546805 -1.7453195
## 3 - 2 == 0 -0.9333333 -3.1880139  1.3213472
## 4 - 2 == 0 -1.6666667 -3.9213472  0.5880139
## 5 - 2 == 0 -2.5333333 -4.7880139 -0.2786528
## 4 - 3 == 0 -0.7333333 -2.9880139  1.5213472
## 5 - 3 == 0 -1.6000000 -3.8546805  0.6546805
## 5 - 4 == 0 -0.8666667 -3.1213472  1.3880139
library(ggplot2)
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.4.1
ggplot(data=dat,aes(x=aditif,y=karakteristik))+
  geom_boxplot()+
  labs(x = "Aditif", y="karakteristik")

library(ggplot2)
library(ggpubr)
ggplot(data=dat,aes(x=mobil,y=karakteristik))+
  geom_boxplot()+
  labs(x = "mobil", y="karakteristik")

#p-value
1-pf(9.81, df1=4, df2=7)
## [1] 0.00535905595
#Pengecekan asumsi-asumsi dalam BIBD
shapiro.test(residuals(mod))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(mod)
## W = 0.9649207, p-value = 0.6460521
plot(mod,2)

#homogenitas
plot(fitted.values(mod),residuals(mod),xlab="Nilai 
dugaan",ylab="Residual")
abline(h=0,lty="dashed")

#Cek ada pengaruh interaksi antara Aditif dan mobil
with(dat,interaction.plot(aditif,mobil,karakteristik))