这周我们对一个数据集做简单的统计分析。
数据集link:http://jse.amstat.org/datasets/normtemp.dat.txt
这个数据集记录了130位的男女的体温,性别和心率。我们需要读取数据,并判断其体温数据是否符合正态分布。
- 数据读取
- 画图
- 正态分布检验
1.数据读取
import
2. 画图
按性别,绘制散点图,运用matplotlib包。
import matplotlib.pyplot as plt
get_ipython().run_line_magic('matplotlib', 'inline')
fig = plt.figure(figsize=(16,5))
df02 = df[df["性别"]==1]
df02=df02.reset_index(drop=True)
# df02.shape
plt.scatter(df02.index, df02["体温"], c="r", label="male")
plt.legend()
df03 = df[df["性别"]==2]
df03=df03.reset_index(drop=True)
# df03.shape
plt.scatter(df03.index, df03["体温"], c="b", label="female")
plt.legend()
plt.ylabel("TM")
plt.xlabel("index")
plt.grid()
![98e17d5bb9770dae9b23571e33837511.png](https://img-blog.csdnimg.cn/img_convert/98e17d5bb9770dae9b23571e33837511.png)
fig2=plt.figure(figsize=(10,5))
df_tempreture=df['体温']
# 绘制体温直方图
df_tempreture.hist(bins=20,alpha = 0.5)
# 密度图也被称作KDE图,调用plt时加上kind='kde'即可生成一张密度图。
df_tempreture.plot(kind = 'kde', secondary_y=True)
![86588ef3bc1f792149563d52de99cf27.png](https://img-blog.csdnimg.cn/img_convert/86588ef3bc1f792149563d52de99cf27.png)
从图中可以看出,体温数据目测不符合正态分布。
3. 正态分布检验
使用scipy包自带的检验正态性的函数,结果如下:
# 检验是否服从正态分布
import scipy.stats
scipy.stats.normaltest(df_tempreture)
#p=0.26>0.05,不服从正态分布
所以,体温数据不服从正态分布。