快学数据挖掘—数据探索—贡献度分析
贡献度分析
贡献度分析⼜称帕累托分析,它的原理是帕累托法则⼜称20/80定律。同样的投⼊放在不同的地⽅会产⽣不同的效益。例如,对⼀个公司来讲,80%的利润常常来⾃于20%最畅销的产品,⽽其他80%的产品只产⽣了20%的利润。
帕累托图
帕累托图⼜叫排列图、主次图,是按照发⽣频率⼤⼩顺序绘制的直⽅图,表⽰有多少结果是由已确认类型或范畴的原因所造成。它是将出现的质量问题和质量改进项⽬按照重要程度依次排列⽽采⽤的⼀种图表。可以⽤来分析质量问题,确定产⽣质量问题的主要因素。按等级排序的⽬的是指导如何采取纠正措施:项⽬班⼦应⾸先采取措施纠正造成最多数量缺陷的问题。从概念上说,帕累托图与帕累托法则⼀脉相承,该法则认为相对来说数量较少的原因往往造成绝⼤多数的问题或缺陷
排列图⽤双直⾓坐标系表⽰,左边纵坐标表⽰频数,右边纵坐标表⽰频率.分析线表⽰累积频率,横坐标表⽰影响质量的各项因素,按影响程度的⼤⼩(即出现频数多少)从左到右排列,通过对排列图的观察分析可以抓住影响质量的主要因素.
帕累托法则往往称为⼆⼋原理,即百分之⼋⼗的问题是百分之⼆⼗的原因所造成的。帕累托图在项⽬管理中主要⽤来出产⽣⼤多数问题的关键原因,⽤来解决⼤多数问题。
SPSS帕累托图
catering_dish_profit.xls
菜品ID菜品名盈利
17148A19173
17154A25729
109A34811
117A43594
17151A53195
14A63026
2868A72378
397A81970
88A91877
426A101782
帕累托图就餐饮企业来讲,应⽤贡献度分析可以重点改善某菜系盈利最⾼的前80%的菜品,或者重点发展综合影响最⾼的80%的部门。这种结果可以通过帕累托图直观地呈现出来。上图是海鲜系列的⼗个菜品A1~A10某个⽉的盈利额(已按照从⼤到⼩排序)。
分析结果
由上图可知,菜品A1~A7共7个菜品,占菜品种类数的70%,总盈利额约占该⽉盈利额的85%。根据帕累托法则,应该增加对菜品A1~
A7的成本投⼊,减少对菜品A8~A10的投⼊以获得更⾼的盈利额。
Python程序
#coding: utf-8
# dish_pareto.py
import matplotlib.pyplot as plt
from numpy import nan as NA
import pandas as pd
# 读取数据源
xlsFilename = "catering_dish_profit.xls"
#df = pd.read_excel(xlsFilename, index_col='菜品名')
df = pd.read_excel(xlsFilename)
#---------------------------------------------------------------------
# 绘制帕累托图
#plt.figure()
# 绘制直⽅图
df1 = df.loc[:,['菜品名', '盈利']]
df1 = df1.sort_values('盈利', ascending = False)
帕累托图制作步骤exceldf1 = df1.set_index('菜品名')
df1.plot(kind='bar')
# 绘制线段
# sum()是计算样本的总和;cumsum()是依次给出前1,2,3.。。n个数的和
df3 = 1.0 * df1['盈利'].cumsum() / df1['盈利'].sum()
df3.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)
# 绘制标注
df3 = set_index(drop=True)
df4 = df3[df3>=0.8][0:1]
pointX = df4.index[0]
pointY = df4[pointX]
plt.annotate(format(pointY, '.2%'), xy = (pointX, pointY), xytext=(pointX*0.9, pointY*0.9), arrowprops=dict(arrow, connection)) #添加注
# 设置标签
plt.ylabel('盈利(元)')
plt.ylabel('盈利(⽐例)')
plt.show()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论