library(vcdExtra)
## Loading required package: vcd
## Loading required package: grid
## Loading required package: gnm
data("DaytonSurvey")
Dayton.ACM <- aggregate(Freq ~ cigarette + alcohol + marijuana, data = DaytonSurvey, FUN = sum)
Dayton.ACM
##   cigarette alcohol marijuana Freq
## 1       Yes     Yes       Yes  911
## 2        No     Yes       Yes   44
## 3       Yes      No       Yes    3
## 4        No      No       Yes    2
## 5       Yes     Yes        No  538
## 6        No     Yes        No  456
## 7       Yes      No        No   43
## 8        No      No        No  279

a

jointindependence<-glm(Freq ~ (alcohol * cigarette) + marijuana , data = Dayton.ACM, family = "poisson")

b

conditionalindependence<-glm(Freq ~ marijuana * (alcohol + cigarette), data = Dayton.ACM, family = "poisson")

c

homogeneousmodel<-glm(Freq ~ (marijuana + alcohol + cigarette)^2, data = Dayton.ACM, family = "poisson")

d

mutualindependence<-glm(Freq ~ alcohol + cigarette + marijuana , data = Dayton.ACM, family = "poisson")

saturatedmodel <- glm(Freq ~ alcohol * cigarette * marijuana , data = Dayton.ACM, family = "poisson")

anova(jointindependence,conditionalindependence,homogeneousmodel,mutualindependence,saturatedmodel,test="Chisq")
## Analysis of Deviance Table
## 
## Model 1: Freq ~ (alcohol * cigarette) + marijuana
## Model 2: Freq ~ marijuana * (alcohol + cigarette)
## Model 3: Freq ~ (marijuana + alcohol + cigarette)^2
## Model 4: Freq ~ alcohol + cigarette + marijuana
## Model 5: Freq ~ alcohol * cigarette * marijuana
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1         3     843.83                          
## 2         2     187.75  1   656.07 < 2.2e-16 ***
## 3         1       0.37  1   187.38 < 2.2e-16 ***
## 4         4    1286.02 -3 -1285.65 < 2.2e-16 ***
## 5         0       0.00  4  1286.02 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Homogeneous model as it is closer to saturated model