# est nll<-function(p)-dbinom(2,10,p, log=TRUE) est<-nlminb(0.5, nll, lower=0, upper=1)$par # test in Chisq p=.5 G <- -2*(dbinom(2,10,p, log=TRUE)-dbinom(2,10,est, log=TRUE)) 1-pchisq(G,1) # test by sim P=.5 G.obs <- -2*(dbinom(2,10,p, log=TRUE)-dbinom(2,10,est, log=TRUE)) sim <- rbinom(1000000, 10,p) G.sim <- -2*(dbinom(sim,10,p, log=TRUE)-dbinom(sim,10,sim/10, log=TRUE)) mean(G.sim>=G.obs) # CI by approx pval.chi<-function(p){ G <- -2*(dbinom(2,10,p, log=TRUE)-dbinom(2,10,est, log=TRUE)) 1-pchisq(G,1) } pval.chi<-Vectorize(pval.chi) par(mfrow=c(3,1)) plot(pval.chi, 0, .6) abline(h=0.05, col="gray", lwd=3) nll<-function(p)-(dbinom(2,10,p,log=TRUE)-dbinom(2,10,est, log=TRUE)) plot(nll,0,.6) abline(h=qchisq(0.95,1)/2, col="gray", lwd=3) low<-uniroot(function(p)nll(p)-qchisq(0.95,1)/2, interval=c(0, est))$root hig<-uniroot(function(p)nll(p)-qchisq(0.95,1)/2, interval=c(est,1))$root abline(v=c(low,hig), col="red") # CI by sim pval.one <- function(p){ G.obs <- -2*(dbinom(2,10,p, log=TRUE)-dbinom(2,10,2/10, log=TRUE)) set.seed(12345) sim <- rbinom(100000, 10,p) G.sim <- -2*(dbinom(sim,10,p, log=TRUE)-dbinom(sim,10,sim/10, log=TRUE)) mean(G.sim>=G.obs) } pval<-Vectorize(pval.one) plot(pval, 0,.6) abline(h=0.05, lwd=3, col="gray") low<-uniroot(function(p)pval(p)-0.05, interval=c(0, est))$root hig<-uniroot(function(p)pval(p)-0.05, interval=c(est,1))$root abline(v=c(low,hig), col="red")