假设性检验的实践

本周需要解决的几个小问题:
1、人体体温的总体均值是否为98.6华氏度?
2、人体的温度是否服从正态分布?
3、人体体温中存在的异常数据是哪些?
4、男女体温是否存在明显差异?
5、体温与心率间的相关性(强?弱?中等?)

在这里插入图片描述在这里插入图片描述

import pandas as pd
import numpy as np
import os
from scipy import stats
 
os.chdir('F://Desktop//统计学第二期//第十周,第十一周')
 
data = pd.read_csv('xxx')
'''
Gender:性别,1为男性,2为女性 ;Temperature:体温;HeartRate:心率;
'''
 
#数据探索
data.Temperature.describe()
 
# 1、人体体温的总体均值是否为98.6华氏度?
#mean      98.249231
 
# 2、人体的温度是否服从正态分布?
ks_test = stats.kstest(data['Temperature'], 'norm')
print('ks_test:',ks_test)
'''scipy.stats.kstest(K-S检验)
   原假设:数据符合正态分布
   输入数据,检验方法norm 正态分布
   输出结果中第一个为统计量,
   第二个为P值(注:统计量越接近0就越表明数据和标准正态分布拟合的越好,
   如果P值大于显著性水平,通常是0.05,接受原假设,则判断样本的总体服从正态分布)
'''
#ks_test: KstestResult(statistic=1.0, pvalue=0.0)
#不是正态分布
 
mean = data.Temperature.mean()
std = data.Temperature.std()
print('均值为:%.2f,标准差为:%.2f' % (mean,std))
print('------')
#  计算均值,标准差
data_2 = data.Temperature
data_3=data_2.sort_values()  # 重新排序
print(data_3.head())
data_3 = data_3.reset_index(drop = False)  # 重新排序后,更新index
del data_3['index']
 
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (10,6))
ax1 = fig.add_subplot(2,1,1)  # 创建子图1
ax1.scatter(data_2.index, data_2.values)
plt.grid()
# 绘制数据分布图
#data_3.hist(alpha = 0.5)不同颜色
 
fig = plt.figure(figsize = (10,6))
ax2 = fig.add_subplot(2,1,2)  # 创建子图2
data_3.hist(bins=30,ax = ax2)
#bins : integer or array_like, optional 这个参数指定bin(箱子)的个数
#这个例子中也就是横轴的数据个数
data_3.plot(kind = 'kde', secondary_y=True,ax = ax2)
plt.grid()
 
#3、人体体温中存在的异常数据是哪些?
# 箱线图看异常值
 
fig,axes = plt.subplots(1,3)
color = dict(boxes='DarkGreen', whiskers='DarkOrange',
              medians='DarkBlue', caps='Red')
# boxes表示箱体,whisker表示触须线
# medians表示中位数,caps表示最大与最小值界限
 
data.plot(kind='box',ax=axes,subplots=True,title='Different boxplots',color=color,sym='r+')
# sym参数表示异常值标记的方式
 
axes[0].set_ylabel('values of Temperature')
axes[1].set_ylabel('values of gender')
axes[2].set_ylabel('values of HeartRate')
 
 
fig.subplots_adjust(wspace=1,hspace=1)  # 调整子图之间的间距
fig.savefig('p2.png')    # 将绘制的图片保存为p2.png
 
 
#4、男女体温是否存在明显差异?
 
data.boxplot(column='Temperature',by='Gender')
 
#5、体温与心率间的相关性(强?弱?中等?)
 
a = [random.randint(0, 100) for a in range(20)]
b = [random.randint(0, 100) for a in range(20)]
col_n = ['Temperature','HeartRate']
 
ab = pd.DataFrame(data,columns = col_n)
计算相关系数
ab.corr()
 
             Temperature  HeartRate
Temperature     1.000000   0.253656
HeartRate       0.253656   1.000000
 
#计算协方差
print(data.Temperature.cov(data.HeartRate))
1.3133810375670798
 
弱相关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值