社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

左手用R右手Python系列(XI): 相关性分析

EasyCharts • 7 年前 • 1063 次点击  

由于最近毕业论文缠身,一直都没有太多时间和精力撰写长篇的干货,但是呢学习的的脚步不能停止,今天跟大家盘点一下R语言与Python中到的相关性分析部分的常用函数。


常用的衡量随机变量相关性的方法主要有三种:


  • pearson相关系数;即皮尔逊相关系数,用于横向两个连续性随机变量间的相关系数。

  • spearman相关系数;即斯皮尔曼相关系数,用于衡量分类定序变量间的相关程度。

  • kendall相关系数;即肯德尔相关系数,也是一种秩相关系数,不过它所计算的对象是分类变量。


R语言:


  • cor

  • cor.test

  • corrplot


cor(x,y=NULL,use="everything",method= c("pearson","kendall","spearman"))


在R语言中,通常使用cor函数进行相关系数分析,可以分别指定向量,也可以指定给cor函数一个数据框。


  • use函数指定处理缺失值的方式

  • method是可选的三种相关系数计算方法。


这里以diamonds数据集为例:


library("ggplot2")

str(diamonds)



cor(diamonds[,c("carat","depth","price")])

cor(diamonds[,c("carat","depth","price")],method= "pearson")



默认情况下使用的是pearson相关系数。


corrplot函数可以针对相关系数输出的结果进行可视化:


library("corrplot")

library("dplyr")

cor(diamonds[,c("carat","depth","price")])%>%corrplot()



使用cor.test函数进行相关性的检验:


cor.test(x, y,    #指定带分析变量

alternative = c("two.sided", "less", "greater"),         

#双侧检验,单侧检验(默认双侧)

method = c("pearson", "kendall", "spearman"), 

 #相关性算法(默认pearson法)

exact = NULL, conf.level = 0.95, continuity = FALSE, ...)

cor.test(diamonds$carat,diamonds$depth)

cor.test(~carat+depth,diamonds)



以上两种写法都是支持的。


从结果可以看到,两者几乎不相关,pearson相关系数仅有0.02左右。


Pyhton:


import pandas as pd

import numpy as np

diamonds=pd.read_csv('D:/R/File/diamonds.csv',sep = ',',encoding = 'utf-8')

diamonds.info()



pandas中带有相关系数函数pandas.corr



mydata=diamonds[["carat","depth","table","price"]]

mydata.info()



mydata.corr()    

#可以直接给出数据框的相关系数矩阵

mydata.corr()["carat"]    

#给出caret变量与其他变量之间的相关系数

mydata["carat"].corr(mydata["depth"])    

#计算"carat"与"depth"之间的相关系数


与R语言中一样,pandas中内置的相关系数算法也是针对针对数值型变量的pearson法。


mydata.corr(method='pearson')                             

mydata.corr(method='pearson')["carat"]                    

mydata["carat"].corr(method='pearson',mydata["depth"])    



method也可以指定spearman法和kendall法计算相关系数。


本文小结:


R语言:


  • cor

  • cor.test

  • corplot


Python:


pandas.corr


左手用R右手Python系列(I): 字符串格式化输出

左手用R右手Python系列(II): 数据合并与追加

左手用R右手Python系列(III): 数据塑型与长宽转换

左手用R右手Python系列(IV): 因子变量与分类重编码

左手用R右手Python系列(V): 数据切片与索引

左手用R右手Python系列(VI): 变量计算与数据聚合

左手用R右手Python系列(VII): 排序

左手用R右手Python系列(VIII):数据去重与缺失值处理

左手用R右手Python系列(IX):字符串合并与拆分

左手用R右手Python系列(X): 统计描述与列联分析


如需转载请联系EasyCharts团队!

微信后台回复“转载”即可!



【书籍推荐】《Excel 数据之美--科学图表与商业图表的绘制》

【手册获取】国内首款-数据可视化参考手册:专业绘图必备

【必备插件】  EasyCharts -- Excel图表插件

【网易云课堂】  Excel 商业图表修炼秘笈之基础篇



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/f1Ja9XRSmI
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3733
 
1063 次点击