用python进行数据分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用python进行数据分析
一、样本集
本样本集来源于某高中某班78位同学的一次月考的语文成绩。因为每位同学的成绩都是独立的随机变量,遂可以保证得到的观测值也是独立且随机的
样本如下:
grades=[131,131,127,123,126,129,116,114,115,116,123,122,118,
121,126,121,126,121,111,119,124,124,121,116,114,116,
116,118,112,109,114,116,116,118,112,109,114,110,114,
110,113,117,113,121,105,127,110,105,111,112,104,103,
130,102,118,101,112,109,107,94,107,106,105,101,85,95,
97,99,83,87,82,79,99,90,78,86,75,66];
二、数据分析
1.中心位置(均值、中位数、众数)
数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观地选择。数据的中心位置可分为均值(Mean),中位数(Median),众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。
均值:利用python编写求平均值的函数很容易得到本次样本的平均值
得到本次样本均值为109.9
中位数:113
众数:116
2.频数分析
2.1频数分布直方图
柱状图是以柱的高度来指代某种类型的频数,使用Matplotlib对成绩这一定性变量绘制柱状图的代码如下:
这里我主要使用matplotlib.pyplot as plt上的bar()函数画出直方图。这里所使用的text 和title方法是用来给图形加上标注和题目的。运行程序可得到如下频率分布直方图:
这里我将数据分为八组:60~70,70~80,80~90,90~100,100~110,110~120,120~130,130~140;每组对应中点为:66,77.3,84.6,95.6,105.2,114.4,123.9,130.7
每组对应频率:0.01,0.04,0.06,0.08,0.18,0.38,0.21,0.04
从该频率直方图我们可以看出该班成绩主要分布在100~130区间,当然也存在130多的高分和60多的低分。总体成绩还算不错,低于均分的同学要继续努力。
2.2相对频率折线图
这里我主要使用matplotlib.pyplot as plt上的plot()函数画出折线图。程序代码如下:
运行程序可得到如下折线图:
通过折线图我们可以更加清楚的明白这个班级的成绩分布,高于一百分的同学占绝大多数,而低于一百分的也占有一定的比例。
2.3箱须图
中位数:113
上四分位数:Q1=124
下四分位数:Q2=105
四分位数差:IQR=19
此时可以绘制该班的箱须图进行成绩分析,这里使用Matplotlib中的boxplot绘制关于身高的箱形图,程序如下:
运行程序后可以得到该班关于成绩的箱须图:
从该箱须图也可以清楚的看出本班的成绩分布,以及中位数所在的位置所在。由于箱须图的主要目的用来比较,而这里只有一组数据,就不进行比较了。但是仍要注意的是在下边缘以外的异常值点,这些同学的成绩在本班处于垫底,应格外注意这些同学的学习习惯,积极引导和教育。
2.4经验累积分布图
总体的分布函数称为理论分布函数。经验累积分布函数利用样本来估计和推断总体的分布函数F(x).
这里主要利用我利用python的Matplotlib编写了drawCumulativeHist函数进行经验累积分布图的绘制,程序如下:
可得到如下的经验累积分布图
从该经验累积图上可以直观的看出该样本服从正态分布。此时我们可以画出正态概率分布图进行验证。
2.5正态概率分布图
在经验累积分布图上连接上四分位点和下四分位点并延长,可以得到正态概率分布图,程序如下:
运行程序得到正态概率分布图。
可见画出的样本数据的图成线性,故该组数据服从正态分布。
三、结论
通过以上种种方法对该组样本进行分析,我们发现改组样本数据服从正态分布。该班的成绩分布主要集中在100~130区间,其中不乏高分但也有低于边缘值的异常点。总体来说该班成绩较好,但要注意对低分段同学进行积极的引导鼓励。
四.总结
描述性统计是容易操作,直观简洁的数据分析手段。我们组通过python进行对本组数据的画图分析,学习并掌握了Matplotlib的一些画图的方法。在进行本次实验的过程中由于初次使用python遇到了诸多困难,但通过查阅相关资料我们掌握了python的一些基础语法和画图方法,收益颇多。