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

class RooStats::ProfileLikelihoodCalculator: public RooStats::CombinedCalculator


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 which specify the null (including values and const/non-const status),
  • a set of parameters of which specify the alternate (including values and const/non-const status),
  • a set of parameters of nuisance parameters (including values and const/non-const status).
The interface allows one to pass the model, data, and parameters via a workspace and then specify them with names. The interface will be extended so that one does not need to use a workspace.

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()
static TClass*Class()
static TClass*RooStats::CombinedCalculator::Class()
static TClass*RooStats::HypoTestCalculator::Class()
static TClass*RooStats::IntervalCalculator::Class()
virtual Double_tRooStats::CombinedCalculator::ConfidenceLevel() const
virtual Double_tRooStats::IntervalCalculator::ConfidenceLevel() const
virtual RooStats::HypoTestResult*GetHypoTest() const
virtual RooStats::ConfInterval*GetInterval() const
virtual RooStats::ConfInterval*RooStats::CombinedCalculator::GetInterval() const
virtual RooStats::ConfInterval*RooStats::IntervalCalculator::GetInterval() const
virtual voidRooStats::HypoTestCalculator::Initialize(RooAbsData& data, RooAbsPdf& commonPdf, RooArgSet& nullParameters, RooArgSet& alternateParameters, RooArgSet* nuisanceParameters = 0, RooAbsPdf* nuisancePdf = 0)
virtual voidRooStats::HypoTestCalculator::Initialize(RooAbsData& data, RooAbsPdf& nullPdf, RooAbsPdf& alternatePdf, RooArgSet* nullParameters = 0, RooArgSet* alternateParameters = 0, RooArgSet* nuisanceParameters = 0, RooAbsPdf* nuisancePdf = 0)
virtual voidRooStats::HypoTestCalculator::Initialize(RooWorkspace& ws, const char* data, const char* commonPdf, RooArgSet& nullParameters, RooArgSet& alternateParameters, RooArgSet* nuisanceParameters = 0, const char* nuisancePdf = 0)
virtual voidRooStats::HypoTestCalculator::Initialize(RooWorkspace& ws, const char* data, const char* nullPdf, const char* alternatePdf, RooArgSet* nullParameters = 0, RooArgSet* alternateParameters = 0, RooArgSet* nuisanceParameters = 0, const char* nuisancePdf = 0)
virtual TClass*IsA() const
virtual TClass*RooStats::CombinedCalculator::IsA() const
virtual TClass*RooStats::HypoTestCalculator::IsA() const
virtual TClass*RooStats::IntervalCalculator::IsA() const
RooStats::HypoTestCalculator&RooStats::HypoTestCalculator::operator=(const RooStats::HypoTestCalculator&)
RooStats::IntervalCalculator&RooStats::IntervalCalculator::operator=(const RooStats::IntervalCalculator&)
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator()
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator(const RooStats::ProfileLikelihoodCalculator&)
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator(RooAbsData& data, RooAbsPdf& pdf, RooArgSet& paramsOfInterest, Double_t size = 0.05, RooArgSet* nullParams = 0, RooArgSet* altParams = 0)
RooStats::ProfileLikelihoodCalculatorProfileLikelihoodCalculator(RooWorkspace& ws, RooAbsData& data, RooAbsPdf& pdf, RooArgSet& paramsOfInterest, Double_t size = 0.05, RooArgSet* nullParams = 0, RooArgSet* altParams = 0)
virtual voidRooStats::CombinedCalculator::SetAlternateParameters(RooArgSet& set)
virtual voidRooStats::HypoTestCalculator::SetAlternateParameters(RooArgSet&)
virtual voidRooStats::CombinedCalculator::SetAlternatePdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetAlternatePdf(const char* name)
virtual voidRooStats::HypoTestCalculator::SetAlternatePdf(const char* name)
virtual voidRooStats::HypoTestCalculator::SetAlternatePdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetCommonPdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetCommonPdf(const char* name)
virtual voidRooStats::HypoTestCalculator::SetCommonPdf(const char* name)
virtual voidRooStats::HypoTestCalculator::SetCommonPdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetConfidenceLevel(Double_t cl)
virtual voidRooStats::CombinedCalculator::SetData(RooAbsData& data)
virtual voidRooStats::CombinedCalculator::SetData(const char* name)
virtual voidRooStats::CombinedCalculator::SetNuisanceParameters(RooArgSet& set)
virtual voidRooStats::HypoTestCalculator::SetNuisanceParameters(RooArgSet&)
virtual voidRooStats::IntervalCalculator::SetNuisanceParameters(RooArgSet&)
virtual voidRooStats::HypoTestCalculator::SetNuisancePdf(const char*)
virtual voidRooStats::HypoTestCalculator::SetNuisancePdf(RooAbsPdf&)
virtual voidRooStats::CombinedCalculator::SetNullParameters(RooArgSet& set)
virtual voidRooStats::HypoTestCalculator::SetNullParameters(RooArgSet&)
virtual voidRooStats::CombinedCalculator::SetNullPdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetNullPdf(const char* name)
virtual voidRooStats::HypoTestCalculator::SetNullPdf(const char* name)
virtual voidRooStats::HypoTestCalculator::SetNullPdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetParameters(RooArgSet& set)
virtual voidRooStats::IntervalCalculator::SetParameters(RooArgSet&)
virtual voidRooStats::CombinedCalculator::SetPdf(RooAbsPdf& pdf)
virtual voidRooStats::CombinedCalculator::SetPdf(const char* name)
virtual voidRooStats::IntervalCalculator::SetPdf(RooAbsPdf&)
virtual voidRooStats::IntervalCalculator::SetPdf(const char* name)
virtual voidRooStats::CombinedCalculator::SetTestSize(Double_t size)
virtual voidRooStats::IntervalCalculator::SetTestSize(Double_t size)
virtual voidRooStats::CombinedCalculator::SetWorkspace(RooWorkspace& ws)
virtual voidRooStats::HypoTestCalculator::SetWorkspace(RooWorkspace& ws)
virtual voidRooStats::IntervalCalculator::SetWorkspace(RooWorkspace& ws)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidRooStats::CombinedCalculator::ShowMembers(TMemberInspector& insp, char* parent)
virtual voidRooStats::HypoTestCalculator::ShowMembers(TMemberInspector& insp, char* parent)
virtual voidRooStats::IntervalCalculator::ShowMembers(TMemberInspector& insp, char* parent)
virtual Double_tRooStats::CombinedCalculator::Size() const
virtual Double_tRooStats::IntervalCalculator::Size() const
virtual voidStreamer(TBuffer& b)
virtual voidRooStats::CombinedCalculator::Streamer(TBuffer& b)
virtual voidRooStats::HypoTestCalculator::Streamer(TBuffer& b)
virtual voidRooStats::IntervalCalculator::Streamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidRooStats::CombinedCalculator::StreamerNVirtual(TBuffer& b)
voidRooStats::HypoTestCalculator::StreamerNVirtual(TBuffer& b)
voidRooStats::IntervalCalculator::StreamerNVirtual(TBuffer& b)

Data Members

protected:
RooArgSet*RooStats::CombinedCalculator::fAlternateParamsRooArgSet specifying alternate parameters for hypothesis test
const char*RooStats::CombinedCalculator::fDataNamename of data set in workspace
RooArgSet*RooStats::CombinedCalculator::fNuisParamsRooArgSet specifying nuisance parameters for interval
RooArgSet*RooStats::CombinedCalculator::fNullParamsRooArgSet specifying null parameters for hypothesis test
Bool_tRooStats::CombinedCalculator::fOwnsWorkspace
RooArgSet*RooStats::CombinedCalculator::fPOIRooArgSet specifying parameters of interest for interval
const char*RooStats::CombinedCalculator::fPdfNamename of common PDF in workspace
Double_tRooStats::CombinedCalculator::fSizesize of the test (eg. specified rate of Type I error)
RooWorkspace*RooStats::CombinedCalculator::fWSa workspace that owns all the components to be used by the calculator

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

ProfileLikelihoodCalculator()
 default constructor
ProfileLikelihoodCalculator(RooWorkspace& ws, RooAbsData& data, RooAbsPdf& pdf, RooArgSet& paramsOfInterest, Double_t size = 0.05, RooArgSet* nullParams = 0, RooArgSet* altParams = 0)
{}
ProfileLikelihoodCalculator(RooAbsData& data, RooAbsPdf& pdf, RooArgSet& paramsOfInterest, Double_t size = 0.05, RooArgSet* nullParams = 0, RooArgSet* altParams = 0)
{}
~ProfileLikelihoodCalculator()
 destructor
ConfInterval* 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
ProfileLikelihoodCalculator()