NO4 -- 数据分布-Python实战

使用 Python 验证数据集中的体温是否符合正态分布。

在这里插入图片描述

温度数据的基本信息描述性统计

import pandas as pd

datadf = pd.read_csv('http://jse.amstat.org/datasets/normtemp.dat.txt',header=None,sep='\s+',names=['体温','性别','心率'])
datadf['体温'].describe() 	#显示数值型数据的描述统计

结果

count    130.000000		# 总数
mean      98.249231		# 均值
std        0.733183		# 标准差
min       96.300000		# 极小值
25%       97.800000		# 第一四分位数Q1
50%       98.300000		# 中位数
75%       98.700000		# 第三四分位数Q3
max      100.800000		# 极大值
Name: 体温, dtype: float64

检验温度数据是否符合正态分布

1.直接用算法做KS检验(样本量大于50)

from scipy import stats
u = datadf['体温'].mean()  
std = datadf['体温'].std()  
stats.kstest(datadf['体温'], 'norm', (u, std))
# KstestResult(statistic=0.06472685044046644, pvalue=0.645030731743997)

结果返回两个值:statistic → D值,pvalue → P值

2.W检验(shapiro -wilk)

stats.shapiro(datadf['体温'])
# (0.9865769743919373, 0.2331680953502655)

返回:W → 统计数;p-value → p值

以上两种检验都是根据P值是否大于0.05确定是否为正态性,当P>0.05时,可以认为数据是呈正态分布的,小于为非正态性。

3.直接画出分布图观察是否符合正态分布

主流观点:就正态性检验而言,图示是最直接也是最可靠的方法,直方图是最常用的,一旦视觉上认为是正态的就可以。

画直方图

import matplotlib.pyplot as plt
plt.hist(datadf['体温'], bins=130, histtype='bar', color='r', density=True)
plt.show()

在这里插入图片描述
带拟合曲线的

import seaborn as sns 
sns.set_palette("hls")
sns.distplot(datadf['体温'],color="r",bins=130,kde=True)
plt.show()

在这里插入图片描述
根据以上观察,我们可以肯定数据集中的体温数据符合正态分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值