首页 > 编程知识 正文

使用python实现正态分布检验

时间:2023-05-04 21:22:09 阅读:275646 作者:3017

本次的正态分布检验的数据描述为What’s Normal? – Temperature, Gender, and Heart Rate中的数据,其中数据源中包含体温、性别和心率三个数据。这次我们选择文章中的一个问题来实现,即样本的中的体温是否符合正态分布。

正态性检验

通过样本数据来判断总体是否服从正态分布的检验称为正态性检验。

以下的数据为了方便起见,data.txt中只包含了体温一列。

1、通过直方图初步判断样本数据是否符合正态分布 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdatas = pd.read_table(r'D:normal_testdata.txt', encoding='utf-8',names = ['Temperature'])fig = plt.figure(figsize = (10,6))ax2 = fig.add_subplot(1,1,1)datas.hist(bins=50,ax = ax2)datas.plot(kind = 'kde', secondary_y=True,ax = ax2)plt.grid()plt.show()

输出结果如下图

从输出结果图可以看出直方图呈现出很明显的正态分布特性。

2、直接用算法做KS检验 import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom scipy import statsdata = pd.read_table(r'D:normal_testdata.txt', encoding='utf-8',names = ['Temperature'])df = pd.DataFrame(data, columns =['Temperature'])u = df['Temperature'].mean() # 计算均值std = df['Temperature'].std() # 计算标准差# kstest方法中的参数分别是:待检验的数据,检验方法(这里设置成norm正态分布),均值与标准差# 返回两个值:statistic → D值,pvalue → P值# 当p值大于0.05,说明待检验的数据符合为正态分布result = stats.kstest(df['Temperature'], 'norm', (u, std))print(result)

输出结果为:

KstestResult(statistic=0.06472685044046644, pvalue=0.645030731743997)

从输出结果来看pvalue为0.645,大于0.05,因此可以接受体温符合正态分布的假设。

总结

以上两种检验方法的输出结果说明样本的体温数据符合正态分布。

参考文献

What’s Normal? – Temperature, Gender, and Heart Rate

测试数据集

数据分析之正态分布检验及python实现

极速赛车买前5名的方法ture'].std() # 计算标准差# kstest方法中的参数分别是:待检验的数据,检验方法(这里设置成norm正态分布),均值与标准差# 返回两个值:statistic → D值,pvalue → P值# 当p值大于0.05,说明待检验的数据符合为正态分布result = stats.kstest(df['Temperature'], 'norm', (u, std))print(result)

输出结果为:

KstestResult(statistic=0.06472685044046644, pvalue=0.645030731743997)

从输出结果来看pvalue为0.645,大于0.05,因此可以接受体温符合正态分布的假设。

总结

以上两种检验方法的输出结果说明样本的体温数据符合正态分布。

参考文献

What’s Normal? – Temperature, Gender, and Heart Rate

测试数据集

数据分析之正态分布检验及python实现

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。