我的数据太少,使用 ks-test,得到 p-value = 0.96。p-value>0.05,结果显着,p-value大于0.05,数据呈现正态分布。从图表中画出结果如下。
但是根据图表,直观地说,我不认为这个结果看起来像一个正态分布。
我可以相信 ks-test 的结果吗?
In [1]:everystep_mse[:-1]
Out[1]:[6.813272177131644,
6.27294325622763,
5.950493005641883,
5.51228036539783,
5.320906696737751,
4.603816141913221,
4.608844365904758,
3.921157423558209,
3.525868929566099,
3.850245340258806]
In [2]:std = np.array(everystep_mse[:-1]).std()
mean = np.array(everystep_mse[:-1]).mean()
print(std,mean)
Out[2]:1.0550652455084446 5.037982770233784
In [3]:from scipy import stats
everystep_mse_array = np.array(everystep_mse[:-1])
mean = everystep_mse_array.mean()
std = everystep_mse_array.std()
stats.kstest(everystep_mse_array, 'norm', (mean , std))
out[3]:KstestResult(statistic=0.15790092669613776, pvalue=0.9643743197080046)
In [4]:domain = np.linspace(np.min(everystep_mse[:-1]),np.max(everystep_mse[:-1]))
pyplot.plot(domain,norm.pdf(domain,mean,std),
label='$\mathcal{N}$'+f'$(\mu\\approx {round(mean)} ,\sigma \\approx
{round(std) })$')
plt.hist(everystep_mse[:-1], edgecolor='black',alpha=.5,density=True)
plt.title("Normal Fit")
plt.xlabel("Value")
plt.ylabel("Density")
plt.legend()
plt.show()