Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the finding of true confidence intervals (aka MINOS) #30

Closed
beniz opened this issue May 6, 2014 · 5 comments
Closed

Implement the finding of true confidence intervals (aka MINOS) #30

beniz opened this issue May 6, 2014 · 5 comments

Comments

@beniz
Copy link
Collaborator

beniz commented May 6, 2014

This is the MINOS subroutine implemented by Minuit and used in ROOT.

See page 7 (349) in http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.158.9157&rep=rep1&type=pdf for details.

@beniz
Copy link
Collaborator Author

beniz commented May 12, 2014

The original article points to http://www.amazon.fr/Statistical-Methods-Experimental-Physics-Edition/dp/9812705279/ref=sr_1_2?ie=UTF8&qid=1399901929&sr=8-2&keywords=Statistical+Methods+in+Experimental+Physics pages 234-236 as the underlying theory.

This is turns refer to the 'modern' term of the multidimensional extension as the 'profile likelihood'.

From there, there are several implementations, a simple one to begin with appears to be outlined here:
http://www.fdmold.uni-freiburg.de/~araue/pmwiki.php/Projects/ProfileLikelihoodApproach

beniz pushed a commit that referenced this issue May 13, 2014
beniz pushed a commit that referenced this issue May 14, 2014
beniz pushed a commit that referenced this issue May 14, 2014
…confidence intervals into solution object, ref #30
@beniz
Copy link
Collaborator Author

beniz commented May 14, 2014

Commit ec17c45 brings usable minos type confidence intervals computation to the library.

This is still experimental and though unit-tested, it has not been thoroughly tested on the regular function set. In order to try it out at this early stage, for a deviation of 0.1 from the found mininum, and using otherwise default parameters for computing the profile likelihood:

./test_functions -fname fsphere -dim 10 -le

yields:

confidence intervals:
dim 0 in [-0.285108,0.285108]
dim 1 in [-0.288124,0.288124]
dim 2 in [-0.289218,0.289218]
dim 3 in [-0.285644,0.285644]
dim 4 in [-0.287044,0.287044]
dim 5 in [-0.298543,0.298543]
dim 6 in [-0.281206,0.281206]
dim 7 in [-0.297881,0.297881]
dim 8 in [-0.275348,0.275348]
dim 9 in [-0.294037,0.294037]

and

./test_functions -fname elli -dim 10 -le

yields:

confidence intervals:
dim 0 in [-0.281297,0.281297]
dim 1 in [-0.131263,0.131263]
dim 2 in [-0.0621184,0.0621184]
dim 3 in [-0.0288797,0.0288797]
dim 4 in [-0.013169,0.013169]
dim 5 in [-0.00582101,0.00582101]
dim 6 in [-0.00281503,0.00281503]
dim 7 in [-0.00131911,0.00131911]
dim 8 in [-0.000600367,0.000600367]
dim 9 in [-0.000287616,0.000287616]

The library also embeds the ability to compute a 'full' profile likelihood 'curve', that is a set of points such that confidence intervals can later be obtained for various values of the deviation from the original minimum.

At this stage, the confidence intervals returned on rosenbrock and rastrigin cannot be validated and may well be faulty (results vary with values of -le_samplesize).

beniz pushed a commit that referenced this issue May 20, 2014
@beniz
Copy link
Collaborator Author

beniz commented May 20, 2014

Last fix yields good results on even rosenbrock, sphere, elli and ellirot in up to 20-D (tested). Will proceed with tests up to 100-D.

beniz pushed a commit that referenced this issue May 21, 2014
…om previous solution with identity covariance matrix, ref #30
@beniz
Copy link
Collaborator Author

beniz commented May 21, 2014

Confidence intervals through profile likelihood now more stable across sphere, elli, ellirot, rosenbrock and rastrigin.

The iterative process uses several consecutive optimizations, each of which reuses the minimum from the previous call. However, passing the covariance matrix along does not yield good results as the search often fits an early stopping criteria. For this reason, and for now, the covariance matrix is resetted to the identity upon every new optimization call.

beniz pushed a commit that referenced this issue May 22, 2014
beniz pushed a commit that referenced this issue May 27, 2014
…o the final confidence intervals selection, ref #30
beniz pushed a commit that referenced this issue Jul 8, 2014
beniz pushed a commit that referenced this issue Jul 9, 2014
…+ re-stated automated sigma value estimate in between profile likelihood search calls, ref #30
beniz pushed a commit that referenced this issue Jul 29, 2014
beniz pushed a commit that referenced this issue Nov 12, 2014
@beniz
Copy link
Collaborator Author

beniz commented Nov 12, 2014

merged into dev branch, will be part of next release.

@beniz beniz closed this as completed Nov 12, 2014
beniz pushed a commit that referenced this issue Nov 12, 2014
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
…om previous solution with identity covariance matrix, ref CMA-ES#30
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
…o the final confidence intervals selection, ref CMA-ES#30
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
…+ re-stated automated sigma value estimate in between profile likelihood search calls, ref CMA-ES#30
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
andrewsali pushed a commit to andrewsali/libcmaes that referenced this issue Jan 31, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant