var.levels <- expand.grid(gen=c("male", "female"),
                          Info=c("Support","Oppose"),
                          Health= c("Support","Oppose"))
( AIDS3way <- data.frame(var.levels, count=c(76, 114,  6,  11,
                                             160, 181, 25, 48))  )  
##      gen    Info  Health count
## 1   male Support Support    76
## 2 female Support Support   114
## 3   male  Oppose Support     6
## 4 female  Oppose Support    11
## 5   male Support  Oppose   160
## 6 female Support  Oppose   181
## 7   male  Oppose  Oppose    25
## 8 female  Oppose  Oppose    48
# log linear 
summary(mod1 <- glm (count ~ gen + Info + Health + gen*Health 
                     + gen*Info + Info*Health,
                     data=AIDS3way, family=poisson) )
## 
## Call:
## glm(formula = count ~ gen + Info + Health + gen * Health + gen * 
##     Info + Info * Health, family = poisson, data = AIDS3way)
## 
## Deviance Residuals: 
##        1         2         3         4         5         6         7  
## -0.10362   0.08516   0.39073  -0.26626   0.07183  -0.06730  -0.17923  
##        8  
##  0.13173  
## 
## Coefficients:
##                         Estimate Std. Error z value Pr(>|z|)    
## (Intercept)               4.3426     0.1120  38.763  < 2e-16 ***
## genfemale                 0.3856     0.1434   2.689  0.00717 ** 
## InfoOppose               -2.7147     0.3035  -8.945  < 2e-16 ***
## HealthOppose              0.7269     0.1353   5.374 7.68e-08 ***
## genfemale:HealthOppose   -0.2516     0.1749  -1.438  0.15035    
## genfemale:InfoOppose      0.4636     0.2406   1.927  0.05401 .  
## InfoOppose:HealthOppose   0.8997     0.2852   3.155  0.00160 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 445.82335  on 7  degrees of freedom
## Residual deviance:   0.30072  on 1  degrees of freedom
## AIC: 59.683
## 
## Number of Fisher Scoring iterations: 4