У меня есть некоторые данные, которые я взял со спутникового снимка с радара, и я хотел провести некоторые статистические тесты. Перед этим я хотел провести тест на нормальность, чтобы убедиться, что мои данные нормально распределены. Мои данные кажутся нормально распределенными, но когда я выполняю тест, я получаю Pvalue 0, предполагая, что мои данные не распределены нормально.
Я приложил свой код вместе с выводом и гистограммой распределения (я относительно новичок в python, поэтому извиняюсь, если мой код каким-либо образом неуклюж). Может ли кто-нибудь сказать мне, если я делаю что-то неправильно - мне трудно поверить из моей гистограммы, что мои данные не распределены нормально?
values = 'inputfile.h5'
f = h5py.File(values,'r')
dset = f['/DATA/DATA']
array = dset[...,0]
print('normality =', scipy.stats.normaltest(array))
max = np.amax(array)
min = np.amin(array)
histo = np.histogram(array, bins=100, range=(min, max))
freqs = histo[0]
rangebins = (max - min)
numberbins = (len(histo[1])-1)
interval = (rangebins/numberbins)
newbins = np.arange((min), (max), interval)
histogram = bar(newbins, freqs, width=0.2, color='gray')
plt.show()
Это печатает это: (41099.095955202931, 0.0). первый элемент представляет собой значение хи-квадрат, а второй - значение p.
Я сделал график данных, которые я приложил. Я подумал, что, возможно, поскольку я имею дело с отрицательными значениями, это вызывает проблему, поэтому я нормализовал значения, но проблема не устранена.
normaltest(np.random.normal(loc=100, scale=10, size=1000))
по-прежнему возвращает однородные p-значения, даже если среднее значение равно 100, а стандартное отклонение равно 10. - person David Robinson   schedule 04.03.2014min
иmax
являются ключевыми словами в python, поэтому я бы посоветовал не использовать их в качестве переменных. - person Eulenfuchswiesel   schedule 08.05.2018