相关和因果是一回事吗?R值低就是不相关?终于有人讲明白了

640?wx_fmt=gif

导读:相关性分析是指对多个具备相关关系的变量进行分析,从而衡量变量间的相关程度或密切程度。相关性可以应用到所有数据的分析过程中,任何事物之间都是存在一定的联系。相关性用R(相关系数)表示,R的取值范围是[-1, 1]。

 

作者:宋天龙
来源:大数据DT(ID:bigdatadt)

 

640?wx_fmt=jpeg

 

 

01 相关和因果是一回事吗

 

相关性不等于因果。用x1和x2作为两个变量进行解释,相关意味着x1和x2是逻辑上的并列相关关系,而因果联系可以解释为因为x1所以x2(或因为x2所以x1)的逻辑关系,二者是完全不同的。

 

用一个运营示例来说明二者的关系:做商品促销活动时,通常都会以较低的价格进行销售,以此来实现较高的商品销量;随着商品销售的提升,也给线下物流配送体系带来了更大的压力,在该过程中通常会导致商品破损量的增加。

 

本案例中,商品低价与破损量增加并不是因果关系,即不能说因为商品价格低所以商品破损量增加;二者的真实关系是都是基于促销这个大背景下,低价和破损量都是基于促销产生的。

 

相关性的真实价值不是用来分析“为什么”的,而是通过相关性来描述无法解释的问题背后真正成因的方法。相关性的真正的价值是能知道“是什么”,即无论通过何种因素对结果产生影响,最终出现的规律就是二者会一起增加或降低等。

 

仍然是上面的案例,通过相关性分析我们可以知道,商品价格低和破损量增加是相伴发生的,这意味着当价格低的时候(通常是做销售活动,也有可能产品质量问题、物流配送问题、包装问题等),我们就想到破损量可能也会增加。但是到底由什么导致的破损量增加,是无法通过相关性来得到的。

 

 

02 相关系数低就是不相关吗

 

R(相关系数)低就是不相关吗?其实不是。

 

  • R的取值可以为负,R=-0.8代表的相关性要高于R=0.5。负相关只是意味着两个变量的增长趋势相反,因此需要看R的绝对值来判断相关性的强弱。

  • 即使R的绝对值低,也不一定说明变量间的相关性低,原因是相关性衡量的仅仅是变量间的线性相关关系,变量间除了线性关系外,还包括指数关系、多项式关系、幂关系等,这些“非线性相关”的相关性不在R(相关性分析)的衡量范围之内。

 

 

03 代码实操:Python相关性分析

 

本示例中,将使用Numpy进行相关性分析。源文件data5.txt位于“附件-chapter3”中。附件下载地址:

http://www.dataivy.cn/book/python_book_v2.zip

 

import numpy as np                  # 导入库
data = np.loadtxt('data5.txt', delimiter='\t')    # 读取数据文件
x = data[:, :-1]                      # 切分自变量
correlation_matrix = np.corrcoef(x, rowvar=0)      # 相关性分析
print(correlation_matrix.round(2))          # 打印输出相关性结果

 

 

示例中实现过程如下:

 

  1. 先导入Numpy库;

  2. 使用Numpy的loadtxt方法读取数据文件,数据文件以tab分隔;

  3. 矩阵切片,切分出自变量用来做相关性分析;

  4. 使用Numpy的corrcoef方法做相关性分析,通过参数rowvar = 0控制对列做分析;

  5. 打印输出相关性矩阵,使用round方法保留2位小数。结果如下:

 

[[ 1.   -0.04  0.27 -0.05  0.21 -0.05  0.19 -0.03 -0.02]
 [-0.04  1.   -0.01  0.73 -0.01  0.62  0.    0.48  0.51]
 [ 0.27 -0.01  1.   -0.01  0.72  0.    0.65  0.01  0.02]
 [-0.05  0.73 -0.01  1.    0.01  0.88  0.01  0.7   0.72]
 [ 0.21 -0.01  0.72  0.01  1.    0.02  0.91  0.03  0.03]
 [-0.05  0.62  0.    0.88  0.02  1.    0.03  0.83  0.82]
 [ 0.19  0.    0.65  0.01  0.91  0.03  1.    0.03  0.03]
 [-0.03  0.48  0.01  0.7   0.03  0.83  0.03  1.    0.71]
 [-0.02  0.51  0.02  0.72  0.03  0.82  0.03  0.71  1.  ]]

 

 

相关性矩阵的左侧和顶部都是相对的变量,从左到右、从上到下依次是列1到列9。从结果看出:

 

  • 第5列和第7列相关性最高,系数达到0.91。

  • 第4列和第6列相关性较高,系数达到0.88。

  • 第8列和第6列相关性较高,系数达到0.83。

 

为了更好地展示相关性结果,我们可以配合Matplotlib展示图像。代码如下:

 

fig = plt.figure()                      # 调用figure创建一个绘图对象
ax = fig.add_subplot(111)                  # 设置1个子网格并添加子网格对象
hot_img = ax.matshow(np.abs(correlation_matrix), vmin=0, vmax=1)
        # 绘制热力图,值域从0到1
fig.colorbar(hot_img)                      # 为热力图生成颜色渐变条
ticks = np.arange(0, 9, 1)                  # 生成0~9,步长为1
ax.set_xticks(ticks)                      # 生成x轴刻度
ax.set_yticks(ticks)                      # 设置y轴刻度
names = ['x' + str(i) for i in range(x.shape[1])]    # 生成坐标轴标签文字
ax.set_xticklabels(names)                  # 生成x轴标签
ax.set_yticklabels(names)          # 生成y轴标签

 

 

上述代码的功能都已经在注释中注明。有以下几点需要注意:

 

  • 由于相关性结果中看的是绝对值的大小,因此需要对correlation_matrix做取绝对值操作,其对应的值域会变为[0, 1]。

  • 原始数据中由于没有列标题,因此这里使用列表推导式生成从x0到x8代表原始的9个特征。

 

展示结果如图所示。

 

640?wx_fmt=png

 

从图像中配合颜色可以看出:颜色越亮(彩色颜色为越黄),则相关性结果越高,因此从左上角到右下角呈现一条黄色斜线;而颜色较亮的第5列和第7列、第4列和第6列及第8列和第6列分别对应x4和x6、x3和x5、x7和x5。

 

上述过程中,主要需要考虑的关键点是:如何理解相关性和因果关系的差异,以及如何应用相关性。相关性分析除了可以用来分析不同变量间的相关伴生关系以外,也可以用来做多重共线性检验。

 

代码实操小结:本节示例中,主要用了如下几个知识点。

 

  • 通过Numpy的loadtxt方法读取文本数据文件,并指定分隔符;

  • 对Numpy矩阵做切块处理;

  • 使用Numpy中的corrcoef做相关性分析;

  • 使用round方法保留2位小数;

  • 使用np.abs取绝对值;

  • 使用列表推导式生成新列表;

  • 使用Matplotlib的热力图配合相关性结果做图像展示。

 

关于作者:宋天龙,深大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(德国最大在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设计、业务需求转换、数据结构梳理、数据建模与学习以及数据工程交付。在电子商务、零售、银行、保险等多个行业拥有丰富的数据项目工作经验。

 

本文摘编自《Python数据分析与数据化运营》(第2版),经出版方授权发布。

 

 

延伸阅读《Python数据分析与数据化运营》

(第2版)

点击上图了解及购买

转载请联系微信:DoctorData

 

推荐语:这是一本将数据分析技术与数据使用场景深度结合的著作,从实战角度讲解了如何利用Python进行数据分析和数据化运营。本书与同类书大的不同在于,并不只有纯粹的关于数据分析技术和工具的讲解,而且还与数据使用场景深度结合,在业务上真正可指导落地。此外,本书作者提供微信、邮箱等,可通过实时和离线两种方式及时为读者在线传道、受业、解惑。

 

640?

 

「大数据」内容合伙人之「鉴书小分队」上线啦!

 

最近,你都在读什么书?有哪些心得体会想要跟大家分享?

 

数据叔最近搞了个大事——联合优质图书出版商机械工业出版社华章公司发起鉴书活动。

 

简单说就是:你可以免费读新书,你可以免费读新书的同时,顺手码一篇读书笔记就行。详情请在大数据公众号后台对话框回复合伙人查看。

 

640?

 

有话要说?

 

Q:  你用哪些工具进行相关性分析?
欢迎留言与大家分享

 

猜你想看?

 

  •  

  •  

  •  

  •  

 

更多精彩?

 

在公众号对话框输入以下 关键词
查看更多优质内容!

 

PPT |  报告 |  读书 |  书单 |  干货  
大数据 |  揭秘 |  Python |  可视化
AI |  人工智能 |  5G |  中台
机器学习 |  深度学习 |  神经网络
合伙人  1024 |  段子 |  数学

 

据统计,99%的大咖都完成了这个神操作
?

 

640?wx_fmt=png

 

觉得不错,请把这篇文章分享给你的朋友
转载 / 投稿请联系:baiyu@hzbook.com
更多精彩,请在后台点击“历史文章”查看
640?wx_fmt=jpeg
640?wx_fmt=gif点击阅读原文,了解更多
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加占GDP比重 第二产业增加占GDP比重 第三产业增加占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产 规模以上工业总产_内资企业 规模以上工业总产_港澳台商投资企业 规模以上工业总产_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值