前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python数据处理从零开始----第三章(pandas)⑥相关性分析目录

Python数据处理从零开始----第三章(pandas)⑥相关性分析目录

作者头像
用户1359560
发布于 2018-12-28 08:18:17
发布于 2018-12-28 08:18:17
2.2K00
代码可运行
举报
文章被收录于专栏:生信小驿站生信小驿站
运行总次数:0
代码可运行

目录

第三章(pandas)

Python数据处理从零开始----第三章(pandas)①删除列
Python数据处理从零开始----第三章(pandas)②处理缺失数据
Python数据处理从零开始----第三章(pandas)③数据标准化(1)
Python数据处理从零开始----第三章(pandas)④数据合并和处理重复值
Python数据处理从零开始----第三章(pandas)⑤pandas与R
Python数据处理从零开始----第三章(pandas)⑥相关性分析

=============================================== 相关性是两个变量之间关联的度量。当两个变量都有正太分布时,很容易计算和解释。而当我们不知道变量的分布时,我们必须使用非参数的秩相关(Rank Correlation,或称为等级相关)方法。

秩相关

相关性是指两个变量的观测值之间的关联。变量可能有正相关,即当一个变量的值增加时,另一个变量的值也会增加。也可能有负相关,意味着随着一个变量的值增加,其他变量的值减小。变量也可能是中立的,也就是说变量不相关。相关性的量化通常为值-1到1之间的度量,即完全负相关和完全正相关。计算出的相关结果被称为“ 相关系数”。然后可以解释该相关系数以描述度量。

可以使用诸如Pearson相关这样的标准方法来计算每个具有正太分布的两个变量之间的相关性。而秩相关是指使用变量之间序数的关联(而不是特定值)来量化变量之间的关联的方法。有序数据是具有标签值并具有顺序或秩相关的数据;例如:’ 低 ‘,’ 中 ‘和’ 高 ‘。

可以为实值变量计算秩相关。这是通过首先将每个变量的值转换为等级数据来完成的。值在这里被排序并指定整数排名值。然后可以计算秩相关系数以量化两个排序变量之间的关联。

由于没有假设值的分布,所以秩相关方法被称为自由分布相关(distribution-free correlation)或非参数相关(nonparametric correlation)。有趣的是,秩相关的度量通常被用作其他统计假设检验的基础,例如确定两个样本是否可能来自相同(或不同)的群体分布。

在接下来的部分中,我们将仔细研究两种更常见的秩相关方法:Spearman和Kendall。

测试数据集

在我们演示秩相关方法之前,我们必须首先定义一个测试问题。这一次使用的是diamond数据集。下面是这个数据集的属性介绍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
carat : ”Carat weight of the diamond
cutDescribe : cut quality of the diamond. Quality in increasing order Fair, Good, Very Good, Premium, Ideal
color :Color of the diamond, with D being the best and J the worst
clarity :How obvious inclusions are within the diamond:(in order from best to worst, FL = flawless, I3= level 3 inclusions) FL,IF, VVS1, VVS2, VS1, VS2, SI1, SI2, I1, I2, I3
depth :depth % :The height of a diamond, measured from the culet to the table, divided by its average girdle diameter  
table :table%: The width of the diamond's table expressed as a percentage of its average diameter
price :the price of the diamond
x :length mm
y :width mm
z :depth mm
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 25 20:44:45 2018

@author: czh
"""

%reset -f
%clear
# In[*]
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import lifelines as ll
from IPython.display import HTML
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.plotly as py
import plotly.tools as tls   
from plotly.graph_objs import *
import os
from scipy import stats
os.chdir("D:\\Rwork\\third\\Fig2")

# In[*]
data =pd.read_csv('https://vincentarelbundock.github.io/Rdatasets/csv/ggplot2/diamonds.csv',index_col=0)

cor_matrix = data.corr()
# In[*]
data.corr()    
#可以直接给出数据框的相关系数矩阵
data.corr()['price']  
#给出'price'变量与其他变量之间的相关系数
data['price'].corr(data["x"])    
#计算'price'"x"之间的相关系数
data.corr(method='pearson')                             
data.corr(method='pearson')['price']                    
data['price'].corr(method='pearson',data["x"])  
method也可以指定spearman法和kendall法计算相关系数。

Spearman秩相关

Spearman秩相关以Charles Spearman命名。它也被称为Spearman相关系数,通常用小写希腊字母rho (p)表示。因此,它也被称为Spearman’s rho。这个统计方法量化了等级变量与单调函数相关联的程度,即递增或递减的关系。作为统计假设检验,该方法假设样本是不相关的。

Spearman等级顺序相关是一种旨在度量序数测量尺度上两个变量之间关系的统计过程。

Spearman秩相关使用秩值而不是实际值来计算Pearson相关。Pearson相关性由两个变量中每个变量的方差或分布的标准化的协方差计算。Spearman的秩相关可以在Python中使用SciPy函数spearmanr()计算。该函数需要两个实值样本作为参数,并返回介于-1和1之间的相关系数以及用于解释系数意义的p值。我们可以在测试数据集上证明Spearman秩相关。我们知道数据集中的变量之间存在很强的关联,我们希望Spearman能够找到这种关联。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from numpy.random import rand
from numpy.random import seed
from scipy.stats import spearmanr
# seed random number generator
seed(1)
# prepare data
data1 = data['x']
data2 = data['price']
# calculate spearman's correlation
coef, p = spearmanr(data1, data2)
print('Spearmans correlation coefficient: %.3f' % coef)
# interpret the significance
alpha = 0.05
if p > alpha:
    print('Samples are uncorrelated (fail to reject H0) p=%.3f' % p)

else:
    print('Samples are correlated (reject H0) p=%.3f' % p)
  • 运行该示例计算两个变量之间的Spearman相关系数。

Spearmans correlation coefficient: 0.963 Samples are correlated (reject H0) p=0.000

统计检验返回的值为0.9(强正相关)。p值接近于零,这意味着观察到数据给出的样本不相关的可能性极小(例如95%置信度),并且我们可以驳回样本不相关的零假设。

Kendall秩相关

Kendall秩相关以Maurice Kendall命名。它也被称为Kendall相关系数,通常用小写希腊字母tau(t)表示。所以,它也被称为Kendall’s tau。这种检验是计算两个样本之间匹配或一致排名的标准化分数。因此,也称为Kendall’s concordance test。在Python中,Kendall秩相关系数可以使用SciPy函数kendalltau()计算。它将两个数据样本作为参数,并返回相关系数和p值。作为统计假设检验,该方法假设(H0)两个样本之间没有关联。我们可以在测试数据集上演示计算结果,我们预计会报告强正相关。下面列出了完整的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from numpy.random import rand
from numpy.random import seed
from scipy.stats import kendalltau
# seed random number generator
seed(1)
# prepare data
data1 = data['x']
data2 = data['price']
# calculate kendall's correlation
coef, p = kendalltau(data1, data2)
print('Kendall correlation coefficient: %.3f' % coef)
# interpret the significance
alpha = 0.05
if p > alpha:
    print('Samples are uncorrelated (fail to reject H0) p=%.3f' % p)
else:
    print('Samples are correlated (reject H0) p=%.3f' % p)
Kendall correlation coefficient: 0.831
Samples are correlated (reject H0) p=0.000

运行该示例,Kendall相关系数为 0.8,这是高度相关。与Spearman一样,p值接近零(打印为零),这意味着我们可以放心地驳回样本不相关的零假设。

最后面是经典的皮尔森相关分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from numpy.random import rand
from numpy.random import seed
from scipy.stats import spearmanr
# seed random number generator
seed(1)

# prepare data
data1 = data['x']
data2 = data['price']
# calculate spearman's correlation
coef, p = spearmanr(data1, data2)
print('Spearmans correlation coefficient: %.3f' % coef)
# interpret the significance

alpha = 0.05

if p > alpha:
    print('Samples are uncorrelated (fail to reject H0) p=%.3f' % p)
else:
    print('Samples are correlated (reject H0) p=%.3f' % p)
Spearmans correlation coefficient: 0.963
Samples are correlated (reject H0) p=0.000
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.12.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据分析利器之相关性分析
导读:相关性分析在量化分析、行业分析、机器学习等领域都有着普遍的应用,本文将围绕相关性分析的定义、相关性系数等重点知识展开介绍,更多数据分析干货可点击数据分析方法论(干货)。
三猫
2022/03/15
1.5K0
数据分析利器之相关性分析
使用Python计算非参数的秩相关
当两个变量都有良好理解的高斯分布时,很容易计算和解释。而当我们不知道变量的分布时,我们必须使用非参数的秩相关(Rank Correlation,或称为等级相关)方法。
AiTechYun
2018/07/27
2.8K0
使用Python计算非参数的秩相关
左手用R右手Python系列11——相关性分析
由于最近毕业论文缠身,一直都没有太多时间和精力撰写长篇的干货,但是呢学习的的脚步不能停止,今天跟大家盘点一下R语言与Python中到的相关性分析部分的常用函数。 常用的衡量随机变量相关性的方法主要有三种: pearson相关系数;即皮尔逊相关系数,用于横向两个连续性随机变量间的相关系数。 spearman相关系数;即斯皮尔曼相关系数,用于衡量分类定序变量间的相关程度。 kendall相关系数;即肯德尔相关系数,也是一种秩相关系数,不过它所计算的对象是分类变量。 R语言: cor cor.test corrp
数据小磨坊
2018/04/11
1.9K0
左手用R右手Python系列11——相关性分析
Python数据处理从零开始----第三章(pandas)⑤pandas与R目录
===============================================
用户1359560
2018/12/24
4530
Python+pandas计算数据相关系数
本文主要演示pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数、Kendall Tau相关系数和spearman秩相关)。 >>> import numpy as np >>> import pandas as pd >>> df = pd.DataFrame({'A':np.random.randint(1, 100, 10), 'B':np.random.randint(1, 100, 10), 'C':
Python小屋屋主
2018/04/16
1.2K0
数学建模学习笔记(十一)三大相关系数(pearson[皮尔森]、spearman[斯皮尔曼] 和 kendall[肯德尔])
三大相关系数分别是pearson[皮尔森]、spearman[斯皮尔曼] 和 kendall[肯德尔] 反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强。
zstar
2022/06/14
2K0
特征工程之特征关联
昨天学习了seaborn绘制图形,以及单变量与多变量之间的绘图,那么今天从统计学角度实战分析在处理特征工程过程中所涉及的三个相关系数(具体的三个系数数学推导,在后续更新)。
公众号guangcity
2019/09/20
1.6K0
特征工程之特征关联
kaggle实战-肿瘤数据统计分析
数据地址为:https://www.kaggle.com/code/kanncaa1/statistical-learning-tutorial-for-beginners/notebook
皮大大
2023/08/23
3250
数据分析:5个数据相关性指标
相似性度量是许多数据分析和机器学习任务中的重要工具,使我们能够比较和评估不同数据片段之间的相似性。有许多不同的指标可用,每个指标各有利弊,适用于不同的数据类型和任务。
数据科学工厂
2023/02/27
5290
数据分析:5个数据相关性指标
使用Seaborn和Pandas进行相关性检查
研究数据集以查看哪些变量具有相关性时,这是我首先执行的任务之一。这使我更好地了解我正在处理的数据。这也是培养对数据的兴趣并建立一些初步问题以尝试回答的好方法。
磐创AI
2020/12/28
2K0
使用Seaborn和Pandas进行相关性检查
文献配套GitHub发表级别绘图04-相关性散点图
文章来源:"Preoperative immune landscape predisposes adverse outcomes in hepatocellular carcinoma patients with liver transplantation" (2021,npj Precision Oncology),数据与代码全部公开在https://github.com/sangho1130/KOR_HCC。
生信技能树
2022/03/03
1.3K0
文献配套GitHub发表级别绘图04-相关性散点图
Python从零开始第三章数据处理与分析python中的dplyr(5)目录
===============================================
用户1359560
2019/01/03
1K0
R语言入门之相关性
在这里,我想和大家简单介绍一下如何度量列联表里分类变量之间的相关性。我们可以使用“vcd”包里的assocstats(x)函数,这里x是一个列联表,示例如下:
生信与临床
2020/08/06
1.4K0
R语言入门之相关性
【SAS Says】基础篇:基本统计、相关分析与回归分析
特别说明:本节【SAS Says】基础篇:SAS宏初步,用的是数说君学习《The little SAS book》时的中文笔记,我们认为这是打基础的最好选择 SAS是一个专业的统计软件,前面我们介绍了很多数据管理、输出美化的东西,本节终于要介绍一点SAS做统计的知识了,不过,在基础篇中我们只大概介绍一下,更多统计分析的东西放在进阶篇中。 本节目录: 1. 用proc univariate检验数据分布 2. 用proc means产生统计量 3. 用proc freq检验数据分类 4. 用proc corr检
数说君
2018/04/04
4.2K0
【SAS Says】基础篇:基本统计、相关分析与回归分析
为什么特征相关性非常的重要?
鹳会接生孩子吗?虽然它已经在相关性和因果关系的背景下得到了理论上的证明,但本文探讨了相关性以及它与因果关系的不同之处。
石晓文
2019/11/12
5.8K0
Python从零开始第三章数据处理与分析python中的dplyr(3)目录
===============================================
用户1359560
2019/01/03
6420
Python计算数据相关系数(person、Kendall、spearman)
pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数、Kendall Tau相关系数和spearman秩相关)。
DrugAI
2021/01/28
14K0
R语言 相关性分析与检验
“题外话:相关性不是因果,相关性只能说数据上来讲两个或多个因素具有正/负/无相关性,其间没有谁决定谁的关系”
拴小林
2020/07/10
4.7K0
R语言 相关性分析与检验
使用Seaborn和Pandas进行相关性分析和可视化
数据集可以讲述很多故事。要想了解这些故事的展开,最好的方法就是从检查变量之间的相关性开始。在研究数据集时,我首先执行的任务之一是查看哪些变量具有相关性。这让我更好地理解我正在使用的数据。这也是培养对数据的兴趣和建立一些初始问题来尝试回答的好方法。简单地说,相关性是非常重要的。
deephub
2020/12/11
2.6K0
使用Seaborn和Pandas进行相关性分析和可视化
表观调控13张图之二相关性热图看不同样本相关性
现在我们再解读一下第二张图,如果你对视频感兴趣,还是可以继续留邮箱,我们在圣诞节统一发邮件给大家全部的视频云盘链接和配套代码哈!
生信技能树
2019/12/24
4.4K0
表观调控13张图之二相关性热图看不同样本相关性
推荐阅读
相关推荐
数据分析利器之相关性分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验