python皮尔逊相关性数据分析分析及实例代码

 更新时间:2023年02月15日 10:53:53   作者:fanstuck  
这篇文章主要为大家介绍了python皮尔逊相关性分析及实例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达。其中常见的相关性系数就有三种:person相关系数,spearman相关系数,Kendall's tau-b等级相关系数。各有各自的用法和使用场景。当然关于这以上三种相关系数的计算算法和原理+代码我都会在我专栏里面写齐全。目前关于数学建模的专栏已经将传统的机器学习预测算法、维度算法、时序预测算法和权重算法写的七七八八了,有这个需求兴趣的同学可以去看看。

数值类型

之前在我上篇文章说过关于数据特征是一个很重要的例子,任何分析算法都需要建立在其符合使用场景之上,我们需要对症下药,从数据特征开始分析。

按照数据存储的数据格式可以归纳为两类:

按照特征数据含义又可分为:

  • 离散型随机变量:取值只能是可取范围内的指定数值类型的随机变量,比如年龄、车流量此类数据。
  • 连续随机变量:按照测量或者计算方法得到,在某个范围内连取n个值,此类数据可化为定类数据。
  • 二分类数据:此类数据仅只有两类:例如是与否、成功与失败。
  • 多分类数据:此类数据有多类:例如天气出太阳、下雨、阴天。
  • 周期型数据:此类数据存在一个周期循环:例如周数月数。

那么问题来了,关于这三种系数到底适用于哪种数据场景呢?

皮尔逊系数使用场景

首先使用皮尔逊系数的情况包含以下三种特性,我们从scipy的函数pearsonr的相关说明就可以看出:

The Pearson correlation coefficient [1] measures the linear relationship between two datasets. Like other correlation coefficients, this one varies between -1 and +1 with 0 implying no correlation. Correlations of -1 or +1 imply an exact linear relationship. Positive correlations imply that as x increases, so does y. Negative correlations imply that as x increases, y decreases.

也就是说:皮尔逊相关系数测量两个数据集之间的线性关系。与其他相关系数一样,该系数在-1和+1之间变化,0表示不相关。-1或+1的相关性意味着精确的线性关系。正相关意味着x增加,y也增加。负相关意味着随着x增加,y减少。 总结一下对于皮尔逊相关系数的使用场景,有三种必要的特性使用皮尔逊系数最佳:

  • 连续数据
  • 正态分布
  • 线性关系

上述三个条件均满足才能使用pearson相关系数,否则就用spearman相关系数。定序数据之间也只用spearman相关系数,不能用pearson相关系数。

皮尔逊相关系数(Pearson correlation)

1.定义

两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商:

 变量相关强度

相关程度极强相关强相关中等强度相关弱相关极弱相关或无相关
相关系数绝对值1-0.80.8-0.60.6-0.40.4-0.20.2-0

2.线性关系判定

一般可以利用散点图加上最小二乘法拟合大体看出线性关系:

3.正态检验

1.KS检验

假设检验的基本思想:

若对总体的某个假设是真实的,那么不利于或者不能支持这一假设的事件A在一次试验中是几乎不可能发生的。如果事件A真的发生了,则有理由怀疑这一假设的真实性,从而拒绝该假设。

实质分析: 假设检验实质上是对原假设是否正确进行检验,因此检验过程中要使原假设得到维护,使之不轻易被拒绝;否定原假设必须有充分的理由。同时,当原假设被接受时,也只能认为否定该假设的根据不充分,而不是认为它绝对正确。

借助假设检验的思想,利用K-S检验可以对数列的性质进行检验:

def normal_test(data):
    u = data.mean()
    std = data.std()
    result = stats.kstest(data, 'norm', (u, std))
    print(result)
normal_test()

此时,pvalue > 0.05,不拒绝原假设。因此数据服从正态分布。

4.计算代码

若以上验证均成功则采取皮尔逊相关系数进行相关性分析,可以使用pandas的函数corr:

DataFrame.corr(method='pearson', 
               min_periods=1,
               numeric_only=_NoDefault.no_default)

参数说明:

method: {‘pearson’, ‘kendall’, ‘spearman’} or callable。Method of correlation。

  • pearson : standard correlation coefficient,皮尔逊系数
  • kendall : Kendall Tau correlation coefficient,肯德尔系数
  • spearman :Spearman rank correlation,斯皮尔曼系数

min_periods:int, optional。每对列所需的最小样本数。目前仅适用于Pearson和Spearman相关性。 numeric_only:bool, default True。仅包含浮点、整型或布尔型数据。

rho =df_test.corr(method='pearson')
rho

plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.heatmap(rho, annot=True)
plt.title('Heat Map', fontsize=18)

以上就是python皮尔逊相关性分析及实例代码的详细内容,更多关于python皮尔逊相关性的资料请关注脚本之家其它相关文章!

相关文章

  • Python Mysql自动备份脚本

    Python Mysql自动备份脚本

    测试系统环境 Windows 2003 python 2.5.1 mysql 5.0.1 应该只适用于Win,因为调用了CMD。 增量备份,因为自用,数据库不大。
    2008-07-07
  • pytorch  网络参数 weight bias 初始化详解

    pytorch 网络参数 weight bias 初始化详解

    这篇文章主要介绍了pytorch 网络参数 weight bias 初始化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python实现根据Excel生成Model和数据导入脚本

    Python实现根据Excel生成Model和数据导入脚本

    最近遇到一个需求,有几十个Excel,每个的字段都不一样,然后都差不多是第一行是表头,后面几千上万的数据,需要把这些Excel中的数据全都加入某个已经上线的Django项目。所以我造了个自动生成 Model和导入脚本的轮子,希望对大家有所帮助
    2022-11-11
  • Python处理文件的方法(mimetypes和chardet)

    Python处理文件的方法(mimetypes和chardet)

    这篇文章主要介绍了Python处理文件的方法(mimetypes和chardet),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 基于Python实现录音功能的示例代码

    基于Python实现录音功能的示例代码

    今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能。文中的示例代码简洁易懂,感兴趣的小伙伴快跟随小编一起学习一下吧
    2023-02-02
  • python实现单张图像拼接与批量图片拼接

    python实现单张图像拼接与批量图片拼接

    这篇文章主要为大家详细介绍了python实现单张图像拼接与批量图片拼接,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • pygame实现俄罗斯方块游戏(基础篇1)

    pygame实现俄罗斯方块游戏(基础篇1)

    这篇文章主要为大家介绍了pygame实现俄罗斯方块游戏基础的第1篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python爬虫获取基金变动信息

    Python爬虫获取基金变动信息

    这篇文章主要介绍了Python爬虫获取基金变动信息,问基于上一篇文章得内容介绍围绕python的相关资料展开全文,需要的小伙伴可以参考一下
    2022-05-05
  • BeautifulSoup获取指定class样式的div的实现

    BeautifulSoup获取指定class样式的div的实现

    这篇文章主要介绍了BeautifulSoup获取指定class样式的div的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • pycharm2020上部署配置AutoGPT4.0(保姆级教程)

    pycharm2020上部署配置AutoGPT4.0(保姆级教程)

    本文主要介绍了pycharm2020上部署配置AutoGPT4.0,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论