def test(self):
nr_observations = sum(self.histogram)
observed_frequencies = []
expected_frequencies = []
frequencies_of = []
thresh = 10
for i in range(0, len(self.histogram)):
observed = self.histogram[i]
expected = stats.poisson.pmf(i, self.lambda_) * nr_observations
if (
(observed >= thresh)
and (expected >= thresh)):
observed_frequencies.append(observed)
expected_frequencies.append(expected)
frequencies_of.append(i)
results = stats.chisquare(observed_frequencies,
expected_frequencies)
print("expected: mean %f variance %f" % (
self.expected_mean(),
self.expected_variance()))
print("actual: mean %f variance %f" % (
self.mean(),
self.variance()))
print(len(expected_frequencies))
print(results)
from matplotlib import pyplot
import matplotlib
pyplot.switch_backend('Qt5Agg')
actual_plot, = pyplot.plot(frequencies_of, observed_frequencies, label='actual')
expected_plot, = pyplot.plot(frequencies_of, expected_frequencies, 'r', linewidth=1, label='expected')
matplotlib.interactive(True)
#pyplot.ylabel("People at Table")
#pyplot.xlabel("Table Number")
#pyplot.title("Chinese Restaurant Process Unit Test")
pyplot.legend()
pyplot.show(block=True)
return results
评论列表
文章目录