数据特征分析:对比分析
文章目录
- 1.绝对数比较(相减)
- 2.相对数比较(相除)
- 1.结构分析
- 2.比例分析
- 3.空间比较分析(横向对比分析)
- 4.动态对比分析(纵向对比分析)
对比分析 → 两个互相联系的指标进行比较
绝对数比较(相减) / 相对数比较(相除)
结构分析、比例分析、空间比较分析、动态对比分析
1.绝对数比较(相减)
在绝对数比较中,相互对比的指标在量级上不能差别过大
创建一组随机数,分别代表A产品的销量和B产品的销量
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
data = pd.DataFrame(np.random.rand(30,2)*1000,columns = ['A_sale','B_sale'],index = pd.period_range('20170601','20170630'))
print(data.head())
A_sale B_sale
2017-06-01 196.136735 332.310339
2017-06-02 239.497573 4.565432
2017-06-03 761.122797 643.422245
2017-06-04 101.757850 630.286314
2017-06-05 185.142519 901.302321
data.plot(kind = 'line',style = '--.',alpha = 0.8,title = 'AB产品销量对比——折线图',figsize = (20,6),fontsize = 15,legend = True)
data.plot(kind = 'bar',title = 'AB产品销量对比——柱状图',figsize = (20,6),fontsize = 15)
在量级相同数据的对比中,绝对数比较就可以看出两组数据的相对关系。
因此我们还可以做柱状图堆叠图及差值折线图老探索数据
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
x = range(len(data))
y1 = data['A_sale']
y2 = -data['B_sale']fig3 = plt.figure(figsize = (20,12))
ax1 = fig3.add_subplot(2,1,1)
plt.bar(x,y1)
plt.bar(x,y2)
plt.xticks(fontsize = 15)
plt.yticks(fontsize = 15)
plt.xticks(range(0,30,6))
ax1.set_xticklabels(data.index[::6])ax2 = fig3.add_subplot(2,1,2)
plt.plot(x,y1+y2,'--o')
plt.axhline(0,linestyle = '--',color = 'r')#添加平行x轴的辅助线
#plt.axvline()#添加平行y轴的辅助线
plt.xticks(fontsize = 15)
plt.yticks(fontsize = 15)
plt.xticks(range(0,30,6))
ax2.set_xticklabels(data.index[::6])
2.相对数比较(相除)
有联系的指标综合计算后的对比,数值为相对数
分析方法可分为结构分析、比例分析、空间比较分析、动态对比分析
1.结构分析
在分组基础上,各组总量指标与总体的总量指标对比,计算出各组数量在总量中所占比重,结构分析可以反映总体的内部结构
这里创建两组不同量级的数据进行举例:
data = pd.DataFrame({'A_sale':np.random.rand(30)*1000,'B_sale':np.random.rand(30)*100},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()
data['B_per'] = data['B_sale'] / data['B_sale'].sum()
# 计算出每天的营收占比data['A_per%'] = data['A_per'].apply(lambda x:'{:.2f}'.format(x*100))
data['B_per%'] = data['B_per'].apply(lambda x:'{:.2f}'.format(x*100))
# 转换为百分数
print(data.head())fig,axes = plt.subplots(2,1,figsize = (20,12),sharex = True)
# 绝对值比较
data[['A_sale','B_sale']].plot(kind = 'line',style = '--.',ax = axes[0])
axes[0].legend()
plt.xticks(fontsize = 15)
plt.yticks(fontsize = 15)
# 相对值比较
data[['A_per','B_per']].plot(kind = 'line',style = '--o',ax = axes[1])
axes[1].legend()
plt.xticks(fontsize = 15)
plt.yticks(fontsize = 15)
# 绝对值对比较难看出结构性变化,通过看销售额占比来看售卖情况的对比# 同时可以反应“强度” → 两个性质不同但有一定联系的总量指标对比,用来说明“强度”、“密度”、“普遍程度”
# 例如:国内生产总值“元/人”,人口密度“人/平方公里”
A_sale B_sale
2017-06-01 11.107980 70.487240
2017-06-02 258.969445 58.444937
2017-06-03 931.462925 93.750244
2017-06-04 68.676392 8.391014
2017-06-05 451.428640 87.467882
------A_sale B_sale A_per B_per A_per% B_per%
2017-06-01 11.107980 70.487240 0.000630 0.046939 0.06 4.69
2017-06-02 258.969445 58.444937 0.014697 0.038920 1.47 3.89
2017-06-03 931.462925 93.750244 0.052861 0.062430 5.29 6.24
2017-06-04 68.676392 8.391014 0.003897 0.005588 0.39 0.56
2017-06-05 451.428640 87.467882 0.025619 0.058246 2.56 5.82
可以看到图一中的绝对值分析不能看出数据间的相对关系。
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']
print(data.head())#创建面积图
data['c_s'].plot.area(figsize = (20,12),grid = True,alpha = 0.8,ylim = [0.3,0.6])
consumption salary
2017-01 2040.449670 5207.496900
2017-02 2159.305132 5212.656944
2017-03 2200.339158 5130.780265
2017-04 2893.534180 5414.673479
2017-05 2944.590743 5396.974339
------consumption salary c_s
2017-01 2040.449670 5207.496900 0.391829
2017-02 2159.305132 5212.656944 0.414243
2017-03 2200.339158 5130.780265 0.428851
2017-04 2893.534180 5414.673479 0.534388
2017-05 2944.590743 5396.974339 0.545600
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'],figsize = (20,12),rot = 0)
plt.xticks(fontsize = 20)
plt.yticks(fontsize = 20)for i,j in zip(range(4),data.sum()):plt.text(i,j+5000,'{:.2f}'.format(j),horizontalalignment='center',fontsize = 20,alpha = 0.8)data[:10].plot(kind = 'bar',color = ['r','g','b','k'], alpha = 0.8, grid = True, figsize = (20,12),width = 0.8)
plt.xticks(fontsize = 20)
plt.yticks(fontsize = 20)
# 多系列柱状图,横向比较前十天4个产品的销售额# 关于同比与环比
# 同比 → 产品A在2015.3和2016.3的比较(相邻时间段的同一时间点)
# 环比 → 产品A在2015.3和2015.4的比较(相邻时间段的比较)
# 如何界定“相邻时间段”与“时间点”,决定了是同比还是环比
A B C D
2017-06-01 1997.353982 316.453985 7721.841133 430.332589
2017-06-02 4678.166249 1702.777437 9028.497516 693.539994
2017-06-03 2617.312356 835.670079 3693.068883 497.772748
2017-06-04 86.866974 1690.183922 7874.507873 550.739731
2017-06-05 3373.909158 1689.619683 5160.037689 71.619315
------
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['z_growth'] = data['A'] - data.shift(1)['A'] # 逐期增长量 = 报告期水平 - 报告期前一期水平
data[data.isnull()] = 0 # 替换缺失值data[['l_growth','z_growth']].plot(figsize = (20,6),style = '--.',alpha = 0.8)
plt.axhline(0,color='r',linestyle="--",alpha=0.8) # 添加y轴参考线
plt.legend(loc = 'lower left')
plt.grid()
plt.xticks(fontsize = 20)
plt.yticks(fontsize = 20)
# 通过折线图查看增长量情况data['lspeed'] = data['l_growth'] / 1000 # 定基增长速度
data['zspeed'] = data['z_growth'] / data.shift(1)['A'] # 环比增长速度
data[['lspeed','zspeed']].plot(figsize = (20,6),style = '--.',alpha = 0.8)
plt.axhline(0,color='r',linestyle="--",alpha=0.8) # 添加y轴参考线
plt.grid()
print(data.head())
print('------')
plt.xticks(fontsize = 20)
plt.yticks(fontsize = 20)
# 通过折线图查看发展速度
A
2017-06-01 2194.169019
2017-06-02 2646.814210
2017-06-03 1710.473423
2017-06-04 1507.380439
2017-06-05 2934.035023
------A base l_growth z_growth lspeed zspeed
2017-06-01 2194.169019 1000 1194.169019 0.000000 1.194169 NaN
2017-06-02 2646.814210 1000 1646.814210 452.645191 1.646814 0.206295
2017-06-03 1710.473423 1000 710.473423 -936.340787 0.710473 -0.353761
2017-06-04 1507.380439 1000 507.380439 -203.092985 0.507380 -0.118735
2017-06-05 2934.035023 1000 1934.035023 1426.654584 1.934035 0.946446
------
数据特征分析:对比分析相关推荐
- 数据特征分析-对比分析
对比分析是对两个互相联系的指标进行比较. 绝对数比较(相减):指标在量级上不能差别过大,常用折线图.柱状图 相对数比较(相除):结构分析.比例分析.空间比较分析.动态对比分析 df = pd.Data ...
- 轨迹时空数据存储对比分析
轨迹时空数据存储对比分析 背景 最近有一批车辆的轨迹数据需要用postgresql管理起来.数据格式相对比较简单,就是一堆csv文件,每行一个点,包括x,y,t和其他的一些速度,方向属性信息. 方案对 ...
- 什么是实时数据,有哪些特征及与离线数据的对比分析
实时数据是工业物联网建设中经常遇到的一种数据类型,一般采用实时数据库来管理与存储,实时数据库是采用实时数据模型建立起来的数据库,用于处理不断更新的.快速变化的数据及具有时间限制的事务处理.实时数据库技 ...
- 数据特征分析-相关性分析
相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量的相关密切程度. 相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 相关系数在[-1,1]之间. 一.图示初判 ...
- 做数学建模不得不会的数据特征分析---相关性分析
相关性分析是分析连续变量之间的线性相关程度的强弱,我们可以通过图来初步判断,当然了比较权威的是通过Pearson相关系数(皮尔逊相关系数) / Sperman秩相关系数(斯皮尔曼相关系数)来判断 引入 ...
- R计算两列数据的相关系数_数据特征分析·相关性分析
相关性分析 相关分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个因素的的相关密切程度,相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 1. 如何利用相关系数判断数据之间 ...
- 数据可视化|用堆叠条形图进行对比分析
作者:林骥 来源:林骥 01 你好,我是林骥. 堆叠条形图,用于展示不同类别之间占比数据,常常能起到很好的对比效果. 比如说,对某产品的不同功能进行用户调查,让 100 个用户分别 ...
- 数据分析的三个常用方法,数据趋势、数据对比和数据细分的分析介绍
一个产品,如果你不能衡量它,你就不能了解它,自然而然,你就无法改进它.数据说到底,就是这样个工具--通过数据,我们可以衡量产品,可以了解产品,可以在数据驱动下改进产品. 数据分析和数据处理本身是个非常 ...
- SAP内部订单(IO)及SAP WBS财务功能主要差异对比分析及实施建议 IOWBS Comparison on Financial Functionalities
在SAP系统内,内部订单(Internal Order)是CO模块下重要的一大工具,也是SAP中常见的成本对象之一,企业可以按照自己的核算或统计分析需求创建内部订单从而实现自身目的,所以可以看到很多S ...
- 机器学习之数据探索——数据特征分析(对比分析与统计量分析)
在数据探索工作中,作为数据特征分析的角度,对比分析.统计量分析同样是发掘数据间关系与数据特征的重要渠道. 1 对比分析 对比分析是指把两个相互联系的指标进行比较,从数量上展示和说明研究对象规模的大小, ...
最新文章
- 2014年年度工作总结--IT狂人实录
- CCNP学习笔记(5)
- java文件递归_java递归处理文件夹和文件
- Spring Boot Admin的使用
- 聚类算法(part1)--DBSCAN
- [BZOJ]3173: [Tjoi2013]最长上升子序列
- 数据结构中的逻辑结构简介
- 【前端必备】七、页面性能优化
- [转载]读史记札记26:容人岂皆有雅量
- 百度宣布AI同传最新突破!能预测,低延时,演示效果惊人,外媒称媲美人类翻译...
- 2018java程序员面试题整理
- linux触摸屏信息,[linux]如何将触摸屏信号识别为鼠标信号?
- 古风诗词选别名-欢迎留言
- SageMath常用函数
- ColdFusion CGI or Application variables
- 为什么函数极值点的导数为零
- SAP-MM 采购组和采购组织的关系
- 【史上最全】如何建立模型
- UVALive 4126 Password Suspects(AC自动机+dp)
- 腾讯笔试04-24 题目二