我有一些从雷达卫星图像中采样的数据,并希望对其进行一些统计测试。在此之前,我想进行一个正态性检验,以确保我的数据服从正态分布。我的数据看起来服从正态分布,但当我进行测试时,得到了P值为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值。
我已经制作了一张关于数据的图表,并将其附加在下面。我认为,由于我处理的是负值,可能会导致问题,因此我对数值进行了归一化,但问题仍然存在。
min
和max
是Python中的关键字,因此我建议不要将它们用作变量。 - Eulenfuchswiesel