# Admission to Berkeley graduate programs berk1.df <- read.table("data/berkeley.dat",header=T) attach(berk1.df) D <- matrix(freq,byrow=T,ncol=4) or <- function(x) { ((x[1]+.5)/(x[2]+.5))/((x[3]+.5)/(x[4]+.5)) } cbind(1:6,round(apply(D,1,or),2)) # odds-ratios by department dept <- rep(c("A","B","C","D","E","F"),each=2) sex <- rep(c("M","F"),6) admit <- freq[(0:11)*2+1] deny <- freq[(1:12)*2] berk2.df <- data.frame(dept,sex,admit,deny) berk2.df fit1 <- glm(cbind(admit,deny)~dept+sex,binomial,data=berk2.df) summary(fit1) anova(fit1) fit2 <- glm(cbind(admit,deny)~dept+sex,binomial,subset(berk2.df,dept!="A")) summary(fit2) anova(fit2)