Форум сайта python.su
0
Нужно узнать, является ли распределение нормальным. Написал такой код
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np
from scipy.stats import chisquare
from scipy.stats import normaltest
mn =
with open('data.txt') as out_cos:
for line in out_cos:
mn.append(float(line))
print(len(mn))
data = np.array(mn)
mean = np.mean(data)
std = np.std(data)
x = np.linspace(mean - 3*std, mean + 3*std, 100)
#p_data = np.random.normal(mean, std, length)
print(mean, std)
plt.plot(x, mlab.normpdf(x, mean, std))
print(normaltest(data))
plt.hist(mn, bins=100, density=True) # bins - количество бункеров
plt.show()
но выводит NormaltestResult(statistic=643.8778670051769, pvalue=1.526503027640472e-140).
Если смотреть по картинке, то нормальность должна быть.
Не подскажете как еще можно проверить?
Отредактировано mordwin (Апрель 8, 2018 19:26:45)
Прикреплённый файлы:
norm.PNG (19,2 KБ)
Офлайн
35
Можно использовать тест Шапиро-Уилка; а также построить qqplot (stats.probplot), если точки будут лежать на прямой,
то данные нормальны, если нет – то в данных имеется уклонение от нормального закона распределения
import matplotlib.pyplot as plt import scipy.stats as stats data = np.random.uniform(size=100) stats.probplot(data, dist="norm", plot=plt) print("Shapiro-Wilk test for normality:", stats.shapiro(data)) plt.show()
Офлайн
0
scidamА для большого количества значений? Как я понял этот тест можно использовать для N<5000.
Можно использовать тест Шапиро-Уилка; а также построить qqplot (stats.probplot), если точки будут лежать на прямой, то данные нормальны, если нет – то в данных имеется уклонение от нормального закона распределения
Офлайн
4
Помимо тестов Шапиро-Уилка, хи-квадрат и QQ-диаграмм существуют еще минимум почти десятка полтора тестов на нормальность. На любой вкус любые условия и требования.
Ну, например:
1. http://webspace.ship.edu/pgmarr/Geo441/ … esting.pdf
2. А. В. Субботина, М. Гржибовский “Описательная статистика и проверка нормальности распределения данных”
3. http://journals.sbmu.ac.ir/jps/article/view/3974/3551
4. Б.Ю. Лемешко, А.П. Рогожников “ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ И МОЩНОСТИ НЕКОТОРЫХ КРИТЕРИЕВ НОРМАЛЬНОСТИ”
Или просто загляните в справочник Кобзаря - там этих тестов точно больше десятка.
Офлайн
35
mordwinДа, реализация в scipy предполагает выполнение этого условия.
А для большого количества значений? Как я понял этот тест можно использовать для N<5000.
Офлайн
0
Спасибо большое
Офлайн