数据分析进阶 - 相关分析(皮尔逊相关系数)

news/2024/11/9 20:44:39

相关分析

相关分析是研究两个或两个以上处于同等地位的随机变量间的相关关系的统计分析方法。通过对不同特征或数据间的关系进行分析,发现其中关键影响及驱动因素。在实际的工作应用中,常常用于特征的发现与选择。针对不同数据类型的变量,需要选用不同的检验方法,具体如下表所示

变量个数变量类型检验方法
两个均为连续变量皮尔逊相关系数、简单线性回归
两个均为有序分类变量Mantel-Haenszel 趋势检验、 Spearman相关、Kendall’s tau-b相关系数
两个均为无序分类变量卡方检验、Fisher精确检验
两个均为二分类变量相对风险、比值比、卡方检验和Phi (φ)系数、Fisher精确检验

皮尔逊相关系数

皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称 PPMCC或PCCs),是用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。

1.适用范围

  • 两个变量之间是线性关系,都是连续数据。
  • 两个变量的总体是正态分布,或接近正态的单峰分布。
  • 两个变量的观测值是成对的,每对观测值之间相互独立。

2.原理

利用两个变量间的协方差和变量的标准差进行计算而来(分子是协方差,分母是两个变量标准差的乘积)
在这里插入图片描述
3.Python实现

import pandas as pd
import numpy as np

# 数据
# 这里求a\b\c\d与e的相关系数
df = pd.DataFrame(np.random.randn(20).reshape(4,5),index = [1,2,3,4],
                  columns=['a','b','c','d','e',])
x = df.values
correlation_matrix = np.corrcoef(x.T)
r = correlation_matrix[:, -1].tolist()
for i in range(len(r)):
	print(str(r[i]))

4.其他补充

为什么输出会有nan?

由于皮尔逊相关系数是利用两个变量间的协方差和变量的标准差进行计算而来,若相关系数为nan,说明数据存在问题

  • 检查数据类型是否非数值型,可用info()
  • 检查数据是否都一样,导致分母中的标准差为0

计算相关系数之前需不需要标准化?

不需要标准化,因为相关系数本来就是一个标准化的统计量,从上面的计算公式可见,这就是一个标准化的过程,即相关系数就是标准化了的协方差。


http://www.niftyadmin.cn/n/4411293.html

相关文章

数据分析进阶 - 相关分析(卡方检验)

前言 上一篇博客是相关分析中的皮尔逊相关系数,具体可见链接:https://blog.csdn.net/Totoro1745/article/details/114748542?spm1001.2014.3001.5502 卡方检验 皮尔逊相关系数用于两个连续性变量,当变量为两个无序分类变量时就需要用卡方…

数据分析进阶 - 基于聚类的用户标签构建

前言 在用户画像标签体系建设的过程中,大部分标签都是以规则映射的方式构建,当规则难以梳理时,可以考虑用聚类模型进行划分,再用决策树的方式输出规则,这里仅简单分享,欢迎交流~ 示例 确定目的 对用户消…

数据分析进阶-基于tslearn的单变量时间序列聚类

前言 最近受一篇2015年文章《时间序列用户生命周期的聚类方法》的启发,阅读了很多时间序列聚类相关的方法,用消费行为的时间序列尝试去对用户行为进行分群,虽然现阶段的效果不如预期,就当总结希望后续能有所交流~ 基于日消费总额的时间序列聚类 为了更好地保留用户消费行…

数据分析进阶-基于tsfresh的多变量时间序列聚类

前言 上一篇博客主要尝试了基于tslearn的单变量时间序列聚类,多变量时间序列的方法经过一番搜索也没有找到合适的方式,因此考虑借助强大的时间序列特征提取工具tsfresh与KMeans尝试多变量时间序列的聚类实验 基于日消费总额+日消费次数的时间序列聚类 一、tsfresh tsfres…

数据分析进阶-cx_Oracle的简单使用

本示例使用pandascx_Oracle完成数据的读取和插入,一开始是想尝试pd.to_sql方法,但是需要借助sqlalchemy,因此本示例单纯使用cx_Oracle import pandas as pd import cx_Oracle as cxconn cx.connect(user_name/passwordhostname:port/servic…

数据分析进阶-Excel绘制分段折线图

前言 今天1024程序员节,虽然好像和我没有特别强的关系,写篇博客蹭个勋章吧~ Excel绘制分段折线图 1、如何凸显折线图中的重点片段 (1)首先将需要重点表示的数值提取出来放置新的一行数据中,如图所示,此…

Windows-设置Python定时任务

定时弹窗提醒 环境: win8Python3.8 代码: import tkinter.messagebox tkinter.messagebox.showwarning(警告,该喝水了)设置定时任务: 1、打开任务计划程序-创建任务 2、填写任务信息 3、报错指南 可查看任务计划程序库中的上次运行结果…

数据分析进阶-Excel自动化工具包openpyxl的基础使用

安装工具包 pip install openpyxl工作簿的使用 注意读取的EXCEL文件只能是xlsx后缀的噢~ # 创建工作簿 wb openpyxl.Workbook() wb.save(demo.xlsx) # 在源文件修改后也可以作为另存为的选项# 打开工作簿 wb openpyxl.load_workbook(test.xlsx, data_onlyTrue) # 读取公式…