ldose_function(theta,data=y){ # Data has 3 columns dose, n, success. Gives negative loglikelihood alpha_theta[1] beta_theta[2] prob_exp(alpha+beta*data[,1])/(1+exp(alpha+beta*data[,1])) like_sum(data[,3]*log(prob)+(data[,2]-data[,3])*log(1-prob)) -like} maxdose_function(thetint=c(-5,3),data=y){ xx_nlminb(thetint,ldose,data=data) xx$parameters} plotdose <- function(alpha=seq(-6,-3,.1),beta=seq(2.5,3.5,.05),data=y){ #does perspective plot of extreme likelihood surface n1 <- length(alpha) n2 <- length(beta) parest <- maxdose(data=data) zmax <- -ldose(parest,data=data) z <- matrix(0,n1,n2) for(i in 1:n1){for(j in 1:n2){ z[i,j] <- -ldose(c(alpha[i],beta[j]),data=data)-zmax}} persp(alpha,beta,z,xlab="alpha",ylab="beta",zlab="Rel.Like.") list(alpha=alpha,beta=beta,z=z)} plotdose1 <- function(gamma=seq(1.3,1.8,.01),beta=seq(2,5,.05),data=y){ #does perspective plot of extreme likelihood surface n1 <- length(gamma) n2 <- length(beta) zmax <- -119.894 z <- matrix(0,n1,n2) for(i in 1:n1){for(j in 1:n2){ z[i,j] <- -ldose1(c(gamma[i],beta[j]),data=data)-zmax}} persp(gamma,beta,z,xlab="gamma",ylab="beta",zlab="Rel.Like.") list(gamma=gamma,beta=beta,z=z)} ldose1_function(theta,data=y){ # Data has 3 columns dose, n, success. Gives negative loglikelihood # Set up for gamma and beta alpha_-theta[1]*theta[2] beta_theta[2] prob_exp(alpha+beta*data[,1])/(1+exp(alpha+beta*data[,1])) like_sum(data[,3]*log(prob)+(data[,2]-data[,3])*log(1-prob)) -like}