先说独立与相关的关系:对于两个随机变量,独立一定不相关,不相关不一定独立。有这么一种直观的解释(不一定非常准确):独立代表两个随机变量之间没有任何关系,而相关仅仅是指二者之间没有线性关系,所以不难推出以上结论。

衡量随机变量相关性的方法主要有三种:pearson相关系数,spearman相关系数,kendall相关系数:

1.连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman相关系数也可以,
  就是效率没有pearson相关系数高。

2.上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。

3.两个定序测量数据之间也用spearman相关系数,不能用pearson相关系数。

  1. pearson相关系数,亦即皮尔逊相关系数

pearson相关系数用来衡量两个随机变量之间的相关性,计算公式为:

  公式-1

其中cov(X,Y)也叫做X,Y的协方差,σXX的标准差,μXX的期望E(X).

因为σX=E[(X-E(X))2]=E(X2)-E(X)2,并且

  公式-2

所以公式-1可以改写为:

  公式-3

R语言中求两个随机变量pearson相关系数的函数:   

1 //赋予a,b向量值
2 a<-c(1,2,3)
3 b<-c(11,12,14)
4
5 //计算pearson相关系数
6 cor.test(a,b,method="pearson")
7 cor=0.9819805060619659

  2. spearman相关系数,亦即秩相关系数

spearman和kendall都是等级相关系数,亦即其值与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。

spearman相关系数,亦即秩相关系数,根据随机变量的等级而不是其原始值衡量相关性的一种方法。

spearman相关系数的计算可以由计算pearson系数的方法,只需要把原随机变量中的原始数据替换成其在随机变量中的等级顺序即可:

(1,10,100,101)替换成(1,2,3,4)

(21,10,15,13)替换成(4,1,3,2)

然后求替换后的两个随机变量的pearson相关系数即可.

R语言中求两个随机变量的spearman相关系数的函数:

 1 //赋予a,b向量值
 2 a<-c(1,10,100,101)
 3 b<-c(21,10,15,13)
 4
 5 //计算spearman相关系数
 6 cor.test(a,b,method="spearman")
 7 rho=-0.4
 8
 9 //用替换后的向量的pearson相关系数进行验证
10 e<-c(1,2,3,4)
11 f<-c(4,1,3,2)
12 cor.test(e,f,method="pearson")
13 cor=-0.4

  3. kendall相关系数,亦即和谐系数

kendall相关系数又称作和谐系数,也是一种等级相关系数,其计算方法如下:

对于X,Y的两对观察值Xi,Yi和Xj,Yj,如果Xi<Yi并且Xj<Yj,或者Xi>Yi并且Xj>Yj,则称这两对观察值是和谐的,否则就是不和谐的.

kendall相关系数的计算公式如下:

  公式-4

亦即,所有观察值对中(总共有0.5*n*(n-1)对),和谐的观察值对减去不和谐的观察值对的数量,除以总的观察值对数.

R语言中计算kendall相关系数的函数:

1 //赋予a,b向量值
2 a<-c(1,2,3)
3 b<-c(1,3,2)
4
5 //计算kendall相关系数
6 cor.test(a,b,method="kendall")
7 tau=0.3333333333

相关性分析 -pearson spearman kendall相关系数的更多相关文章

  1. 【转】Pearson,Spearman,Kendall相关系数的具体分析

    测量相关程度的相关系数很多,各种参数的计算方法及特点各异. 连续变量的相关指标: 此时一般用积差相关系数,又称pearson相关系数来表示其相关性的大小,积差相关系数只适用于两变量呈线性相关时.其数值 ...

  2. 三大相关系数: pearson, spearman, kendall(python示例实现)

    三大相关系数:pearson, spearman, kendall 统计学中的三大相关性系数:pearson, spearman, kendall,他们反应的都是两个变量之间变化趋势的方向以及程度,其 ...

  3. 相似性 similarity | Pearson | Spearman | p-value | 相关性 correlation | 距离 distance | distance measure

    这几个概念不能混淆,估计大部分人都没有完全搞懂这几个概念. 看下这个,非常有用:Interpret the key results for Correlation euclidean | maximu ...

  4. python数据相关性分析 (计算相关系数)

    #-*- coding: utf-8 -*- #餐饮销量数据相关性分析 计算相关系数 from __future__ import print_function import pandas as pd ...

  5. 使用R进行相关性分析

    基于R进行相关性分析 一.相关性矩阵计算: [1] 加载数据: >data = read.csv("231-6057_2016-04-05-ZX_WD_2.csv",head ...

  6. 基于R进行相关性分析--转载

    https://www.cnblogs.com/fanling999/p/5857122.html 一.相关性矩阵计算: [1] 加载数据: >data = read.csv("231 ...

  7. SPSS-两变量相关性分析

    两个变量之间存在确定性:关系和不确定关系(会存在一定的波动范围),就好比你的亲生母亲绝对只有一个,而你的亲叔叔可能有好几个(可以在1叔—4叔之间波动) 相关性一般分为   1:强正相关关系  (一个值 ...

  8. R语言做相关性分析

    衡量随机变量相关性的方法主要有三种:pearson相关系数,spearman相关系数,kendall相关系数: 1.       pearson相关系数,亦即皮尔逊相关系数 pearson相关系数用来 ...

  9. Spark MLlib基本算法【相关性分析、卡方检验、总结器】

    一.相关性分析 1.简介 计算两个系列数据之间的相关性是统计中的常见操作.在spark.ml中提供了很多算法用来计算两两的相关性.目前支持的相关性算法是Pearson和Spearman.Correla ...

随机推荐

  1. Activity与Service通信(不同进程之间)

    使用Messenger 上面的方法只能在同一个进程里才能用,如果要与另外一个进程的Service进行通信,则可以用Messenger. 其实实现IPC(Inter-Process Communicat ...

  2. HDU 4888 (网络流)

    Poroblem Redraw Beautiful Drawings (HDU4888) 题目大意 一个n行m列的矩形,只能填0~k的数字. 给定各行各列的数字和,判定有无合法的方案数.一解给出方案, ...

  3. M1: 创建UWP空项目

    本小节介绍如何在Visual Studio中创建一个UWP项目,Visual Studio中提供了快速创建各种项目的类型模板.在Visual Studio 2015中,同样提供了UWP项目模板. 学完 ...

  4. Objective-C----MRC内存管理 、 自动释放池 、 面向对象三大特性及封装 、 继承 、 组合与聚合

    1 MRC练习 1.1 问题 引用计数是Objective-C语言采用的一种内存管理技术,当一个对象被创建在堆上后,该对象的引用计数就自动设置为1,如果在其它对象中的对象成员需要持有这个对象时,则该对 ...

  5. 162. Find Peak Element

    A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...

  6. Spring中使用Jcaptcha实现校验码验证

    本文将使用Jcaptcha实现校验码验证,并演示在Spring/SpringMVC环境下的使用方法. 1. maven依赖 <dependency> <groupId>com. ...

  7. input子系统详解

    一.初识linux输入子系统 linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler).输入子系统核心层(Inpu ...

  8. AXIOM

    AXIOM是一个实现了延迟构造和拉(pull parsing)解析的轻量级的xml解析器 http://reeboo.iteye.com/blog/317391 http://reeboo.iteye ...

  9. 归并排序 空间复杂度为O(1)的做法

    #include <iostream> #include <cstdlib> using namespace std; void print(int *arr, int sta ...

  10. EXT2 文件系统

    转自:http://www.cnblogs.com/ggjucheng/archive/2012/08/22/2651641.html#ext2_filesystem 认识ext文件系统 硬盘组成与分 ...