## gerando dados
set.seed(42)
x <- rexp(280)
range(x)
(frequencias <- table(cut(x, breaks=seq(0,9, by=1))))

## Funcao de probabilidade para cada classe pela exponencial
## Argumento classe é o limite superior da classe
P.classe <- function(inicio.classe, interval, lambda){
    ## Probabilidade acumulada até o fimda classe
    p.upper <- pexp(q = inicio.classe + interval,
                    rate= lambda )
    ## Prob acumulada até o início da classe
    p.lower <- pexp(q = inicio.classe,
                      rate = lambda)
    ## Probabilidade de uma observacao da classe
    p.upper-p.lower
}

## Um vetor em que os valores são
# o limite inferior da classe de cada observação
y <-  rep(0:9, frequencias)


## testes da funcao de log-verossilhanca para
## valores arrbitrarios do parametro da exponencial
P.classe(inicio.classe=0, interval=2, lambda=1)
-sum(log((P.classe(inicio.classe=y, interval=1, lambda=1))))
-sum(log((P.classe(inicio.classe=y, interval=1, lambda=0.4))))

## E finalmente a funcao de log-verossimilhanca da exponencial
LL <- function(lambda){
    -sum(log(
        P.classe(y, interval=1, lambda=lambda)
    ))
}

m1 <- mle2( LL, start=list(lambda=1))
summary(m1)
