常见的相关性分析
创始人
2024-06-03 11:23:53
0

方差分析和相关性分析都是描述特征之间的关系的统计方法,但它们关注的方面略有不同。

方差分析主要用于研究一个或多个自变量对因变量的影响,即研究因素之间的差异性。通过比较不同组之间的方差,可以确定哪些因素对结果变量的影响比较重要,以及不同组之间的显著性差异。因此,方差分析可以用于描述特征的重要性程度。
相关性分析主要用于研究两个或多个变量之间的关系,即研究特征之间的相关性。通过计算相关系数,可以确定不同变量之间的相关程度,以及变量之间的正相关或负相关关系。因此,相关性分析可以用于描述特征间的关系。

Pearson相关系数分析:用于评估两个连续变量之间的线性关系。
Spearman秩相关系数分析:用于评估两个有序变量之间的关系,不要求变量之间具有线性关系。
Kendall秩相关系数分析:用于评估两个有序变量之间的关系,也不要求变量之间具有线性关系。
判定系数(R²)分析:用于评估一个变量是否能够解释另一个变量的变异。

Pearson相关系数分析

Pearson相关系数是用于衡量两个连续变量之间线性相关程度的方法。它的取值范围在-1到1之间,其中0表示没有相关关系,1表示完全正相关,-1表示完全负相关。

计算Pearson相关系数的公式为:

r = Σ((x - x̄)(y - ȳ)) / [(Σ(x - x̄)²Σ(y - ȳ)²) ^ 0.5]

其中,x和y是两个变量的观测值,x̄和ȳ是它们的均值。r的取值范围在-1到1之间,r值越接近1或-1,代表两个变量之间的相关性越强;r值越接近0,代表两个变量之间没有相关性。

Spearman秩相关系数分析

Spearman秩相关系数是用于评估两个有序变量之间的关系的方法。它的取值范围在-1到1之间,其中0表示没有相关关系,1表示完全正相关,-1表示完全负相关。

计算Spearman秩相关系数的公式为:

r = 1 - (6Σd² / n(n² - 1))

其中,d为两个变量的秩次差,n为样本个数。Spearman秩相关系数与Pearson相关系数类似,但更适用于非正态分布的数据或者两个变量之间不是线性关系的情况。

Kendall秩相关系数分析

Kendall秩相关系数也是用于评估两个有序变量之间的关系的方法。它的取值范围也在-1到1之间,其中0表示没有相关关系,1表示完全正相关,-1表示完全负相关。

计算Kendall秩相关系数的公式:
r = (P - Q) / [(n(n-1))/2]

其中,P是两个变量的排列一致的对数,Q是两个变量的排列不一致的对数,n是样本个数。Kendall秩相关系数与Spearman秩相关系数类似,但更适用于小样本数据和存在相同秩次的情况。

在计算P和Q时,首先需要将变量的观测值从小到大排列,并为每个观测值分配一个秩次。然后,对于任意两个观测值,如果它们在两个变量中的秩次一致,则为一致对数P加1;如果它们在两个变量中的秩次不一致,则为不一致对数Q加1。最后,将P和Q代入公式中即可计算出Kendall秩相关系数。

数值型变量例子

import pandas as pd
from scipy.stats import pearsonr, spearmanr, kendalltau# 构造样本数据
df = pd.DataFrame({'x': [1, 2, 3, 4, 5],'y': [3, 5, 7, 9, 11]
})# 计算Pearson相关系数和p值
pearson_corr, pearson_pvalue = pearsonr(df['x'], df['y'])
print('Pearson相关系数:', pearson_corr)
print('Pearson p值:', pearson_pvalue)# 计算Spearman秩相关系数和p值
spearman_corr, spearman_pvalue = spearmanr(df['x'], df['y'])
print('Spearman秩相关系数:', spearman_corr)
print('Spearman p值:', spearman_pvalue)# 计算Kendall秩相关系数和p值
kendall_corr, kendall_pvalue = kendalltau(df['x'], df['y'])
print('Kendall秩相关系数:', kendall_corr)
print('Kendall p值:', kendall_pvalue)
'''
在上面的例子中,我们使用了pandas包创建了一个包含两个变量x和y的DataFrame对象。
然后,分别使用scipy.stats包中的pearsonr()、spearmanr()和kendalltau()函数计算了Pearson、Spearman和Kendall秩相关系数以及p值。
最后,将结果打印出来。需要注意的是,这些函数计算相关系数时,会自动排除包含缺失值的样本。如果数据中包含缺失值,需要先进行缺失值处理。
'''

文本型变量例子

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from scipy.stats import pearsonr# 构造样本数据
text_list = ['I love Python','Python is the best programming language','Java is another programming language','I dislike Java'
]
df = pd.DataFrame({'text': text_list})# 使用TF-IDF向量化文本
vectorizer = TfidfVectorizer()
tfidf = vectorizer.fit_transform(df['text'])# 计算Pearson相关系数和p值
corr, pvalue = pearsonr(tfidf[0].toarray()[0], tfidf[1].toarray()[0])
print('Pearson相关系数:', corr)
print('p值:', pvalue)
'''
在上面的例子中,我们使用sklearn库中的TfidfVectorizer类将文本向量化为TF-IDF向量,
然后使用scipy库中的pearsonr()函数计算了第一篇文章和第二篇文章之间的Pearson相关系数和p值。
需要注意的是,这里只计算了两篇文章之间的相关性,如果需要计算多篇文章之间的相关性,可以使用循环或者矩阵计算的方法。
'''

相关内容

热门资讯

122.(leaflet篇)l... 听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
Vue使用pdf-lib为文件... 之前也写过两篇预览pdf的,但是没有加水印,这是链接:Vu...
PyQt5数据库开发1 4.1... 文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式 3 允许远程连接服...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
Linux基础命令大全(上) ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维...
再谈解决“因为文件包含病毒或潜... 前面出了一篇博文专门来解决“因为文件包含病毒或潜在的垃圾软件”的问题,其中第二种方法有...
南京邮电大学通达学院2023c... 题目展示 一.问题描述 实验题目1 定义一个学生类,其中包括如下内容: (1)私有数据成员 ①年龄 ...
PageObject 六大原则 PageObject六大原则: 1.封装服务的方法 2.不要暴露页面的细节 3.通过r...
【Linux网络编程】01:S... Socket多进程 OVERVIEWSocket多进程1.Server2.Client3.bug&...
数据结构刷题(二十五):122... 1.122. 买卖股票的最佳时机 II思路:贪心。把利润分解为每天为单位的维度,然后收...
浏览器事件循环 事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间࿰...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
计算机二级Python备考(2... 目录  一、选择题 1.在Python语言中: 2.知识点 二、基本操作题 1. j...
端电压 相电压 线电压 记得刚接触矢量控制的时候,拿到板子,就赶紧去测各种波形,结...
如何使用Python检测和识别... 车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计...
带环链表详解 目录 一、什么是环形链表 二、判断是否为环形链表 2.1 具体题目 2.2 具体思路 2.3 思路的...
【C语言进阶:刨根究底字符串函... 本节重点内容: 深入理解strcpy函数的使用学会strcpy函数的模拟实现⚡strc...
Django web开发(一)... 文章目录前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和s...