数据特征分析:相关性分析(Pandas中的corr方法)
文章目录
- 1.图示初判
- 两个变量之间的相关性(散点图)
- 多变量之间的相关性(散点图矩阵)
- 2.Pearson相关系数
- 3.Spearman相关系数
分析连续变量之间的线性相关程度的强弱
介绍如下几种方法:
- 图示初判
- Pearson相关系数(皮尔逊相关系数)
- Sperman秩相关系数(斯皮尔曼相关系数)
1.图示初判
拿到一组数据,可以先绘制散点图查看各数据之间的相关性:
两个变量之间的相关性(散点图)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
%matplotlib inline# 图示初判
# (1)变量之间的线性相关性data1 = pd.Series(np.random.rand(50)*100).sort_values()
data2 = pd.Series(np.random.rand(50)*50).sort_values()
data3 = pd.Series(np.random.rand(50)*500).sort_values(ascending = False)
# 创建三个数据:data1为0-100的随机数并从小到大排列,data2为0-50的随机数并从小到大排列,data3为0-500的随机数并从大到小排列,fig = plt.figure(figsize = (10,4))
ax1 = fig.add_subplot(1,2,1)
ax1.scatter(data1, data2)
plt.grid()
# 正线性相关ax2 = fig.add_subplot(1,2,2)
ax2.scatter(data1, data3)
plt.grid()
# 负线性相关
多变量之间的相关性(散点图矩阵)
# 图示初判
# (2)散点图矩阵初判多变量间关系data = pd.DataFrame(np.random.randn(200,4)*100, columns = ['A','B','C','D'])
pd.plotting.scatter_matrix(data,figsize=(8,8),#注意Pandas中的用法与之前不同c = 'k',marker = '+',diagonal='hist',alpha = 0.8,range_padding=0.1)
2.Pearson相关系数
当两个变量都是正态连续变量,而且两者之间呈线性关系时,表现这两个变量之间相关程度用积差相关系数,主要有Pearson简单相关系数。
相关系数的绝对值越大,相关性越强:相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。
通常情况下通过以下取值范围判断变量的相关强度:
相关系数绝对值 :
0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
采用Pearson相关系数检验相关性时,应先检验数据是否服从正态分布:
# pearson
data1 = pd.Series(np.random.rand(100)*100).sort_values()
data2 = pd.Series(np.random.rand(100)*50).sort_values()
data = pd.DataFrame({'value1':data1.values,'value2':data2.values})
print(data.head())
print('------')
# 创建样本数据u1,u2 = data['value1'].mean(),data['value2'].mean() # 计算均值
std1,std2 = data['value1'].std(),data['value2'].std() # 计算标准差
print('value1正态性检验:\n',stats.kstest(data['value1'], 'norm', (u1, std1)))
print('value2正态性检验:\n',stats.kstest(data['value2'], 'norm', (u2, std2)))
print('------')
# 正态性检验 → pvalue >0.05
data.corr()#pearson相关系数
value1 value2
0 2.335472 0.214691
1 4.180496 0.325134
2 4.767242 0.946280
3 6.094463 2.159698
4 6.470296 2.838669
------
value1正态性检验:KstestResult(statistic=0.07415975648701445, pvalue=0.6343538050483026)
value2正态性检验:KstestResult(statistic=0.08744635124554456, pvalue=0.4091022731946044)
------
3.Spearman相关系数
Spearman相关系数又称秩相关系数,是利用两变量的秩次大小作线性相关分析,对原始变量的分布不作要求,属于非参数统计方法,适用范围要广些。斯皮尔曼等级相关是根据等级资料研究两个变量间相关关系的方法。它是依据两列成对等级的各对等级数之差来进行计算的,所以又称为“等级差数法”
斯皮尔曼等级相关对数据条件的要求没有积差相关系数严格,只要两个变量的观测值是成对的等级评定资料,或者是由连续变量观测资料转化得到的等级资料,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关来进行研究
对于服从Pearson相关系数的数据亦可计算Spearman相关系数,但统计效能要低一些。Pearson相关系数的计算公式可以完全套用 Spearman相关系数计算公式,但公式中的x和y用相应的秩次代替即可。
在实际操作中,检验非正态分布变量的相关性可直接调用spearman方法。
data = pd.DataFrame({'智商':[106,86,100,101,99,103,97,113,112,110],'每周看电视小时数':[7,0,27,50,28,29,20,12,6,17]})
print(data)
print('------')
# 创建样本数据data.corr(method='spearman')
# pandas相关性方法:data.corr(method='pearson', min_periods=1) → 直接给出数据字段的相关系数矩阵
# method默认pearson
智商 每周看电视小时数
0 106 7
1 86 0
2 100 27
3 101 50
4 99 28
5 103 29
6 97 20
7 113 12
8 112 6
9 110 17
------
智商
https://blog.csdn.net/ruthywei/article/details/82527400
数据特征分析:相关性分析(Pandas中的corr方法)相关推荐
- 数据特征分析-相关性分析
相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量的相关密切程度. 相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 相关系数在[-1,1]之间. 一.图示初判 ...
- 做数学建模不得不会的数据特征分析---相关性分析
相关性分析是分析连续变量之间的线性相关程度的强弱,我们可以通过图来初步判断,当然了比较权威的是通过Pearson相关系数(皮尔逊相关系数) / Sperman秩相关系数(斯皮尔曼相关系数)来判断 引入 ...
- R计算两列数据的相关系数_数据特征分析·相关性分析
相关性分析 相关分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个因素的的相关密切程度,相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 1. 如何利用相关系数判断数据之间 ...
- Python特征分析- 相关性分析
Python特征分析- 相关性分析 相关性分析 引入库 图示初判 变量之间的线性相关性 散点图矩阵初判多变量间关系 Pearson相关系数 创建样本数据 正态性检验 → pvalue >0.05 ...
- 用 Python 对数据进行相关性分析
在进行数据分析时,我们所用到的数据往往都不是一维的,而这些数据在分析时难度就增加了不少,因为我们需要考虑维度之间的关系.而这些维度关系的分析就需要用一些方法来进行衡量,相关性分析就是其中一种.本文就用 ...
- Python+大数据-数据处理与分析-pandas快速入门
Python+大数据-数据处理与分析-pandas快速入门 1.Pandas快速入门 1.1DataFrame和Series介绍 1)DataFrame 用来处理结构化数据(SQL数据表,Excel表 ...
- python:基金净值与龙头股收盘价 数据的相关性分析
广发消费升级股票基金净值 与 贵州茅台收盘价 数据的相关性分析: diff_corr_2.py # coding: utf-8 import os, sys from datetime import ...
- 将CSV和SQL数据加载到Pandas中
目录 介绍 从CSV加载数据 从SQLite加载数据 基本数据分析 总结 任何数据分析过程的第一步都是摄取数据集,评估数据集的清洁程度,并决定我们需要采取哪些措施来解决继承的问题. 下载CSV和数据库 ...
- R语言两个矩阵(两组)数据的相关性分析
R语言两个矩阵(两组)数据的相关性分析 vegan包及数据说明 分别计算距离矩阵 相关性分析 vegan包及数据说明 Mantel tests是确定两组距离测度矩阵(而非两组变量矩阵)之间相关性的相关 ...
最新文章
- Github 标星 11.5K!这可能是最好的 Java 博客系统
- 【 FPGA 】四位16进制的数码管动态显示设计
- 小白学python系列-(4)list
- 纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等),里面很多涉及到CSS3的一些属性。
- C++STL容器大全
- Java学习小程序(5)猜数字游戏
- 高并发服务器开源项目,百万级高并发WebRTC流媒体服务器设计与开发(示例代码)...
- python增量更新数据_Python标准库——加密
- Nonebot部署机器人常见问题
- LeetCode-两数之和(Java) 记录下刷题的第一天以及近期迷茫感受
- VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对CAD/VRML进行二次开发的简介、案例应用之详细攻略
- Android性能测试用例
- css3 和html5实例,HTML5和CSS3实例教程
- [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)
- js中如何截取小数点后两位数字
- 视 频 传 输 技 术
- 初识Linkage Mapper:从入门到实践
- COI实验室技能:MATLAB控制PCO相机
- 这样的简历,到哪里都是被淘汰的命!
- 注会是计算机考试吗,注会考试可以自带计算器么 这几点千万要注意
热门文章
- 配置uWSGI启动Django
- 【mac软件】Acorn 7.3.2 轻量图片处理软件
- 【CCAI 2016】人工智能驱动的人机交互技术挑战和应用思路
- python画图哆啦a梦大头贴_用python的turtle库画哆啦A梦大头贴
- 北京、深圳、上海三处IT
- java properties 参数_Java中Properties 类的详细使用
- Lab2_Simple Shell_xv6_2019
- 山东建筑安全员A证怎么考多选题库
- JSON.parse、JSON.stringify、jQuery.parseJSON的区别
- JS中的数据强制类型转换