flu.vac <- read.delim("flu-vaccine.txt")
attach(flu.vac)

## Poisson
df.poisson <- data.frame(table(flu.vac))
df.poisson <- cbind(df.poisson,Offset=c(38,35)[df.poisson$Group])
fit <- glm(Freq~Response*Group,df.poisson,family=poisson,offset=Offset)
fit0 <- glm(Freq~Response+Group,df.poisson,family=poisson,offset=Offset)
anova(fit0,fit,test="Chisq")

## Multinomial
require(nnet)
Response <- factor(as.character(Response),levels=c("Small","Moderate","Large"))
fit <- multinom(Response~Group)
fit0 <- multinom(Response~1)
anova(fit0,fit)
summary(fit)

## Same as:
y <- 1*(flu.vac$Response=="Moderate")
fit1 <- glm(y~Group,family=binomial,subset=(Response!="Large"))
y <- 1*(flu.vac$Response=="Large")
fit2 <- glm(y~Group,family=binomial,subset=(Response!="Moderate"))

## Ordinal
require(MASS)
fit <- polr(Response~Group)
fit0 <- polr(Response~1)
anova(fit0,fit)
summary(fit)
