关于体温、性别、心率的临床数据简单分析 – Python量化投资

关于体温、性别、心率的临床数据简单分析

数据选自Journal of the American Medical Association(http://jse.amstat.org/v4n2/datasets.shoemaker.html

)关于体温、性别、心率的临床数据,并对以下问题进行数据分析:

人类体温均值真的是98.6F吗?(Journal of the American Medical Association entitled “A Critical Appraisal of 98.6 Degrees F, the Upper Limit of the Normal Body Temperature

体温样本数据是否服从正态分布?

不正常的体温是多少?

男性和女性的正常体温有明显的区别吗?

体温和心率是否有相关性?

为了找到以上问题的答案,我们使用python来对样本数据做一下分析。

1. 人类体温均值真的是98.6F吗?

体温散点图

注:样本共130条数据,其中male数据65条,female数据65条。

importpandasaspddf = pd.read_csv(‘http://jse.amstat.org/datasets/normtemp.dat.txt’, header =None,sep =’\s+’,names=[‘体温’,’性别’,’心率’])#读取数据df[‘体温’].describe()”’

count    130.000000

mean      98.249231

std        0.733183

min      96.300000

25%      97.800000

50%      98.300000

75%      98.700000

max      100.800000

”’

结论:可以看到 体温的均值为 98.25 F.

2. 体温样本数据是否服从正态分布?

检测体温是否服从正态分布:以下分别使用 kstest、shapiro、normaltest三种方法来检验。

u = df[‘体温’].mean()# 计算均值std = df[‘体温’].std()# 计算标准差ks_test = kstest(df[‘体温’],’norm’,(u,std))#KstestResult(statistic=0.06472685044046644, pvalue=0.645030731743997)shapiro_test = scipy.stats.shapiro(df[‘体温’])#(0.9865770936012268, 0.233174666762352)normaltest_test = normaltest(df[‘体温’], axis=None)#NormaltestResult(statistic=2.703801433319236, pvalue=0.2587479863488212)

结论:三种检验的pvalue值均大于5%,因此体温值服从正态分布。

体温分布直方图

我们通过绘制体温的密度分布直方图也可以看出来服从正态分布。

3. 不正常的体温是多少?

利用箱线图剔除异常值

体温分布箱线图

# 计算上下四分位数Q1 = df[‘体温’].quantile(q =0.25)#97.8Q3 = df[‘体温’].quantile(q =0.75)#98.7#异常值判断标准, 1.5倍的四分位差 计算上下须对应的值low_quantile = Q1 -1.5*(Q3-Q1)#96.44999999999999high_quantile = Q3 +1.5*(Q3-Q1)#100.05000000000001# 输出异常值value = df[‘体温’][(df[‘体温’] > high_quantile) | (df[‘体温’] < low_quantile)]”’

超过上下须的异常体温值:

0      96.3

65      96.4

129    100.8

”’

结论:体温值大于100.05F,小于96.45F的均为异常体温。

4. 男性和女性的正常体温有明显的区别吗?

剔除异常体温后,分析样本中男女体温是否有明显区别

df2 = df.loc[(df[‘体温’] != 96.3)&(df[‘体温’] != 96.4)&(df[‘体温’] != 100.8)]#排除异常值df3 = df2.loc[df2[‘性别’]==1]man_narmal_mean_temperature = df3[‘体温’].mean()#男士体温均值 98.13281250000003df4 = df2.loc[df2[‘性别’]==2]woman_narmal_mean_temperature = df4[‘体温’].mean()#女士体温均值 98.38730158730158

结论:女性体温均值比男性体温均值偏高.

5. 体温和心率是否有相关性?

df2.corr()”’

          体温        性别        心率

体温  1.000000  0.192293  0.243285

性别  0.192293  1.000000  0.054193

心率  0.243285  0.054193  1.000000

”’df2.corr(‘kendall’)”’

          体温        性别        心率

体温  1.000000  0.159488  0.176732

性别  0.159488  1.000000  0.064551

心率  0.176732  0.064551  1.000000

”’df2.corr(‘spearman’)”’

        体温        性别        心率

体温  1.000000  0.190609  0.265460

性别  0.190609  1.000000  0.077409

心率  0.265460  0.077409  1.000000

5. 结论:由上面三种相关系数可以看出 心率和体温具有正相关。

https://www.jianshu.com/p/43862eead6fe

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论