ROOT 6.08/07 Reference Guide |
TwoSidedFrequentistUpperLimitWithBands
This is a standard demo that can be used with any ROOT file prepared in the standard way. You specify:
With default parameters the macro will attempt to run the standard hist2workspace example and read the ROOT file that it produces.
You may want to control:
This uses a modified version of the profile likelihood ratio as a test statistic for upper limits (eg. test stat = 0 if muhat>mu).
Based on the observed data, one defines a set of parameter points to be tested based on the value of the parameter of interest and the conditional MLE (eg. profiled) values of the nuisance parameters.
At each parameter point, pseudo-experiments are generated using this fixed reference model and then the test statistic is evaluated. The auxiliary measurements (global observables) associated with the constraint terms in nuisance parameters are also fluctuated in the process of generating the pseudo-experiments in a frequentist manner forming an 'unconditional ensemble'. One could form a 'conditional' ensemble in which these auxiliary measurements are fixed. Note that the nuisance parameters are not randomized, which is a Bayesian procedure. Note, the nuisance parameters are floating in the fits. For each point, the threshold that defines the 95% acceptance region is found. This forms a "Confidence Belt".
After constructing the confidence belt, one can find the confidence interval for any particular dataset by finding the intersection of the observed test statistic and the confidence belt. First this is done on the observed data to get an observed 1-sided upper limt.
Finally, there expected limit and bands (from background-only) are formed by generating background-only data and finding the upper limit. The background-only is defined as such that the nuisance parameters are fixed to their best fit value based on the data with the signal rate fixed to 0. The bands are done by hand for now, will later be part of the RooStats tools.
On a technical note, this technique IS the generalization of Feldman-Cousins with nuisance parameters.
Building the confidence belt can be computationally expensive. Once it is built, one could save it to a file and use it in a separate step.
We can use PROOF to speed things along in parallel, however, the test statistic has to be installed on the workers so either turn off PROOF or include the modified test statistic in your $ROOTSYS/roofit/roostats/inc directory, add the additional line to the LinkDef.h file, and recompile root.
Note, if you have a boundary on the parameter of interest (eg. cross-section) the threshold on the two-sided test statistic starts off at moderate values and plateaus.
[#0] PROGRESS:Generation – generated toys: 500 / 999 NeymanConstruction: Prog: 12/50 total MC = 39 this test stat = 0 SigXsecOverSM=0.69 alpha_syst1=0.136515 alpha_syst3=0.425415 beta_syst2=1.08496 [-1e+30, 0.011215] in interval = 1
this tells you the values of the parameters being used to generate the pseudo-experiments and the threshold in this case is 0.011215. One would expect for 95% that the threshold would be ~1.35 once the cross-section is far enough away from 0 that it is essentially unaffected by the boundary. As one reaches the last points in the scan, the theshold starts to get artificially high. This is because the range of the parameter in the fit is the same as the range in the scan. In the future, these should be independently controlled, but they are not now. As a result the ~50% of pseudo-experiments that have an upward fluctuation end up with muhat = muMax. Because of this, the upper range of the parameter should be well above the expected upper limit... but not too high or one will need a very large value of nPointsToScan to resolve the relevant region. This can be improved, but this is the first version of this script.
Important note: when the model includes external constraint terms, like a Gaussian constraint to a nuisance parameter centered around some nominal value there is a subtlety. The asymptotic results are all based on the assumption that all the measurements fluctuate... including the nominal values from auxiliary measurements. If these do not fluctuate, this corresponds to an "conditional ensemble". The result is that the distribution of the test statistic can become very non-chi^2. This results in thresholds that become very large.
Definition in file TwoSidedFrequentistUpperLimitWithBands.C.