Closed giacomomagni closed 11 months ago
Merging #62 (5bd14bf) into main (7fdcee0) will increase coverage by
0.16%
. The diff coverage is37.75%
.
One of the rare time that something works out of the box! :relieved: :relieved: :relieved:
I still want to add some docs, but you might check if the code is doing what you had in mind. To run:
smeift A your_path_to_runcard
There is a single additional parameter required in the runcard: n_samples
that has to be set according the number of samples that you desire, maybe we should replace it by something as the relative accuracy that you want ?
I also added an explicit check if the inverse of the fisher matrix is not positive semidefinite, as I think the method will not work in case of flat directions.
Yes indeed, if there are flat direction the cov mat should be singular and it would not work well! Looks like it's working indeed :)
Amazing @giacomomagni, looks really nice! Do we know the reason why the posteriors look different for some of the 4 heavy operators? Is this related to the Hessian being singular?
Amazing @giacomomagni, looks really nice! Do we know the reason why the posteriors look different for some of the 4 heavy operators? Is this related to the Hessian being singular?
I had to remove the 4 heavy operators, because of the flat directions, I left only Ott
which is indeed highly correlated to the others...
So do you prefer to have n_sample
or the relative accuracy ?
I am not sure why we even need samples in the first place if we already know the analytic form of the multivariate gaussian. Can't we obtain the bounds directly without sampling?
I think it's still good to sample, so that one can use all the plotting routines and analysis ones. It's not a very costly operation, I guess it runs really fast @giacomomagni ?
How would the relative accuracy works? I think it's more intuitive to specify the number of samples.
I am not sure why we even need samples in the first place if we already know the analytic form of the multivariate gaussian. Can't we obtain the bounds directly without sampling?
Bounds are logged in a table at the end of the run. I believe samples are just needed to make comparisons with the other tool/methods easier. Also without samples, you would need to save the full covmat, otherwise correlations are lost.
I think it's still good to sample, so that one can use all the plotting routines and analysis ones. It's not a very costly operation, I guess it runs really fast @giacomomagni ?
yes it's immediate...
How would the relative accuracy works? I think it's more intuitive to specify the number of samples.
Something like, you draw samples until the std/mean of the samples do not reach the required accuracy wrt to the known values ?!
I think it's still good to sample, so that one can use all the plotting routines and analysis ones. It's not a very costly operation, I guess it runs really fast @giacomomagni ?
yes it's immediate...
How would the relative accuracy works? I think it's more intuitive to specify the number of samples.
Something like, you draw samples until the std/mean of the samples do not reach the required accuracy wrt to the known values ?!
Ah ok, not sure. I think it's fine with number of samples too.
We could continue sampling until the relative error on the mean reaches below 1%, so: std/(\sqrt{N} * central value) < 0.01. But let me stress that everything in the report can be computed analytically: the marginalised posteriors can be computed in closed form, the correlation matrix we have from the covariance... etc
Okay, let's leave the number of samples for the time being. If any of you can review this, then we should be able to merge.
While reading I saw some typos in the running.md, but the rest looks fine to me :)
Address feature #60