curve fitting with errors

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

curve fitting with errors

Jan Strube
Hi list,

I'm looking for some curve fitting tools. In High Energy Physics, we're using the MINUIT library for pretty much everything.
http://seal.web.cern.ch/seal/snapshot/work-packages/mathlibs/minuit/

One nice feature is that it calculates errors on the fitted distribution parameters per default.
http://seal.cern.ch/documents/minuit/mnerror.pdf
It does that by changing the parameters such that the likelihood value changes by 0.5 (or a chi2 value by 1, if you use least squares minimization).

Is there something like that in Julia?
I'm seeing fit_mle in Distributions.jl, but that doesn't seem to compute the error on the parameters.
How do people here compute the uncertainties on those parameters?


--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: curve fitting with errors

Andreas Noack
Hi Jan

I think the short answer is no. I've tried to take a look at the links and it appears to me that the use of statistics in MINUIT is bit different from what the main contributors to Distributions.jl have had in mind. The usual uncertainty measure for maximum likelihood estimation is the inverse of the Hessian of the log-likelihood at the optimum, so I'm not sure what the reasoning for MINUIT's choice is.

On Sat, Dec 26, 2015 at 1:18 AM, Jan Strube <[hidden email]> wrote:
Hi list,

I'm looking for some curve fitting tools. In High Energy Physics, we're using the MINUIT library for pretty much everything.

One nice feature is that it calculates errors on the fitted distribution parameters per default.
It does that by changing the parameters such that the likelihood value changes by 0.5 (or a chi2 value by 1, if you use least squares minimization).

Is there something like that in Julia?
I'm seeing fit_mle in Distributions.jl, but that doesn't seem to compute the error on the parameters.
How do people here compute the uncertainties on those parameters?


--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: curve fitting with errors

Jan Strube
Thank you for the explanation.
How can I compute the inverse of the Hessian of the log-likelihood with Distributions.jl and friends?


On Monday, December 28, 2015 at 4:52:08 AM UTC-8, Andreas Noack wrote:
Hi Jan

I think the short answer is no. I've tried to take a look at the links and it appears to me that the use of statistics in MINUIT is bit different from what the main contributors to Distributions.jl have had in mind. The usual uncertainty measure for maximum likelihood estimation is the inverse of the Hessian of the log-likelihood at the optimum, so I'm not sure what the reasoning for MINUIT's choice is.

On Sat, Dec 26, 2015 at 1:18 AM, Jan Strube <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="bbXEiATnBwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">jan.s...@...> wrote:
Hi list,

I'm looking for some curve fitting tools. In High Energy Physics, we're using the MINUIT library for pretty much everything.
<a href="http://seal.web.cern.ch/seal/snapshot/work-packages/mathlibs/minuit/" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\75http%3A%2F%2Fseal.web.cern.ch%2Fseal%2Fsnapshot%2Fwork-packages%2Fmathlibs%2Fminuit%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNF-IaL1ERiF1fYW_0W8eRR-mY5gMw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\75http%3A%2F%2Fseal.web.cern.ch%2Fseal%2Fsnapshot%2Fwork-packages%2Fmathlibs%2Fminuit%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNF-IaL1ERiF1fYW_0W8eRR-mY5gMw&#39;;return true;">http://seal.web.cern.ch/seal/snapshot/work-packages/mathlibs/minuit/

One nice feature is that it calculates errors on the fitted distribution parameters per default.
<a href="http://seal.cern.ch/documents/minuit/mnerror.pdf" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\75http%3A%2F%2Fseal.cern.ch%2Fdocuments%2Fminuit%2Fmnerror.pdf\46sa\75D\46sntz\0751\46usg\75AFQjCNEktCsIKKFbT_nKoJd-iDoJNQcAKg&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\75http%3A%2F%2Fseal.cern.ch%2Fdocuments%2Fminuit%2Fmnerror.pdf\46sa\75D\46sntz\0751\46usg\75AFQjCNEktCsIKKFbT_nKoJd-iDoJNQcAKg&#39;;return true;">http://seal.cern.ch/documents/minuit/mnerror.pdf
It does that by changing the parameters such that the likelihood value changes by 0.5 (or a chi2 value by 1, if you use least squares minimization).

Is there something like that in Julia?
I'm seeing fit_mle in Distributions.jl, but that doesn't seem to compute the error on the parameters.
How do people here compute the uncertainties on those parameters?


--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="bbXEiATnBwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">julia-stats...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: curve fitting with errors

c.d. mclean

you may find some of the tools from the Optim.jl package helpful:

   https://github.com/JuliaOpt/Optim.jl



and julia's facilities with calling out to other languages has the
potential for continuing to leverage MINUIT, if necessary:

   http://github.com/timholy/Cpp.jl


~ cdm


On Monday, December 28, 2015 at 12:10:11 PM UTC-8, Jan Strube wrote:
Thank you for the explanation.
How can I compute the inverse of the Hessian of the log-likelihood with Distributions.jl and friends?

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: curve fitting with errors

c.d. mclean

i was remiss in failing to include a link to the LsqFit.jl package:

   https://github.com/JuliaOpt/LsqFit.jl


which might also be helpful.

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: curve fitting with errors

Jan Strube
Thank you. I'll review those packages.

On Tuesday, December 29, 2015 at 10:24:48 AM UTC-8, cdm wrote:

i was remiss in failing to include a link to the LsqFit.jl package:

   <a href="https://github.com/JuliaOpt/LsqFit.jl" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2FJuliaOpt%2FLsqFit.jl\46sa\75D\46sntz\0751\46usg\75AFQjCNEriLrLvoKzbe-xmeDeLNlMKVR0cw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2FJuliaOpt%2FLsqFit.jl\46sa\75D\46sntz\0751\46usg\75AFQjCNEriLrLvoKzbe-xmeDeLNlMKVR0cw&#39;;return true;">https://github.com/JuliaOpt/LsqFit.jl


which might also be helpful.

--
You received this message because you are subscribed to the Google Groups "julia-stats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.