MaCh3 2.2.1
Reference Guide
Loading...
Searching...
No Matches
StatisticalUtils.h
Go to the documentation of this file.
1#pragma once
2
3// C++ includes
4#include <iostream>
5#include <sstream>
6#include <iomanip>
7#include <vector>
8#include <algorithm>
9#include <cmath>
10
11//MaCh3 includes
12#include "Manager/Manager.h"
14
16// ROOT includes
17#include "TCanvas.h"
18#include "TLine.h"
19#include "TROOT.h"
20#include "TStyle.h"
22
26
29std::string GetJeffreysScale(const double BayesFactor);
30
33std::string GetDunneKaboth(const double BayesFactor);
34
36double GetSigmaValue(const int sigma);
37
39double GetBIC(const double llh, const int data, const int nPars);
40
43double GetNeffective(const int N1, const int N2);
44
49void CheckBonferoniCorrectedpValue(const std::vector<std::string>& SampleNameVec,
50 const std::vector<double>& PValVec,
51 const double Threshold = 0.05);
52
56double GetAndersonDarlingTestStat(const double CumulativeData, const double CumulativeMC, const double CumulativeJoint);
57
59int GetNumberOfRuns(const std::vector<int>& GroupClasifier);
60
66double GetBetaParameter(const double data, const double mc, const double w2, TestStatistic TestStat);
67
70double GetSubOptimality(const std::vector<double>& EigenValues, const int TotalTarameters);
71
76void GetArithmetic(TH1D * const hist, double& Mean, double& Error);
77
83void GetGaussian(TH1D*& hist, TF1* gauss, double& Mean, double& Error);
84
92void GetHPD(TH1D* const hist, double& Mean, double& Error, double& Error_p, double& Error_m, const double coverage = 0.6827);
93
97void GetCredibleInterval(const std::unique_ptr<TH1D>& hist, std::unique_ptr<TH1D>& hpost_copy, const double coverage = 0.6827);
98
103void GetCredibleIntervalSig(const std::unique_ptr<TH1D>& hist, std::unique_ptr<TH1D>& hpost_copy, const bool CredibleInSigmas, const double coverage = 0.6827);
104
108void GetCredibleRegion(std::unique_ptr<TH2D>& hist2D, const double coverage = 0.6827);
109
114void GetCredibleRegionSig(std::unique_ptr<TH2D>& hist2D, const bool CredibleInSigmas, const double coverage = 0.6827);
115
118double GetIQR(TH1D *Hist);
119
125double ComputeKLDivergence(TH2Poly* DataPoly, TH2Poly* PolyMC);
126
131double FisherCombinedPValue(const std::vector<double>& pvalues);
132
139void ThinningMCMC(const std::string& FilePath, const int ThinningCut);
140
152double GetZScore(const double value, const double mean, const double stddev);
153
161double GetPValueFromZScore(const double zScore);
162
165double GetModeError(TH1D* hpost);
166
170void Get2DBayesianpValue(TH2D *Histogram);
#define _MaCh3_Safe_Include_Start_
KS: Avoiding warning checking for headers.
Definition: Core.h:106
#define _MaCh3_Safe_Include_End_
KS: Restore warning checking after including external headers.
Definition: Core.h:117
double ** Mean
Definition: RHat.cpp:58
TestStatistic
Make an enum of the test statistic that we're using.
double GetSigmaValue(const int sigma)
KS: Convert sigma from normal distribution into percentage.
double ComputeKLDivergence(TH2Poly *DataPoly, TH2Poly *PolyMC)
Compute the Kullback-Leibler divergence between two TH2Poly histograms.
void GetCredibleIntervalSig(const std::unique_ptr< TH1D > &hist, std::unique_ptr< TH1D > &hpost_copy, const bool CredibleInSigmas, const double coverage=0.6827)
KS: Get 1D histogram within credible interval, hpost_copy has to have the same binning,...
double GetSubOptimality(const std::vector< double > &EigenValues, const int TotalTarameters)
Based on .
void GetCredibleRegion(std::unique_ptr< TH2D > &hist2D, const double coverage=0.6827)
KS: Set 2D contour within some coverage.
double GetBIC(const double llh, const int data, const int nPars)
Get the Bayesian Information Criterion (BIC) or Schwarz information criterion (also SIC,...
double GetPValueFromZScore(const double zScore)
Compute the P-value from a given Z-score.
void Get2DBayesianpValue(TH2D *Histogram)
Calculates the 2D Bayesian p-value and generates a visualization.
double GetZScore(const double value, const double mean, const double stddev)
Compute the Z-score for a given value.
void GetGaussian(TH1D *&hist, TF1 *gauss, double &Mean, double &Error)
CW: Fit Gaussian to posterior.
double GetModeError(TH1D *hpost)
Get the mode error from a TH1D.
double GetAndersonDarlingTestStat(const double CumulativeData, const double CumulativeMC, const double CumulativeJoint)
double FisherCombinedPValue(const std::vector< double > &pvalues)
KS: Combine p-values using Fisher's method.
void GetCredibleRegionSig(std::unique_ptr< TH2D > &hist2D, const bool CredibleInSigmas, const double coverage=0.6827)
KS: Set 2D contour within some coverage.
double GetIQR(TH1D *Hist)
Interquartile Range (IQR)
void ThinningMCMC(const std::string &FilePath, const int ThinningCut)
Thin MCMC Chain, to save space and maintain low autocorrelations.
std::string GetJeffreysScale(const double BayesFactor)
KS: Following H. Jeffreys .
void GetHPD(TH1D *const hist, double &Mean, double &Error, double &Error_p, double &Error_m, const double coverage=0.6827)
Get Highest Posterior Density (HPD)
double GetNeffective(const int N1, const int N2)
KS: See 14.3.10 in Numerical Recipes in C .
void GetArithmetic(TH1D *const hist, double &Mean, double &Error)
CW: Get Arithmetic mean from posterior.
void GetCredibleInterval(const std::unique_ptr< TH1D > &hist, std::unique_ptr< TH1D > &hpost_copy, const double coverage=0.6827)
KS: Get 1D histogram within credible interval, hpost_copy has to have the same binning,...
std::string GetDunneKaboth(const double BayesFactor)
KS: Based on Table 1 in https://www.t2k.org/docs/technotes/435.
int GetNumberOfRuns(const std::vector< int > &GroupClasifier)
KS: https://esjeevanand.uccollege.edu.in/wp-content/uploads/sites/114/2020/08/NON-PARAMTERIC-TEST-6....
void CheckBonferoniCorrectedpValue(const std::vector< std::string > &SampleNameVec, const std::vector< double > &PValVec, const double Threshold=0.05)
KS: For more see https://www.t2k.org/docs/technotes/429/TN429_v8#page=63.
double GetBetaParameter(const double data, const double mc, const double w2, TestStatistic TestStat)
KS: Calculate Beta parameter which will be different based on specified test statistic.