Найти - Пользователи
Полная версия: Нормальное распределение и хи-квадрат
Начало » Python для новичков » Нормальное распределение и хи-квадрат
1
mordwin
Нужно узнать, является ли распределение нормальным. Написал такой код
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).
Если смотреть по картинке, то нормальность должна быть.
Не подскажете как еще можно проверить?
scidam
Можно использовать тест Шапиро-Уилка; а также построить 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()
mordwin
scidam
Можно использовать тест Шапиро-Уилка; а также построить qqplot (stats.probplot), если точки будут лежать на прямой, то данные нормальны, если нет – то в данных имеется уклонение от нормального закона распределения
А для большого количества значений? Как я понял этот тест можно использовать для N<5000.
passant
Помимо тестов Шапиро-Уилка, хи-квадрат и QQ-диаграмм существуют еще минимум почти десятка полтора тестов на нормальность. На любой вкус любые условия и требования.
Ну, например:
1. http://webspace.ship.edu/pgmarr/Geo441/ … esting.pdf
2. А. В. Субботина, М. Гржибовский “Описательная статистика и проверка нормальности распределения данных”
3. http://journals.sbmu.ac.ir/jps/article/view/3974/3551
4. Б.Ю. Лемешко, А.П. Рогожников “ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ И МОЩНОСТИ НЕКОТОРЫХ КРИТЕРИЕВ НОРМАЛЬНОСТИ”
Или просто загляните в справочник Кобзаря - там этих тестов точно больше десятка.
scidam
mordwin
А для большого количества значений? Как я понял этот тест можно использовать для N<5000.
Да, реализация в scipy предполагает выполнение этого условия.
У вас очень большое число измерений; в этом случае вам можно еще порекомендовать тест Колмогорова-Смирнова (stats.kstest).

mordwin
Спасибо большое
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB