x <- rpois(30, lam=4.5) am <- list(soma=sum(x), n=length(x)) ## nllPois0 <- function(lambda){ return(-sum(stats::dpois(x, lambda=lambda, log=TRUE))) } (res1 <- mean(x)) (res2 <- optimize(nllPois0, int=c(0, max(x)))) require(stats4) (res3 <- mle(nllPois0, start=list(lambda=5), method = "L-BFGS-B", lower=0)) confint(res3) require(bbmle) (res4 <- mle2(nllPois0, start=list(lambda=5))) confint(res3) ## redefinindo a função objetivo nllPois <- function(lambda, am){ ## am é uma lista com a soma dos dados e o número de dados (nesta ordem) return(am$n * lambda - am$soma * log(lambda)) } (res1 <- mean(x)) (res2 <- optimize(nllPois, int=c(0, max(x)), am=am)) require(stats4) (res3 <- mle(nllPois, start=list(lambda=5), fixed=list(am=am), method = "L-BFGS-B", lower=0, nobs=am$n)) confint(res3) require(bbmle) (res4 <- mle2(nllPois, start=list(lambda=5), data=list(am=am))) ## ver exemplo em help(mle) ## somar prod(x!)