Notebook
In [1]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.stats.stattools import jarque_bera
In [2]:
np.random.seed(321)
In [14]:
# Generate a very large normally distributed sample
sample = np.random.normal(100, 10, 100000)
In [16]:
# Confirm this sample is very close to our inputs
plt.hist(sample, 20)
print('Mean: {}'.format(np.mean(sample)))
print('Std: {}'.format(np.std(sample)))
plt.show()
Mean: 100.04216338636972
Std: 10.032241589718812
In [17]:
jarque_bera(sample)
Out[17]:
(0.6016029177476322,
 0.74022472320854493,
 -0.004009785051273834,
 3.008948250981603)
In [18]:
# Generate a very large bimodal distribution
first_component = np.random.normal(100, 10, 10000)
second_component = np.random.normal(2000, 10, 10000)
sample_two = np.concatenate([first_component, second_component])
In [21]:
# Confirm this sample is obviously NOT normally distributed
plt.hist(sample_two, 100)
print('Mean: {}'.format(np.mean(sample)))
print('Std: {}'.format(np.std(sample)))
plt.show()
Mean: 100.04216338636972
Std: 10.032241589718812
In [22]:
jarque_bera(sample_two)
Out[22]:
(3331.8460610090942, 0.0, -4.550882758740734e-06, 1.00044623149862)
In [ ]: