广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎样用Python进行相关性分析
  • 771
分享到

怎样用Python进行相关性分析

2023-06-16 19:06:59 771人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

今天就跟大家聊聊有关怎样用python进行相关性分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.相关和因果是一回事吗相关性不等于因果。用x1和x2作为两个变量进行解释,相关意味

今天就跟大家聊聊有关怎样用python进行相关性分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.相关和因果是一回事吗

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

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

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

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

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

2.相关系数低就是不相关吗

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

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

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

3.代码实操: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个特征。

展示结果如图所示。

怎样用Python进行相关性分析

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

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

看完上述内容,你们对怎样用Python进行相关性分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网Python频道,感谢大家的支持。

--结束END--

本文标题: 怎样用Python进行相关性分析

本文链接: https://www.lsjlt.com/news/284863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎样用Python进行相关性分析
    今天就跟大家聊聊有关怎样用Python进行相关性分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.相关和因果是一回事吗相关性不等于因果。用x1和x2作为两个变量进行解释,相关意味...
    99+
    2023-06-16
  • 使用SPSS进行相关性分析的相关步骤
    ...
    99+
    2016-11-12
    使用SPSS进行相关性分析的相关步骤
  • 如何用Python对数据进行相关性分析
    这期内容当中小编将会给大家带来有关如何用Python对数据进行相关性分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在进行数据分析时,我们所用到的数据往往都不是一维的,而这些数据在分析时难度就增加了不少...
    99+
    2023-06-16
  • 如何用Python进行回归分析与相关分析
    目录一、前言1.1 回归分析1.2 相关分析二、代码的编写2.1 前期准备2.2 编写代码2.2.1 相关分析 2.2.2 一元线性回归分析 2.2.3 多元线性...
    99+
    2023-03-22
    python python回归分析 python相关分析
  • python进行相关性分析并绘制散点图详解
    目录 需要用到的库数据读取总结近期,有小伙伴问我关于怎么使用python进行散点图的绘制,这个东西很简单,但是怎么讲相关性的值标注在图形上略显麻烦,因此,在这里记录一下,将...
    99+
    2022-11-12
  • 详解Python进行数据相关性分析的三种方式
    目录相关性实现NumPy 相关性计算SciPy 相关性计算Pandas 相关性计算线性相关实现线性回归:SciPy 实现等级相关排名:SciPy 实现等级相关性:NumPy 和 Sc...
    99+
    2022-11-10
  • Python进行数据相关性分析的三种方式是什么
    本文小编为大家详细介绍“Python进行数据相关性分析的三种方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python进行数据相关性分析的三种方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。相...
    99+
    2023-06-30
  • 怎样分析MySQL中锁的相关问题
    这篇文章给大家介绍怎样分析MySQL中锁的相关问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。锁分类:从对数据操作的粒度分 :表锁:操作时,会锁定整个表。行锁:操作时,会锁定当前操作行。从对数据操作的类型分:读锁(共...
    99+
    2023-06-22
  • 怎样进行Python数据结构分析
    怎样进行Python数据结构分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python数据结构数据结构引言:    数据结构是组...
    99+
    2023-06-02
  • Python数据分析Numpy中常用相关性函数
    目录摘要:一、股票相关性分析二、多项式三、求极值的知识摘要: NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率。这些函数包括数组...
    99+
    2022-11-11
  • python进行词性分析
    表示python的nltk包真的很好用,本来想着自己从字典里面抓数据的,后来师兄建议用nltk包, http://www.nltk.org/install.html 按照方法安装了包,接下来 import nltk nltk.down...
    99+
    2023-01-31
    词性 python
  • 怎样进行mysqlbackup的分析
    这期内容当中小编将会给大家带来有关怎样进行mysqlbackup的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、mysqlbackup工具的介绍1.1 mysql...
    99+
    2022-10-19
  • 怎样进行Visual Studio分析
    本篇文章为大家展示了怎样进行Visual Studio分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。现在人们更关心的是早一些时候发布的Whidbey。但是对于Orcas,微软强调指出该版本将能够...
    99+
    2023-06-17
  • 怎样进行Node.js的分析
    这篇文章给大家介绍怎样进行Node.js的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、关于 Node.js1.Node.js 是什么Node.js® is a JavaScript runtime built...
    99+
    2023-06-04
  • python斯皮尔曼spearman相关性分析实例
    目录前言一、定义二、斯皮尔曼相关使用场景三、斯皮尔曼相关系数计算四、斯皮尔曼相关系数的假设检验前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以...
    99+
    2023-02-15
    python 斯皮尔曼相关性分析 python spearman 数据分析
  • python皮尔逊相关性数据分析分析及实例代码
    目录前言数值类型皮尔逊系数使用场景皮尔逊相关系数(Pearson correlation)1.定义2.线性关系判定3.正态检验1.KS检验4.计算代码前言 相关性分析算是很多算法以...
    99+
    2023-02-15
    python皮尔逊相关性 python 数据分析
  • 如何进行Ruby线程相关知识点分析
    这期内容当中小编将会给大家带来有关如何进行Ruby线程相关知识点分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Ruby语言一款完全面向对象的解释型脚本语言。对于这样的一款新型编程语言,其特性对于程序员...
    99+
    2023-06-17
  • 相关性分析热力图(Python&Matlab代码实现)
    目录 1 热力图 1.1 简介 1.2 语法  2 算例1(Python代码实现) 2.1 算例 2.2 Python代码 2.3 运行结果  3 算例2(Python代码实现) 4 算例3(Python代码实现) 4.1 算例 4.2 P...
    99+
    2023-09-02
    python 开发语言 相关性分析 matlab
  • 相关分析——皮尔逊相关系数、t显著性检验及Python实现
    一、相关分析 (1)衡量事物之间或称变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程。 (2)比如家庭收入和支出、一个人所受教育程度与其收入、子女身高和父母身高的相关性。 二、相关系数 (1)衡量变量之间相关程度的一个量值。 (...
    99+
    2023-09-25
    python 数据分析
  • 用Python进行简单的文本相似度分析
    学习目标: 利用gensim包分析文档相似度 使用jieba进行中文分词 了解TF-IDF模型 环境: Python 3.6.0 |Anaconda 4.3.1 (64-bit) 工具: jupyter notebook 注:...
    99+
    2023-01-31
    文本 简单 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作