ROOT logo
ROOT » ROOFIT » ROOSTATS » RooStats::NeymanConstruction

class RooStats::NeymanConstruction: public RooStats::IntervalCalculator


NeymanConstruction is a concrete implementation of the NeymanConstruction interface that, as the name suggests, performs a NeymanConstruction. It produces a RooStats::PointSetInterval, which is a concrete implementation of the ConfInterval interface.

The Neyman Construction is not a uniquely defined statistical technique, it requires that one specify an ordering rule or ordering principle, which is usually incoded by choosing a specific test statistic and limits of integration (corresponding to upper/lower/central limits). As a result, this class must be configured with the corresponding information before it can produce an interval. Common configurations, such as the Feldman-Cousins approach, can be enforced by other light weight classes.

The Neyman Construction considers every point in the parameter space independently, no assumptions are made that the interval is connected or of a particular shape. As a result, the PointSetInterval class is used to represent the result. The user indicate which points in the parameter space to perform the constrution by providing a PointSetInterval instance with the desired points.

This class is fairly light weight, because the choice of parameter points to be considered is factorized and so is the creation of the sampling distribution of the test statistic (which is done by a concrete class implementing the DistributionCreator interface). As a result, this class basically just drives the construction by:

  • using a DistributionCreator to create the SamplingDistribution of a user-defined test statistic for each parameter point of interest,
  • defining the acceptance region in the data by finding the thresholds on the test statistic such that the integral of the sampling distribution is of the appropriate size and consistent with the limits of integration (eg. upper/lower/central limits),
  • and finally updating the PointSetInterval based on whether the value of the test statistic evaluated on the data are in the acceptance region.
  • 
    
    

Function Members (Methods)

Data Members

private:
boolfAdaptiveSamplingcontrols use of adaptive sampling algorithm
Double_tfAdditionalNToysFactorgive user ability to ask for more toys
RooStats::ConfidenceBelt*fConfBelt
boolfCreateBeltcontrols use if ConfidenceBelt should be saved to a TFile
RooAbsData&fDatadata set
Double_tfLeftSideFraction
RooStats::ModelConfig&fModel
RooAbsData*fPointsToTest
boolfSaveBeltToFilecontrols use if ConfidenceBelt should be saved to a TFile
Double_tfSizesize of the test (eg. specified rate of Type I error)
RooStats::TestStatSampler*fTestStatSampler

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

NeymanConstruction(RooAbsData& data, RooStats::ModelConfig& model)
 default constructor
   fWS = new RooWorkspace();
   fOwnsWorkspace = true;
   fDataName = "";
   fPdfName = "";
~NeymanConstruction()
 default constructor
  if(fOwnsWorkspace && fWS) delete fWS;
  if(fConfBelt) delete fConfBelt;
PointSetInterval* GetInterval() const
 Main interface to get a RooStats::ConfInterval.
 It constructs a RooStats::SetInterval.
NeymanConstruction(RooAbsData& data, RooStats::ModelConfig& model)
void SetTestStatSampler(RooStats::TestStatSampler& sampler)
 in addition to interface we also need:
 Set the TestStatSampler (eg. ToyMC or FFT, includes choice of TestStatistic)
{fTestStatSampler = &sampler;}
void SetLeftSideTailFraction(Double_t leftSideFraction = 0.)
 fLeftSideTailFraction*fSize defines lower edge of acceptance region.
 Unified limits use 0, central limits use 0.5,
 for upper/lower limits it is 0/1 depends on sign of test statistic w.r.t. parameter
{fLeftSideFraction = leftSideFraction;}
void SetParameterPointsToTest(RooAbsData& pointsToTest)
 User-defined set of points to test
Double_t Size() const
 This class can make regularly spaced scans based on range stored in RooRealVars.
 Choose number of steps for a rastor scan (common for each dimension)
      void SetNumSteps(Int_t);
 This class can make regularly spaced scans based on range stored in RooRealVars.
 Choose number of steps for a rastor scan (specific for each dimension)
      void SetNumSteps(map<RooAbsArg, Int_t>)
 Get the size of the test (eg. rate of Type I error)
{return fSize;}
Double_t ConfidenceLevel() const
 Get the Confidence level for the test
{return 1.-fSize;}
void SetModel(const RooStats::ModelConfig& model)
 Set ModelConfig
{fModel = model;}
void SetData(RooAbsData& data)
 Set the DataSet
{ fData = data; }
void SetPdf(RooAbsPdf& )
 Set the Pdf, add to the the workspace if not already there
void SetParameters(const RooArgSet& )
 specify the parameters of interest in the interval
void SetNuisanceParameters(const RooArgSet& )
 specify the nuisance parameters (eg. the rest of the parameters)
void SetTestSize(Double_t size)
 set the size of the test (rate of Type I error) ( Eg. 0.05 for a 95% Confidence Interval)
{fSize = size;}
void SetConfidenceLevel(Double_t cl)
 set the confidence level for the interval (eg. 0.95 for a 95% Confidence Interval)
{fSize = 1.-cl;}
ConfidenceBelt* GetConfidenceBelt()
 get confidence belt
{return fConfBelt;}
void UseAdaptiveSampling(bool flag = true)
 adaptive sampling algorithm to speed up interval caculation
void AdditionalNToysFactor(double fact)
 give user ability to ask for more toys
void SaveBeltToFile(bool flag = true)
 save teh confidence belt to a file
void CreateConfBelt(bool flag = true)
 should create confidence belt
{fCreateBelt = flag;}
TestStatSampler* GetTestStatSampler(void)
 Returns instance of TestStatSampler. Use to change properties of
 TestStatSampler, e.g. GetTestStatSampler.SetTestSize(Double_t size);
{ return fTestStatSampler; }