Fitting to Poisson histogram

前端 未结 2 2090
臣服心动
臣服心动 2020-12-04 11:52

I am trying to fit a curve over the histogram of a Poisson distribution that looks like this \"histo\"

I have m

2条回答
  •  自闭症患者
    2020-12-04 12:09

    Thank you for the wonderful discussion!

    You might want to consider the following:

    1) Instead of computing "poisson", compute "log poisson", for better numerical behavior

    2) Instead of using "lamb", use the logarithm (let me call it "log_mu"), to avoid the fit "wandering" into negative values of "mu". So

    log_poisson(k, log_mu): return k*log_mu - loggamma(k+1) - math.exp(log_mu)
    

    Where "loggamma" is the scipy.special.loggamma function.

    Actually, in the above fit, the "loggamma" term only adds a constant offset to the functions being minimized, so one can just do:

    log_poisson_(k, log_mu): return k*log_mu - math.exp(log_mu)
    

    NOTE: log_poisson_() not the same as log_poisson(), but when used for minimization in the manner above, will give the same fitted minimum (the same value of mu, up to numerical issues). The value of the function being minimized will have been offset, but one doesn't usually care about that anyway.

提交回复
热议问题