################################################### ### chunk number 1: ################################################### set.seed(1001) mu.true=1 k.true=0.4 x = rnbinom(50,mu=mu.true,size=k.true) NLLfun1 = function(p,dat=x) { mu=p[1] k=p[2] -sum(dnbinom(x,mu=mu,size=k,log=TRUE)) } ################################################### ### chunk number 2: ################################################### m = mean(x) v = var(x) mu.mom = m k.mom = m/(v/m-1) ################################################### ### chunk number 3: ################################################### O1 = optim(fn=NLLfun1,par=c(mu=mu.mom,k=k.mom)); O1 ################################################### ### chunk number 4: ################################################### muvec = seq(0.4,3,by=0.05) kvec = seq(0.01,0.7,by=0.01) resmat = matrix(nrow=length(muvec),ncol=length(kvec)) for (i in 1:length(muvec)) { for (j in 1:length(kvec)) { resmat[i,j] = NLLfun1(c(muvec[i],kvec[j])) } } ################################################### ### chunk number 5: ################################################### alevels=c(0.5,0.9,0.95,0.99,0.999) minval = O1$value nll.levels = qchisq(alevels,df=2)/2+minval ################################################### ### chunk number 6: ################################################### contour(muvec,kvec,resmat,levels=nll.levels,labels=alevels) points(O1$par["mu"],O1$par["k"],pch=16) points(mu.true,k.true,pch=1) points(mu.mom,k.mom,pch=2) ################################################### ### chunk number 7: ################################################### a = 0.696 b = 9.79 recrprob = function(x,a=0.696,b=9.79) a/(1+(a/b)*x) scoefs = c(mu=25.32,k=0.932,zprob=0.123) rzinbinom = function(n,mu,size,zprob) { ifelse(runif(n)