tutorial demonstrating and validates the RooJeffreysPrior class
Jeffreys's prior is an 'objective prior' based on formal rules. It is calculated from the Fisher information matrix.
Read more: http://en.wikipedia.org/wiki/Jeffreys_prior
The analytic form is not known for most PDFs, but it is for simple cases like the Poisson mean, Gaussian mean, Gaussian sigma.
This class uses numerical tricks to calculate the Fisher Information Matrix efficiently. In particular, it takes advantage of a property of the 'Asimov data' as described in Asymptotic formulae for likelihood-based tests of new physics Glen Cowan, Kyle Cranmer, Eilam Gross, Ofer Vitells http://arxiv.org/abs/arXiv:1007.1727
This Demo has four parts:
- TestJeffreysPriorDemo – validates Poisson mean case 1/sqrt(mu)
- TestJeffreysGaussMean – validates Gaussian mean case
- TestJeffreysGaussSigma – validates Gaussian sigma case 1/sigma
- TestJeffreysGaussMeanAndSigma – demonstrates 2-d example
Processing /mnt/build/workspace/root-makedoc-v608/rootspi/rdoc/src/v6-08-00-patches/tutorials/roostats/JeffreysPriorDemo.C...
void JeffreysPriorDemo(){
pi.plotOn(plot);
}
void TestJeffreysGaussMean(){
w.
factory(
"Gaussian::g(x[0,-20,20],mu[0,-5,5],sigma[1,0,10])");
pi.getParameters(*temp)->
Print();
pi.plotOn(plot);
}
void TestJeffreysGaussSigma(){
w.
factory(
"Gaussian::g(x[0,-20,20],mu[0,-5,5],sigma[1,1,5])");
pi.specialIntegratorConfig(
kTRUE)->getConfigSection(
"RooIntegrator1D").setRealValue(
"maxSteps",3);
pi.getParameters(*temp)->
Print();
pi.plotOn(plot);
}
void TestJeffreysGaussMeanAndSigma(){
w.
factory(
"Gaussian::g(x[0,-20,20],mu[0,-5,5],sigma[1,1,5])");
pi.specialIntegratorConfig(
kTRUE)->getConfigSection(
"RooIntegrator1D").setRealValue(
"maxSteps",3);
pi.getParameters(*temp)->
Print();
}
- Author
- Kyle Cranmer
Definition in file JeffreysPriorDemo.C.