mxnet.test_utils.chi_square_check¶
-
mxnet.test_utils.
chi_square_check
(generator, buckets, probs, nsamples=1000000)[source]¶ Run the chi-square test for the generator. The generator can be both continuous and discrete.
If the generator is continuous, the buckets should contain tuples of (range_min, range_max) and the probs should be the corresponding ideal probability within the specific ranges. Otherwise, the buckets should contain all the possible values generated over the discrete distribution and the probs should be groud-truth probability.
Usually the user is required to specify the probs parameter.
After obtaining the p value, we could further use the standard p > 0.05 (alpha) threshold to get the final result.
Examples:
buckets, probs = gen_buckets_probs_with_ppf(lambda x: ss.norm.ppf(x, 0, 1), 5) generator = lambda x: np.random.normal(0, 1.0, size=x) p = chi_square_check(generator=generator, buckets=buckets, probs=probs) assert(p > 0.05)
- Parameters
generator (function) – A function that is assumed to generate i.i.d samples from a specific distribution. generator(N) should generate N random samples.
buckets (list of tuple or list of number) – The buckets to run the chi-square the test. Make sure that the buckets cover the whole range of the distribution. Also, the buckets must be in ascending order and have no intersection
probs (list or tuple) – The ground-truth probability of the random value fall in a specific bucket.
nsamples (int) – The number of samples to generate for the testing
- Returns
p (float) – p value that the generator has the expected distribution. A higher value indicates a larger confidence
obs_freq (list) – Observed frequency of buckets
expected_freq (list) – The expected (ground-truth) frequency of the buckets