# QL Trend test for count data Z.QL.Poisson<-function(conc,yy) { # formula (6.17) # conc = vector of concentrations # yy = vector of observed counts nreps <- unlist(lapply(split(yy,conc),length)) means <- unlist(lapply(split(yy,conc),mean)) vars <- unlist(lapply(split(yy,conc),var)) xbar <- sum(conc)/length(conc) uconc <- unique(conc) top <- sum( nreps*(uconc-xbar)*means ) bot <- sum( nreps*(uconc-xbar)^2*(nreps-1)*vars) cat("xbar = ",signif(xbar),"\n") cat("Z.QL= ",signif(top/sqrt(bot)),"\n") top/sqrt(bot) } Z.QL<-Z.QL.Poisson(nitro.df$conc,nitro.df$offspring) # output follows ... xbar = 157 Z.QL= -5.51591 pnorm(Z.QL) [1] 1.734933e-08