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

衡量随机变量相关性的方法主要有三种: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. C#基础知识学习

    C#基础知识整理 学习地址:http://blog.csdn.net/column/details/csarp.html

  2. git回滚

    Git回滚的常用手法 07net01.com 发布于 4小时前 评论 传统VCS的回滚操作 对于版本控制系统VCS来说,回滚这个操作应该是个很普通也是很重要的需求. 如果你是传统VCS,比如SVN或者 ...

  3. Nginx工作原理和优化

    转自:http://blog.csdn.net/hguisu/article/details/8930668 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过 ...

  4. bold, big, blink

  5. 基于tcpdump实例讲解TCP/IP协议

    前言 虽然网络编程的socket大家很多都会操作,但是很多还是不熟悉socket编程中,底层TCP/IP协议的交互过程,本文会一个简单的客户端程序和服务端程序的交互过程,使用tcpdump抓包,实例讲 ...

  6. PAT (Basic Level) Practise:1009. 说反话

    [题目链接] 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字 ...

  7. dalvik虚拟内存管理之三——调试信息

    转载自http://www.miui.com/thread-75063-1-1.html 1. verbosegc一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息.dalv ...

  8. Educational Codeforces Round 15 C 二分

    C. Cellular Network time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  9. Python字符串分割

    代码如下: [root@localhost test]# cat 3.py #coding=utf-8 ev = """ 1evilxr 2www 3nihao 4evi ...

  10. rectangle类。java

    import java.util.Scanner; class rectangle{    int l,w;    rectangle(int lon,int wid){    l=lon;    w ...