Проверка нормального распределения с помощью теста Колмогорова - PullRequest
0 голосов
/ 06 января 2020

Я изучаю статистику, используя python, и у меня есть задача проверить, что данные имеют нормальное распределение со средним значением = 10 и дисперсией = 5,5. Я проверил функцию scipy.stats.kstest, но я не понимаю, как интерпретировать результаты и где я должен передавать средние и дисперсионные аргументы.

Спасибо за вашу помощь

1 Ответ

1 голос
/ 09 января 2020

Создание набора данных

import scipy
import matplotlib.pyplot  as plt
# generate data with norm(mean = 0,std = 15)
data = scipy.stats.norm.rvs(loc = 0,scale = 15,size = 1000,random_state = 0)

Perfrom KS-test

# perform KS test on your sample versus norm(10,5.5)
D, p = scipy.stats.kstest(data, 'norm', args= (10, 5.5))
test = 'Reject' if p < 0.05 else 'Not reject'
print(f'D-statistics: {D:.4f},\np-value: {p:.4f}, \ntest-result: {test}')

Out:

'D-статистика: 0.5091, p-значение: 0,0000, результат теста: Отклонить '

Добавить график с распределениями и вашими данными

# draw a plot to see the distribution and your data hist
# draw a plot to see the distribution and your data hist
fig, ax = plt.subplots(1, 1)
x = np.linspace(data.min(),data.max(),100)
ax.plot(x, scipy.stats.norm.pdf(x,loc = 10, scale = 5.5), 'r-', color='green', lw=1, alpha=0.6, label='norm(10,5.5) pdf')
ax.hist(data, normed=True, histtype='stepfilled', bins=20, alpha=0.2, label='my data distribution')
ax.legend(loc='best', frameon=False)
plt.title('norm(10,5.5) vs. data')
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...