from scipy import stats import pandas as pd import numpy as np import matplotlib.pylab as plt # scipy包是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算 data = [87,77,92,68,80,78,84,77,81,80,80,77,92,86, 76,80,81,75,77,72,81,72,84,86,80,68,77,87, 76,77,78,92,75,80,78] # 样本数据,35位健康男性在未进食之前的血糖浓度 df = pd.DataFrame(data, columns =['value']) u = df['value'].mean() # 计算均值 std = df['value'].std() # 计算标准差 ks_result = stats.kstest(df['value'], 'norm', (u, std)) print('ks_res:',ks_result) p_value = ks_result[1] if p_value>0.05: print('为正太分布') # .kstest方法:KS检验,参数分别是:待检验的数据,检验方法(这里设置成norm正态分布),均值与标准差 # 结果返回两个值:statistic → D值,pvalue → P值 # p值大于0.05,为正态分布 df['value'].plot(kind='kde', grid=True, style='-k', title='密度曲线') plt.title('destiny') plt.show() plt.scatter(df.index, df['value'], color='r', marker='.', alpha=0.5) plt.grid() plt.title('分布') plt.show()
如何判断数据分布为正太分布
最新推荐文章于 2024-03-09 23:04:19 发布