[R] Maximum Likelihood Estimation Poisson distribution mle {stats4}

peter dalgaard pdalgd at gmail.com
Thu Jul 5 14:41:18 CEST 2012


On Jul 5, 2012, at 10:48 , chamilka wrote:

> Hi everyone!
> I am using the mle {stats4} to estimate the parameters of distributions by
> MLE method. I have a problem with the examples they provided with the
> mle{stats4} html files. Please check the example and my question below!
> *Here is the mle html help file * 
> http://stat.ethz.ch/R-manual/R-devel/library/stats4/html/mle.html
> http://stat.ethz.ch/R-manual/R-devel/library/stats4/html/mle.html 
> 
> *In the example provided with the help *
>> od <- options(digits = 5)
>> x <- 0:10    *#generating Poisson counts*
>> y <- c(26, 17, 13, 12, 20, 5, 9, 8, 5, 4, 8)  *#generating the
>> frequesncies*
>> 
> ## Easy one-dimensional MLE:
>> nLL <- function(lambda) -sum(stats::dpois(y, lambda, log=TRUE))  *#they
>> define the Poisson negative loglikelihood*
>> fit0 <- mle(nLL, start = list(lambda = 5), nobs = NROW(y)) * #they
>> estimate the Poisson parameter using mle*
>> fit0  *#they call the output*
> 
> Call:
> mle(minuslogl = nLL, start = list(lambda = 5), nobs = NROW(y))
> 
> Coefficients:
> lambda 
> 11.545       * #this is their estimated Lambda Vallue.*
> 
> *Now my question is in a Poisson distribution the Maximum Likelihood
> estimator of the mean parameter lambda is  the sample mean, so if we
> calculate the sample mean of that generated Poisson distribution manually
> using R we get  the below!*
> 
>> sample.mean<- sum(x*y)/sum(y)
>> sample.mean
> [1] 3.5433
> 
> *This is the contradiction!! *
> Here I am getting the estimate as 3.5433(which is reasonable as most of the
> values are clustered around 3), but mle code gives the estimate 11.545(which
> may not be correct as this is out side the range 0:10)
> 
> Why this contradiction? 

You misunderstand the setup. y are 11 Poisson counts, x is a dose variable used further down in the example. So

> mean(y)
[1] 11.54545

Your sample.mean would be relevant if there were 127 count measurements, 26 of which were 0, 17 were 1, etc. But then the likelihood would be different:

> x <- 0:10
> nLL <- function(lambda) -sum(y*stats::dpois(x, lambda, log=TRUE))
> mle(nLL, start = list(lambda = 5), nobs = NROW(y))

Call:
mle(minuslogl = nLL, start = list(lambda = 5), nobs = NROW(y))

Coefficients:
 lambda 
3.54328 




> 
> --
> View this message in context: http://r.789695.n4.nabble.com/Maximum-Likelihood-Estimation-Poisson-distribution-mle-stats4-tp4635464.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

-- 
Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list