-
Notifications
You must be signed in to change notification settings - Fork 85
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
Add support for multiple parameters of interest #179
Comments
What is the status of this? I understand multiple free parameters ( |
That's great! I'm interested in doing likelihood unfolding, but there are many other use cases for multi-parameter fits (for instance, fitting EFT parameters). Here CLs limits are not really useful but one would be interested in general confidence intervals, Minos intervals (while either profiling other POIs or keeping them fixed), beside simply getting the best fit and covariance matrix. Some remarks though:
AFAIK neither of those is supported at the moment? |
Hi, I think we're also interested in this now, @lukasheinrich . For the ATLAS hh4b analysis we'd like to do simultaneous ggF and VBF fits, for example, and we're also interested in SMEFT interpretations where we could fit several parameters simultaneously. It'd be great to get support in PyHF for these kind of models! Best, |
Hi, for basic MLE fits a "POI" is not different from any other normalization factor, so this should already work at the moment. For things like parameter rankings where the calculation is done wrt. a specific parameter (= the POI) it matters. |
We will likely explore this in our run up to
|
#1051 is in, so we can move forward. |
@kratsg I have one here: <POI>Signal_norm Bg_norm</POI> I am not sure whether this is using HistFactory as intended, but it gets correctly interpreted in at least two (ATLAS-internal) tools I tried it with. |
Hi, I was looking forward to this update being part of v0.6.0 but I can see it's now been pushed back to v.0.7.0. Do you have a time estimate for when this development will be complete? Thanks! Kind regards, |
Now that we have toys in I think we can prfioritize this. We definitely want to deliver 0.7.0 more quickly than 0.6.0 and I hope within perhaps O(2 months) we can at least have some demo notebooks to to multi-POI fits (the code right now should already enable this a you can fits pdfs with arbitrary fixed parameters, but we're lacking convenience APIs. @jagrundy have you tried doing this manually by any chance? |
Hi Lukas, Thank you for the quick reply and for the update. I haven't tried doing this manually but am aware that it's possible. James |
Yeah, the timeline seems about right. There are a few hurdles in order to get this happening:
I think while both of these hurdles are rather minor, it's mainly figuring out a consistent API that doesn't throw off a lot of users. |
@jagrundy @swertz @mswiatlo what would be helpful is to try to understand what API users are really expecting. As it seems that you're waiting for this can you help by doing the following:
This will help us to be able to get the thing that you're actually wanting out sooner. |
Some thoughts from my perspective:
|
Hi pyhf team, do you by any chance have an update on this feature? Is it still on track for v 0.7.0? |
are you asking for support in the spec or in the code? |
ROOT doesn't quite allow this in the HiFa XML spec. Not sure what we do here. Do we match the weird behavior in ROOT or try to do better? Then we get into situations where workspaces in
Yes. Like how we handle multiple measurements.
Yes.
This would be where we'd ask for the first/second/third/nth POI fit. |
Excellent, I am very glad to hear that we can do the multiple |
You can look here ( Lines 196 to 202 in 1884c6c
setting |
A list of strings is arguably the correct solution for this, and I think it's absolutely worth breaking this one particular roundtrip use case in favor of streamlining the experience for everything else. As far as I can tell, the issue only arises in this quite specific setup:
The extent to which things "break" is that parameter names change automatically (or have to be changed manually), and that is only relevant if they contain a space, which presumably is very rare to begin with. Given that this can be caught during conversion and the user can be informed, I think this is quite minor. |
I tried out a roundtrip from JSON with a POI called
Along similar lines, I tried out adding an emoji to a normfactor name: no obvious errors, but in the When adding the same emoji to a nuisance parameter name (which has an associated histogram), (edit: the last point was unrelated to |
Hi, Can you please confirm if in the current version, multiple POI workspace can be converted to pyhf in JSON format as desired by default? Regards, |
|
I see. Thanks! |
The "as desired" part is arguable, I would personally find a format where the POI entry is a list of strings better in the longer term. This is a breaking change however. Right now you will get a single string with spaces between POIs like "poi": "poi_1 poi_2 poi_3" which You could consider only specifying a single POI in the model, as this is technically metadata without immediate impact on inference. If there will be a move to a list format |
@amartyarej how quick of a timescale are you asking for? We have a ton of changes in the pipeline. |
We are planning to finalize our studies by end of August |
Description
The infrastructure should be generic enough to support limit setting on multiple POIs,
The text was updated successfully, but these errors were encountered: