做数学建模要学会的数据特征分析方法---帕累托分析

帕累托分析听起来非常高大上的样子,其实就是指标贡献度分析,帕累托法则即二八(20/80)定律.
原因和结果、投入和产出,努力和报酬之间本来存在着无法解释的不平衡,一般来说,投入和努力可以分为两种不同的类型:多数,它们只能造成少许影响;少数,它们造成主要、重大的影响。比如一个公司,百分之八十的利润来自于百分之二十的畅销产品,而其它百分之八十的产品只产生了百分之二十的利润,再比如世界财富的80%为25%的人所拥有,在一个国家的医疗体系中,20%的人口与20%的疾病,会消耗80%的医疗资源。
帕累托分析的思路就是通过二八原则,去寻找关键的那20%的决定性因素!

引入相关模块

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

创建数据,以10个品类的销售额为例

data = pd.Series(np.random.randn(10)*1200+3000,
                index = list('ABCDEFGHIJ'))
print(data)

输出结果:
在这里插入图片描述
对数据进行排序并创建营收柱状图

data.sort_values(ascending=False, inplace= True)
# 由大到小排列

plt.figure(figsize = (10,4))
data.plot(kind = 'bar', color = 'g', alpha = 0.5, width = 0.7)  
plt.ylabel('营收_元')

创建累积占比,找到超过80%累计占比的节点值索引

p = data.cumsum()/data.sum()  # 创建累计占比,Series
key = p[p>0.8].index[0]  
key_num = data.index.tolist().index(key) 
print('超过80%累计占比的节点值索引为:' ,key)
print('超过80%累计占比的节点值索引位置为:' ,key_num)

创建营收累计占比曲线

p.plot(style = '--ko', secondary_y=True)  # secondary_y → y副坐标轴
plt.axvline(key_num,hold=None,color='r',linestyle="--",alpha=0.8)  
plt.text(key_num+0.2,p[key],'累计占比为:%.3f%%' % (p[key]*100), color = 'r')  # 累计占比超过80%的节点
plt.ylabel('营收_比例')

输出决定性因素产品

key_product = data.loc[:key]
print('核心产品为:')
print(key_product)

输出结果:
在这里插入图片描述
帕累托分析实现起来还是挺简单的,关键点就是找到80%的位置

关注欢喜, 走向成功~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值