Table Of Contents
Table Of Contents

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 be the possible output of the discrete distribution and the probs
should be groud-truth probability.

Usually the user is required to specify the probs parameter.

After obtatining the p value, we could further use the standard p > 0.05 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