Statistical comparison of two histograms (chi2, p-values)
Code: "stat_compare_h1d.py". Programming language: Python
DMelt Version 1. Last modified: 12/11/2015. License: Free
https://datamelt.org/code/cache/stat_compare_h1d_4945.py
To run this script using the DMelt IDE,
copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.
from jhplot import H1D
from java.util import Random
h1 = H1D("H1",20, -1, 1)
h2 = H1D("H2",20, -1, 1)
rand = Random()
# fill histograms sligly differently. Second distribution is narrower
for i in range(100):
d=rand.nextGaussian()
h1.fill(d)
h2.fill(d*0.9)
# compare histograms
d=h1.compareChi2(h2) # h1, h2 are H1D or H2D histograms defined above
print "chi2 / ndf =",d["chi2"]/d["ndf"]
print "p-value=",d["p-value"]
from hep.aida.util.comparison import *
r=StatisticalComparison.compare(h1.get(), h2.get(),'KS')
print"KolmogorovSmirnov method=",r.quality() ,"/",r.nDof()