ROOT logo
ROOT » ROOFIT » ROOSTATS » RooStats::ProfileLikelihoodCalculator

class RooStats::ProfileLikelihoodCalculator: public RooStats::CombinedCalculator, public TNamed


ProfileLikelihoodCalculator is a concrete implementation of CombinedCalculator (the interface class for a tools which can produce both RooStats HypoTestResults and ConfIntervals). The tool uses the profile likelihood ratio as a test statistic, and assumes that Wilks' theorem is valid. Wilks' theorem states that -2* log (profile likelihood ratio) is asymptotically distributed as a chi^2 distribution with N-dof, where N is the number of degrees of freedom. Thus, p-values can be constructed and the profile likelihood ratio can be used to construct a LikelihoodInterval. (In the future, this class could be extended to use toy Monte Carlo to calibrate the distribution of the test statistic).

Usage: It uses the interface of the CombinedCalculator, so that it can be configured by specifying:

  • a model common model (eg. a family of specific models which includes both the null and alternate),
  • a data set,
  • a set of parameters of interest. The nuisance parameters will be all other parameters of the model
  • a set of parameters of which specify the null hypothesis (including values and const/non-const status)
The interface allows one to pass the model, data, and parameters either directly or via a ModelConfig class. The alternate hypothesis leaves the parameter free to take any value other than those specified by the null hypotesis. There is therefore no need to specify the alternate parameters.

After configuring the calculator, one only needs to ask GetHypoTest() (which will return a HypoTestResult pointer) or GetInterval() (which will return an ConfInterval pointer).

The concrete implementations of this interface should deal with the details of how the nuisance parameters are dealt with (eg. integration vs. profiling) and which test-statistic is used (perhaps this should be added to the interface).

The motivation for this interface is that we hope to be able to specify the problem in a common way for several concrete calculators.



Function Members (Methods)

public:
virtual~ProfileLikelihoodCalculator()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Double_tRooStats::CombinedCalculator::ConfidenceLevel() const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual RooStats::HypoTestResult*GetHypoTest() const
virtual const char*TObject::GetIconName() const
virtual RooStats::LikelihoodInterval*GetInterval() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
RooStats::ProfileLikelihoodCalculator&operator=(const RooStats::ProfileLikelihoodCalculator&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator()
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator(const RooStats::ProfileLikelihoodCalculator&)
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator(RooAbsData& data, RooStats::ModelConfig& model, Double_t size = 0.05)
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator(RooAbsData& data, RooAbsPdf& pdf, const RooArgSet& paramsOfInterest, Double_t size = 0.05, const RooArgSet* nullParams = 0)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual voidRooStats::CombinedCalculator::SetAlternateModel(const RooStats::ModelConfig&)
virtual voidRooStats::CombinedCalculator::SetAlternateParameters(const RooArgSet& set)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidRooStats::HypoTestCalculator::SetCommonModel(const RooStats::ModelConfig& model)
virtual voidRooStats::CombinedCalculator::SetConfidenceLevel(Double_t cl)
virtual voidRooStats::CombinedCalculator::SetData(RooAbsData& data)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidRooStats::CombinedCalculator::SetModel(const RooStats::ModelConfig& model)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
virtual voidRooStats::CombinedCalculator::SetNuisanceParameters(const RooArgSet& set)
virtual voidRooStats::CombinedCalculator::SetNullModel(const RooStats::ModelConfig&)
virtual voidRooStats::CombinedCalculator::SetNullParameters(const RooArgSet& set)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidRooStats::CombinedCalculator::SetParameters(const RooArgSet& set)
virtual voidRooStats::CombinedCalculator::SetPdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetTestSize(Double_t size)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual Double_tRooStats::CombinedCalculator::Size() const
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidDoGlobalFit() const
voidDoReset() const
RooAbsData*RooStats::CombinedCalculator::GetData() const
RooAbsPdf*RooStats::CombinedCalculator::GetPdf() const
voidTObject::MakeZombie()

Data Members

public:
RooFitResult*fFitResultinternal result of gloabl fit
protected:
RooArgSetRooStats::CombinedCalculator::fAlternateParamsRooArgSet specifying alternate parameters for hypothesis test // Is it used ????
RooAbsData*RooStats::CombinedCalculator::fData
TStringTNamed::fNameobject identifier
RooArgSetRooStats::CombinedCalculator::fNuisParamsRooArgSet specifying nuisance parameters for interval
RooArgSetRooStats::CombinedCalculator::fNullParamsRooArgSet specifying null parameters for hypothesis test
RooArgSetRooStats::CombinedCalculator::fPOIRooArgSet specifying parameters of interest for interval
RooAbsPdf*RooStats::CombinedCalculator::fPdf
Double_tRooStats::CombinedCalculator::fSizesize of the test (eg. specified rate of Type I error)
TStringTNamed::fTitleobject title

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

ProfileLikelihoodCalculator()
 default dummy constructor
ProfileLikelihoodCalculator(RooAbsData& data, RooAbsPdf& pdf, const RooArgSet& paramsOfInterest, Double_t size = 0.05, const RooArgSet* nullParams = 0)
 constructor from the data, a model pdf and the parameter of Interest.
 If nuisance parameters are present they should be specified as part of the model
 i.e. the model pdf is a combined pdf for the poi and the nuisance
 The default test size used is 0.05 ( for a 95%  interval)
 A set for the null parameters (it must be a copied set) can be specified which will be used for
 performing the hypothesis test
ProfileLikelihoodCalculator(RooAbsData& data, RooStats::ModelConfig& model, Double_t size = 0.05)
 construct from the data and a model configuration (ModelConfig class)
 If the model configuration contains a Prior pdf it will be included in the full model
 used by the profile likelihood calculator.
 The default test size used is 0.05 ( for a 95%  interval)
~ProfileLikelihoodCalculator()
 destructor (delete the contained result of the fit)
void DoReset() const
 private method to reset and clear fit results
 to be called when a new model or data are set in the calculator
void DoGlobalFit() const
 private method to perform a global fit of the likelihood letting with all parameter of interest and
 nuisance parameters
 keep the list of fitted parameters
LikelihoodInterval* GetInterval() const
 Main interface to get a RooStats::ConfInterval.
 It constructs a profile likelihood ratio and uses that to construct a RooStats::LikelihoodInterval.
HypoTestResult* GetHypoTest() const
 Main interface to get a HypoTestResult.
 It does two fits:
 the first lets the null parameters float, so it's a maximum likelihood estimate
 the second is to the null (fixing null parameters to their specified values): eg. a conditional maximum likelihood
 the ratio of the likelihood at the conditional MLE to the MLE is the profile likelihood ratio.
 Wilks' theorem is used to get p-values.

 A RooArgSet contained a copied of the null parameters must be previously specified
 (either in the constructor or by using SetNullParameters )
ProfileLikelihoodCalculator()
 default constructor (needed for I/O)