2.离中趋势度量
(1)极差
极差=最大值-最小值
极差对数据集的极端值非常敏感,并且忽略了位于最大值与最小值之间的数据的分布情况。
(2)标准差
标准差度量数据偏离均值的程度,计算公式为:
(3)变异系数
变异系数度量标准差相对于均值的离中趋势,计算公式为:
变异系数主要用来比较两个或多个具有不同单位或不同波动幅度的数据集的离中趋势。
(4)四分位数间距
四分位数包括上四分位数和下四分位数。将所有数值由小到大排列并分成四等份,处于第一个分割点位置的数值是下四分位数,处于第二个分割点位置(中间位置)的数值是中位数,处于第三个分割点位置的数值是上四分位数。
四分位数间距,是上四分位数QU与下四分位数QL之差,其间包含了全部观察值的一半。其值越大,说明数据的变异程度越大;反之,说明变异程度越小。
前面已经提过,DataFrame对象的describe()方法已经可以给出一些基本的统计量,根据给出的统计量,可以衍生出我们所需要的统计量。针对餐饮销量数据进行统计量分析,其Python代码如代码清单3-2所示。
代码清单3-2 餐饮销量数据统计量分析代码
#-*- coding: utf-8 -*- #餐饮销量数据统计量分析 from __future__ import print_function import pandas as pd catering_sale = '../data/catering_sale.xls' #餐饮数据 data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列 data = data[(data[u'销量'] > 400)&(data[u'销量'] < 5000)] #过滤异常数据 statistics = data.describe() #保存基本统计量 statistics.loc['range'] = statistics.loc['max']-statistics.loc['min'] #极差 statistics.loc['var'] = statistics.loc['std']/statistics.loc['mean'] #变异系数 statistics.loc['dis'] = statistics.loc['75%']-statistics.loc['25%'] #四分位数间距 print(statistics)
代码详见:demo/code/statistics_analyze.py
运行上面的程序,可以得到下面的结果,此结果为餐饮销量数的统计量情况。
销量 count 195.000000 mean 2744.595385 std 424.739407 min 865.000000 25% 2460.600000 50% 2655.900000 75% 3023.200000 max 4065.200000 range 3200.200000 var 0.154755 dis 562.600000
3.2.4 周期性分析
周期性分析是探索某个变量是否随着时间变化而呈现出某种周期变化趋势。时间尺度相对较长的周期性趋势有年度周期性趋势、季节性周期趋势,相对较短的有月度周期性趋势、周度周期性趋势,甚至更短的天、小时周期性趋势。
例如,要对某单位用电量进行预测,可以先分析该用电单位日用电量的时序图来直观地估计其用电量变化趋势。
图3-8是某用电单位A在2014年9月日用电量的时序图,图3-9是用电单位A在2013年9月日用电量的时序图。
图3-8 2014年9月日用电量时序图
总体来看,用电单位A的2014年9月日用电量呈现出周期性,以周为周期,因为周六周日不上班,所以周末用电量较低。工作日和非工作日的用电量比较平稳,没有太大的波动。而2013年9月日用电量总体呈现出递减的趋势,同样周末的用电量是最低的。
图3-9 2013年9月日用电量时序图
3.2.5 贡献度分析
贡献度分析又称帕累托分析,它的原理是帕累托法则,又称20/80定律。同样的投入放在不同的地方会产生不同的效益。例如,对一个公司来讲,80%的利润常常来自于20%最畅销的产品,而其他80%的产品只产生了20%的利润。
对餐饮企业来讲,应用贡献度分析可以重点改善某菜系盈利最高的前80%的菜品,或者重点发展综合影响最高的80%的部门。这种结果可以通过帕累托图直观地呈现出来。图3-10是海鲜系列的10个菜品A1~A10某个月的盈利额(已按照从大到小排序)。
图3-10 帕累托图
由上图可知,菜品A1~A7共7个菜品,占菜品种类数的70%,总盈利额占该月盈利额的85.0033%。根据帕累托法则,应该增加对菜品A1~A7的成本投入,减少对菜品A8~A10的投入以获得更高的盈利额。
表3-5是餐饮系统对应的菜品盈利数据。
表3-5 餐饮系统菜品盈利数据
数据详见:demo/data/catering_dish_profit.xls
其Python代码如代码清单3-3所示。
代码清单3-3 菜品盈利帕累托图代码
#-*- coding: utf-8 -*- #菜品盈利数据 帕累托图 from __future__ import print_function import pandas as pd #初始化参数 dish_profit = '../data/catering_dish_profit.xls' #餐饮菜品盈利数据 data = pd.read_excel(dish_profit, index_col = u'菜品名') data = data[u'盈利'].copy() data.sort(ascending = False) import matplotlib.pyplot as plt #导入图像库 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 plt.figure() data.plot(kind='bar') plt.ylabel(u'盈利(元)') p = 1.0*data.cumsum()/data.sum() p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2) plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arro wprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) #添加注释,即85%处 的标记。这里包括了指定箭头样式。 plt.ylabel(u'盈利(比例)') plt.show()
代码详见:demo/code/dish_pareto.py
3.2.6 相关性分析
分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程称为相关分析。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论