数据特征分析:2.对比分析

对比分析

两个相互联系的数(指标)进行比较(绝对数比较、相对数比较) 

 

对比分析

对比分析 → 两个互相联系的指标进行比较

绝对数比较(相减) / 相对数比较(相除)
结构分析、比例分析、空间比较分析、动态对比分析

 1.绝对数比较 -->相减

相互对比的指标在量级上不能差别过大  
(1)折线图比较 (2)多系列柱状图比较

data.plot(kind='line',style = '--.',alpha = 0.8,figsize = (10,3),title = 'AB产品销量对比-折线图')
data.plot(kind = 'bar', width = 0.8,alpha = 0.8,figsize = (10,3),title = 'AB产品销量对比-柱状图')
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
# 1、绝对数比较 → 相减  
data = pd.DataFrame(np.random.rand(30,2)*1000,columns = ['A_sale','B_sale'],index = pd.period_range('20170601','20170630'))
print(data.head())
# 创建数据 → 30天内A/B产品的日销售额

data.plot(kind='line',style = '--.',alpha = 0.8,figsize = (10,3),title = 'AB产品销量对比-折线图')
# 折线图比较
data.plot(kind = 'bar',width = 0.8,alpha = 0.8,figsize = (10,3),title = 'AB产品销量对比-柱状图')
# 多系列柱状图比较

 

 

绝对值 在一个月中,折线图的曲线

   (3)柱状图堆叠图+差值折线图比较

plt.bar(x, y1, width = 1, facecolor = 'yellowgreen')   plt.bar(x, y2, width = 1, facecolor = 'lightskyblue')
plt.plot(x, y3, "--go") 差值折线图
 
#绝对数比较,看它们比较的状况--相减

x = range(len(data))
y1 = data['A_sale']
y2 = -data['B_sale'] #做一个正负堆叠图

fig3 = plt.figure(figsize = (10, 6))
plt.subplots_adjust(hspace = 0.3) #做一下校准,  创建子图及间隔设置。

ax1 = fig3.add_subplot(2, 1, 1) #柱状图创建方式
plt.bar(x, y1, width = 1, facecolor = 'yellowgreen')
plt.bar(x, y2, width = 1, facecolor = 'lightskyblue')
plt.title('AB产品销量对比-堆叠图')
plt.grid()
plt.xticks(range(0,30,6))
ax1.set_xticklabels(data.index[::6]) # x轴日期、间隔
ax2 = fig3.add_subplot(2, 1, 2)
y3 = data['A_sale'] - data['B_sale'] #折线图,做减法
plt.plot(x, y3, "--go")
plt.grid()
plt.title('AB产品销量对比-差值折线')
plt.xticks(range(0,30,6))
plt.axhline(0, color = 'r', linestyle = '--', alpha = 0.8)  # 添加y轴参考线
ax2.set_xticklabels(data.index[::5]) #加个标签。# 创建差值折线图

可以看到它们大概一个月中销量的对比。

绝对数的比较更多的是两个样本量差不多,但更多的时候用的是相对数,相对数更多的时候是做一个结构性比较。

 

2、相对数比较 → 相除

有联系的指标综合计算后的对比,数值为相对数
结构分析、比例分析、空间比较分析、动态对比分析

(1)结构分析  频率对比

在分组基础上,各组总量指标与总体的总量指标对比,计算出各组数量在总量中所占比重
反映总体的内部结构

data = pd.DataFrame({'A_sale':np.random.rand(30)*1000,'B_sale':np.random.rand(30)*200},index = pd.period_range('20170601','20170630'))
print(data.head())
print('------')
# 创建数据 → 30天内A/B产品的日销售额
# A/B产品销售额量级不同

data['A_per'] = data['A_sale'] / data['A_sale'].sum()  #A_sale的频率 
data['B_per'] = data['B_sale'] / data['B_sale'].sum()  #计算出每天的营收占比,B_sale的频率 
data['A_per%'] = data['A_per'].apply(lambda x:"%.3f%%" % (x*100)) 
data['B_per%'] = data['B_per'].apply(lambda x:"%.3f%%" % (x*100)) #转换为百分数
data.head()

能看绝对值的,看相对值肯定是没错的,看相对值就已经抛开了相对值的影响,趋势对比、完成度,

fig,axes = plt.subplots(2,1,figsize = (10,6),sharex=True)
data[['A_sale','B_sale']].plot(kind='line',style = '--.',alpha = 0.8,ax=axes[0])
axes[0].legend(loc = 'upper right')
data[['A_per','B_per']].plot(kind='line',style = '--.',alpha = 0.8,ax=axes[1])
axes[1].legend(loc = 'upper right')
# 绝对值对比较难看出结构性变化,通过看销售额占比来看售卖情况的对比# 同时可以反应“强度” → 两个性质不同但有一定联系的总量指标对比,用来说明“强度”、“密度”、“普遍程度”
# 例如:国内生产总值“元/人”,人口密度“人/平方公里”

按总量做一个对比,也能看出大概趋势,按百分比就好比较了(每一天中两个产品销量的对比)。结构分析反映的其实是跟总量之间的关系,可以说明强度、硬度

 (2)比例分析  相比做除法

 它的核心在于通过多个变量或者说不同的变量之间的相比,比之后的新的变量,这个新变量赋予新的意义。比如说男女比例的比值可以看出其他方面。

比如人的流出占比和资本的流出占比

# 在分组的基础上,将总体不同部分的指标数值进行对比,其相对指标一般称为“比例相对数”
# 比例相对数 = 总体中某一部分数值 / 总体中另一部分数值 → “基本建设投资额中工业、农业、教育投资的比例”、“男女比例”...
# 2、相对数比较 → 相除
# (2)比例分析
data = pd.DataFrame({'consumption':np.random.rand(12)*1000 + 2000,'salary':np.random.rand(12)*500 + 5000},index = pd.period_range('2017/1','2017/12',freq = 'M'))
print(data.head())
print('------')
# 创建数据 → 某人一年内的消费、工资薪水情况
# 消费按照2000-3000/月随机,工资按照5000-5500/月随机

data['c_s'] = data['consumption'] / data['salary'] #一年的消费占比情况;  比例相对数 --->> 消费收入比
data
data['c_s'].plot.area(color = 'green', alpha = 0.5, ylim = [0.3, 0.6], figsize = (8, 3), grid = True) #创建面积图去表达 
data

 

(3)空间比较分析 (横向)

比如说同样的2017年北京和深圳膜拜单车使用量,空间是比较抽象的更多的是在时间相同的情况下,不同的元素的比较。

同一时间内不同空间(这四个产品)的相互比较

 同类现象在同一时间不同空间的指标数值进行对比,反应同类现象在不同空间上的差异程度和现象发展不平衡的状况空间比较相对数 = 甲空间某一现象的数值 / 乙空间同类现象的数值一个很现实的例子 → 绝对数来看,我国多经济总量世界第一,但从人均水平来看是另一回事
data.sum().plot(kind = 'bar', color = ['r', 'g', 'b', 'k'], alpha = 0.8, grid = True) 同一个月内
data[:10].plot(kind = 'bar',color = ['r','g','b','k'], alpha = 0.8, grid = True, figsize = (12,4),width = 0.8) 同一天内
# 2、相对数比较 → 相除
# (3)空间比较分析(横向对比分析)

data = pd.DataFrame({'A':np.random.rand(30)*5000,'B':np.random.rand(30)*2000,'C':np.random.rand(30)*10000,'D':np.random.rand(30)*800},index = pd.period_range('20170601','20170630'))
print(data.head())
print('------')
# 创建数据 → 30天内A/B/C/D四个产品的销售情况
# 不同产品的销售量级不同
#同一时间(每个月内) data.sum().plot(kind = 'bar', color = ['r', 'g', 'b', 'k'], alpha = 0.8, grid = True)#求和得到一个柱形图,4个产品的不同营销情况 for i, j in zip(range(4), data.sum()): plt.text(i - 0.25, j + 2000, '%.2f'% j, color = 'k') #通过柱状图做横向比较, ---->> 4个产品的销售额总量#同一时间(每一天) data[:10].plot(kind = 'bar',color = ['r','g','b','k'], alpha = 0.8, grid = True, figsize = (12,4),width = 0.8) # 多系列柱状图,横向比较前十天4个产品的销售额。 # 关于同比与环比 # 同比 → 产品A在2015.3和2016.3的比较(相邻时间段的同一时间点) # 环比 → 产品A在2015.3和2015.4的比较(相邻时间段的比较) # 如何界定“相邻时间段”与“时间点”,决定了是同比还是环比

同比和环比都是在时间点上不一样,都是类似同一个内容在不同时间的比较;同比更多的是去年的今天和今年的今天的比较,环比是今年每个时间段的比较,

 

(4)动态对比分析(纵向)

在时间层面,同一个东西在不同时间轴上进行对比,反映的是变化、速度、趋势

 同一现象在不同时间上的指标数值进行对比,反应现象的数量随着时间推移而发展变动的程度及趋势最基本方法,计算动态相对数 → 发展速度动态相对数(发展速度) = 某一现象的报告期数值 / 同一现象的基期数值基期:用来比较的基础时期报告期:所要研究的时期,又称计算期
# 2、相对数比较 → 相除   (4)动态对比分析(纵向对比分析)

data = pd.DataFrame({'A':np.random.rand(30)*2000+1000},index = pd.period_range('20170601','20170630'))
print(data.head())
print('------')
# 创建数据 → 30天内A产品的销售情况
data['base'] = 1000  # 假设基期销售额为1000,后面每一天都为计算期
#累计增长量 = 报告期水平 - 固定基期水平
data['l_growth'] = data['A'] - data['base'] #每一天减去它就可以了 data
#逐期增长量= 报告期水平 - 报告期前一期水平
data['z_growth'] = data['A'] - data.shift(1)['A'] #每一天每个周期跟上个增长量的对比;shift移动一行 data.fillna(0, inplace = True) #替换缺失值 data[['l_growth','z_growth']].plot(figsize = (10,4),style = '--.',alpha = 0.8) plt.axhline(0,hold=None,color='r',linestyle="--",alpha=0.8) # 添加y轴参考线 plt.legend(loc = 'lower left') plt.grid() # 通过折线图查看增长量情况 data.head()

 

累计增长量和逐期增长量的大小差别,如果是累计增长量它本身是跟着机器相比较,效益好每天都是增长的;

逐期增长量可以看到每天的一个变化频率和变动趋势了,如果今天的增长量和昨天的增长量比下降了就会是个负数。如果把逐期增长量加在一起,如果大于0,就是往上长的。

 

#定基增长速度
data['lspeed'] = data['l_growth'] / 1000
#环比增长速度
data['zspeed'] = data['z_growth'] / data.shift(1)['A']#报告期的水平/上期的水平

data[['lspeed','zspeed']].plot(figsize = (10,4),style = '--.',alpha = 0.8)  
plt.axhline(0,hold=None,color='r',linestyle="--",alpha=0.8)  # 添加y轴参考线
plt.grid()
data.head()

 

转载于:https://www.cnblogs.com/shengyang17/p/9630749.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础-Java中的内存分配与回收机制

Java基础-Java中的内存分配与回收机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一. 二.转载于:https://www.cnblogs.com/yinzhengjie/p/9279601.html

离散数学中关于自反与反自反的通俗解释

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 设R是A上的二元关系&#xff0c;二元关系自反&#xff1a;任取一个A中的元素x&#xff0c;如果都有<x,x>在R中&#xff0c;那么就…

[Educational Round 5][Codeforces 616F. Expensive Strings]

这题调得我心疲力竭...Educational Round 5就过一段时间再发了_(:з」∠)_ 先后找了三份AC代码对拍&#xff0c;结果有两份都会在某些数据上出点问题...这场的数据有点水啊_(:з」∠)_【然而卡掉本弱还是轻轻松松的】 题目链接&#xff1a;616F - Expensive Strings 题目大意&a…

Redis自增计数

INCR key 将 key 中储存的数字值增一。 如果 key 不存在&#xff0c;那么 key 的值会先被初始化为 0 &#xff0c;然后再执行 INCR 操作。 如果值包含错误的类型&#xff0c;或字符串类型的值不能表示为数字&#xff0c;那么返回一个错误。 本操作的值限制在 64 位(bit)有符号数…

android布局中使用include及需注意点

在android布局中&#xff0c;使用include&#xff0c;将另一个xml文件引入&#xff0c;可作为布局的一部分&#xff0c;但在使用include时&#xff0c;需注意以下问题&#xff1a;一、使用include引入如现有标题栏布局block_header.xml&#xff0c;代码如下&#xff1a;<Rel…

周鸿祎回顾IPO一周年:保持创业心态 看好无线

奇虎360董事长兼CEO周鸿祎 3月19日晚间消息&#xff0c;在奇虎360上市接近一周年之际&#xff0c;奇虎360董事长兼CEO周鸿祎与媒体及个人投资者进行沟通&#xff0c;他表示这一年压力比以前更大&#xff0c;因为在上市光环下依然需要保持创业心态&#xff0c;同时他强调无线和…

《Effective Java》 第二讲:对于所有对象都通用的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 上接《Effective Java》 第一讲&#xff1a;创建和销毁对象 八、覆盖 equals 时请遵守通用约定 1. 自反性&#xff1a;对于任何非空的引…

linux删除文件操作

linux删除文件夹命令 在用Linux的时候&#xff0c;有时候要删除一个文件夹&#xff0c;往往会提示次此文件非空&#xff0c;没法删除&#xff0c;这个时候&#xff0c;必须使用rm -rf命令。 实例一&#xff1a; rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录…

Python 运算符重载

https://www.cnblogs.com/hotbaby/p/4913363.html转载于:https://www.cnblogs.com/changbaishan/p/9668720.html

python爬取elasticsearch内容

我们以上篇的elasticsearch添加的内容为例&#xff0c;对其内容进行爬取&#xff0c;并获得有用信息个过程。 先来看一下elasticsearch中的内容&#xff1a; {"took": 88,"timed_out": false,"_shards": {"total": 5,"successful…

创业必经之路——Paul Graham创业曲线

导读&#xff1a;国外媒体avc.com近日发表一篇文章《The Startup Curve》&#xff0c;文中谈到创业者都处于Paul Graham创业曲线中各个阶段&#xff0c;不要一味的畏惧失败&#xff0c;要多倾听客户反馈并从中寻找制胜的信息。总而言之&#xff0c;不畏艰难即可成功。以下为文章…

Java:对象的强、软、弱和虚引用

见&#xff1a;http://zhangjunhd.blog.51cto.com/113473/53092 maven/Java/web/bootstrap/dataTable/app开发QQ群&#xff1a;566862629。希望更多人一起帮助我学习。 1&#xff0e;对象的强、软、弱和虚引用在JDK 1.2以前的版本中&#xff0c;若一个对象不被任何变量引用&am…

java注解:@Deprecated(不建议使用的,废弃的);@SuppressWarnings(忽略警告,达到抑制编译器产生警告的目的)

java注解&#xff1a;Deprecated(不建议使用的&#xff0c;废弃的), SuppressWarnings(忽略警告&#xff0c;达到抑制编译器产生警告的目的)Deprecated可以修饰类、方法、变量&#xff0c;在java源码中被Deprecated修饰的类、方法、变量等表示不建议使用的&#xff0c;可能会出…

Mysql 替换字段的一部分内容

UPDATE 表名 SET 字段名 REPLACE( 替换前的字段值, 替换前关键字, 替换后关键字 ) WHERE 字段名 REGEXP "替换前的字段值"; 例子&#xff1a; UPDATE user SET mobile REPLACE( head_img, "http://7xswdm.com1.z0.glb.clouddn.com", "http://qiniu-i…

聊聊3种最常见的响应式设计问题

响应式设计方法对开发者非常有用&#xff0c;因为它使我们的内容在各种设备上广为传播。不用保留几个独立版本的网站&#xff0c;也可以摒除诸如缩放和流式布局这些方法的弊端。 缩放、流式布局与响应式 这些术语容易造成混淆&#xff0c;设计师常常错误地交替互用。实际上&…

PV、TPS、QPS是什么

pv 是指页面被浏览的次数&#xff0c;比如你打开一网页&#xff0c;那么这个网站的pv就算加了一次&#xff1b;tps是每秒内的事务数&#xff0c;比如执行了dml操作&#xff0c;那么相应的tps会增加&#xff1b;qps是指每秒内查询次数&#xff0c;比如执行了select操作&#xff…

AOP原理解析及Castle、Autofac、Unity框架使用

转自&#xff1a;https://www.cnblogs.com/neverc/p/5241466.html AOP介绍 面向切面编程&#xff08;Aspect Oriented Programming,英文缩写为AOP&#xff09;&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP是OOP的延续&#xff0c;是软件…

bootstrap validator 提供了哪些验证函数

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 目前提供的校验方法有&#xff1a; "notEmpty" : "不能为空", "password" : "请输入正确的密码&q…

帕累托分布(Pareto distributions)、马太效应

什么是帕累托分布 帕累托分布是以意大利经济学家维弗雷多帕雷托命名的。 是从大量真实世界的现象中发现的幂次定律分布。这个分布在经济学以外&#xff0c;也被称为布拉德福分布。 帕累托因对意大利20%的人口拥有80%的财产的观察而著名&#xff0c;后来被约瑟夫朱兰和其他人概括…

两个class写在同一个java文件中

第一种&#xff1a; 一个public类&#xff0c;多个非public类&#xff0c;例如&#xff1a;public class A&#xff5b;&#xff5d;class B&#xff5b;&#xff5d;第二个class前面不能加public。 第二种&#xff1a; 第二种是内部类&#xff0c;写在公共类体里面的&#xff…