小白入门数据挖掘,从零开始,每周一更。
00 项目简介
-
数据关于体温、性别、心率的临床数据,并对以下问题进行数据分析:
01 人类体温均值真的是98.6F吗?
02 体温样本数据是否服从正态分布?
03 不正常的体温是多少?
04 男性和女性的正常体温有明显的区别吗?
05 体温和心率是否有相关性?
01 人类体温均值真的是98.6F吗?
-
代码
import pandas as pd
我选择下载到本地,大家可以尝试使用request
df = pd.read_csv('C:/Users/ny/Desktop/python/体温数据集.txt', engine='python', header=None, names=['体温', '性别', '心率'],sep='\s+')
print(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
Name: 体温, dtype: float64 -
结论
- 结果说明人的体温平均在98.25F
02 体温样本数据是否服从正态分布?
-
KS算法
-
代码
KS方法-(样本量大于50)
u = df['体温'].mean()
std = df['体温'].std()
ks_test = stats.kstest(df['体温'], 'norm', (u, std)) -
结果
KstestResult(statistic=0.06472, pvalue=0.64503)
-
-
W检测
-
代码
end = stats.shapiro(df['体温'])
-
结果
(0.9865769743919373, 0.2331680953502655)
-
-
直方图观察法
-
代码
plt.hist(df['体温'], bins=130, histtype='bar', color='r', density=True)
plt.show() -
结果
-
-
拟合曲线
-
代码
sns.set_palette("hls")
sns.distplot(df['体温'], color='k', bins=130, kde=True)
plt.show() 结果
-
03 不正常的体温是多少?
-
代码
Q1 = df['体温'].quantile(q=0.25) Q3 = df['体温'].quantile(q=0.75)
计算异常值范围,1.5倍四分位差
low_quantile = Q1 - (Q3 - Q1) * 1.5 high_quantile = Q3 + (Q3 - Q1) * 1.5
异常值筛选
exception_value = df['体温'] < low_quantile) | (df['体温'] > high_quantile)]
print(exception_value) -
结果
0 96.3
65 96.4
129 100.8
Name: 体温, dtype: float64 -
箱线图
-
代码
plt.boxplot(df['体温']) plt.show()
结果
-
04 男性和女性的正常体温有明显的区别吗?
-
代码
df2 = df[(df['体温'] >= low_quantile) | (df['体温'] <= high_quantile)]
df_male = df2'体温' == 1]
df_female = df2'体温' == 2]
print(df_male.mean(), df_female.mean()) -
结果
98.1046153846
98.3938461538
05 体温和心率是否有相关性?
-
相关性解释
相关系数 相关强度 0.8-1.0 极强 0.6-0.8 强 0.4-0.6 中等 0.2-0.4 弱 0.0-0.2 极弱 -
代码
print(df.corr())
print(df.corr(method='pearson'))
print(df.corr(method='spearman'))
print(df.corr(method='kendall')) -
结果
体温 性别 心率
体温 1.000000 0.198006 0.253656
性别 0.198006 1.000000 0.055766
心率 0.253656 0.055766 1.000000
体温 性别 心率
体温 1.000000 0.198006 0.253656
性别 0.198006 1.000000 0.055766
心率 0.253656 0.055766 1.000000
体温 性别 心率
体温 1.000000 0.195231 0.280919
性别 0.195231 1.000000 0.075927
心率 0.280919 0.075927 1.000000
体温 性别 心率
体温 1.000000 0.163190 0.186489
性别 0.163190 1.000000 0.063322
心率 0.186489 0.063322 1.000000 -
散点图
-
代码
plt.scatter(df['体温'], df['心率'])
plt.show() 结果
-
文章仅作为自己学习记录,内容来源于同学们学习总结内容。
Day Day up !