基本理论

Correlation

Are there correlations between variables?

Correlation measures the strength of the linear association between two numerical variables. For example, you could imagine that for children, age correlates with height: the older the child, the taller he or she is. You could reasonably expect to get a straight line or upward curve with a positive slope when you plot age against height.

定义

生物是一个有机的整体,其各个组成部分都是相关联的,我们可以通过研究一个生物的牙齿、爪子或者骨骼来复原这个生物。

协方差:

定义:

对于离散型随机变量:

对于连续性随机变量:

协方差化简:

当X与Y独立时, 有Cov(X, Y) = 0

协方差基本性质:

随机变量和的方差与协方差的关系:

D(X +/- Y) = D(X) + D(Y) +/- 2Cov(X, Y)

协方差的有界性

相关系数:

定义

Python3NumPy关于相关性协方差阐述

导入相关模块

import numpy as np
from matplotlib.pyplot import plot
from matplotlib.pyplot import show
import matplotlib.pyplot as plt

导入数据

bhp = np.loadtxt('BHP.csv', delimiter=',', usecols=(6,), unpack=True)

数据BHP.csv文件如下:

BHP

11-02-2011

 

93.11

94.26

92.9

93.72

1741900

BHP

14-02-2011

 

94.57

96.23

94.39

95.64

2620800

BHP

15-02-2011

 

94.45

95.47

93.91

94.56

2461300

BHP

16-02-2011

 

92.67

93.58

92.56

93.3

3270900

BHP

17-02-2011

 

92.65

93.98

92.58

93.93

2650200

BHP

18-02-2011

 

92.34

93

92

92.39

4667300

BHP

22-02-2011

 

93.14

93.98

91.75

92.11

5359800

BHP

23-02-2011

 

91.93

92.46

91.05

92.36

7768400

BHP

24-02-2011

 

92.42

92.71

90.93

91.76

4799100

BHP

25-02-2011

 

93.48

94.04

92.44

93.91

3448300

BHP

28-02-2011

 

94.81

95.11

94.1

94.6

4719800

BHP

01-03-2011

 

95.05

95.2

93.13

93.27

3898900

BHP

02-03-2011

 

93.89

94.89

93.54

94.43

3727700

BHP

03-03-2011

 

95.9

96.11

95.18

96.02

3379400

BHP

04-03-2011

 

96.12

96.44

95.08

95.76

2463900

BHP

07-03-2011

 

96.51

96.66

94.03

94.47

3590900

BHP

08-03-2011

 

93.72

94.47

92.9

94.34

3805000

BHP

09-03-2011

 

92.94

93.13

91.86

92.22

3271700

BHP

10-03-2011

 

89

89.17

87.93

88.31

5507800

BHP

11-03-2011

 

88.24

89.8

88.16

89.59

2996800

BHP

14-03-2011

 

88.17

89.06

87.82

89.02

3434800

BHP

15-03-2011

 

84.58

87.32

84.35

86.95

5008300

BHP

16-03-2011

 

86.31

87.28

83.85

84.88

7809799

BHP

17-03-2011

 

87.32

88.29

86.89

87.38

3947100

BHP

18-03-2011

 

89.53

89.58

88.05

88.56

3809700

BHP

21-03-2011

 

90.13

90.16

88.88

89.59

3098200

BHP

22-03-2011

 

89.5

89.59

88.42

88.71

3500200

BHP

23-03-2011

 

89.57

90.32

88.85

90.02

4285600

BHP

24-03-2011

 

90.86

91.35

89.7

91.26

3918800

BHP

25-03-2011

 

90.42

91.09

90.07

90.67

3632200

vale = np.loadtxt('VALE.csv', delimiter=',', usecols=(6,), unpack=True)

数据VALE.csv文件如下:

VALE

11-02-2011

33.88

34.54

33.63

34.37

18433500

VALE

14-02-2011

34.53

35.29

34.52

35.13

20780700

VALE

15-02-2011

34.89

35.31

34.82

35.14

17756700

VALE

16-02-2011

35.16

35.4

34.81

35.31

16792800

VALE

17-02-2011

35.18

35.6

35.04

35.57

24088300

VALE

18-02-2011

35.31

35.37

34.89

35.03

21286600

VALE

22-02-2011

33.94

34.57

33.36

33.44

28364700

VALE

23-02-2011

33.43

34.12

33.1

33.94

22559300

VALE

24-02-2011

34.3

34.3

33.56

34.21

20591900

VALE

25-02-2011

34.67

34.95

34.05

34.27

20151500

VALE

28-02-2011

34.34

34.51

33.7

34.23

16126000

VALE

01-03-2011

34.39

34.44

33.68

33.76

17282400

VALE

02-03-2011

33.61

34.5

33.57

34.32

15870900

VALE

03-03-2011

34.77

34.89

34.53

34.87

14648200

VALE

04-03-2011

34.67

34.83

34.04

34.5

15330800

VALE

07-03-2011

34.43

34.53

32.97

33.23

25040500

VALE

08-03-2011

33.22

33.7

32.55

33.29

17093000

VALE

09-03-2011

33.23

33.44

32.68

32.88

20026300

VALE

10-03-2011

32.17

32.4

31.68

31.91

30803900

VALE

11-03-2011

31.53

32.42

31.49

32.17

24429900

VALE

14-03-2011

32.03

32.45

31.74

32.44

15525500

VALE

15-03-2011

30.99

31.93

30.79

31.91

24767700

VALE

16-03-2011

31.99

32.03

30.68

31.04

30394153

VALE

17-03-2011

31.44

31.82

31.32

31.51

24035000

VALE

18-03-2011

32.17

32.39

31.98

32.14

19740600

VALE

21-03-2011

32.81

32.85

32.26

32.42

18923700

VALE

22-03-2011

32.13

32.32

31.74

32.25

18934200

VALE

23-03-2011

32.39

32.91

32.22

32.7

18359900

VALE

24-03-2011

32.82

32.94

32.12

32.36

25894100

VALE

25-03-2011

32.26

32.74

31.93

32.34

16688900

数据处理:

bhp_returns = np.diff(bhp) / bhp[:-1]
vale_returns = np.diff(vale) / vale[:-1]

计算bhp_returns和vale_returns的协方差

covariance = np.cov(bhp_returns, vale_returns)
print(covariance)

结果:

[[0.00028179 0.00019766]
[0.00019766 0.00030123]]

取协方差对角线上的元素:

print(covariance.diagonal())

结果:

[0.00028179 0.00030123]

打印协方差矩阵的迹:

print(covariance.trace())

结果:

0.000583023549920278

计算bhp_returns和vale_returns的相关系数:

print(covariance/((bhp_returns.std()*vale_returns.std())))

结果:

[[1.00173366 0.70264666]
[0.70264666 1.0708476 ]]
print(np.corrcoef(bhp_returns, vale_returns))

结果:

[[1.         0.67841747]
[0.67841747 1. ]]

绘bhp_returns和vale_returns的图像:

t = np.arange(len(bhp_returns))
plot(t, bhp_returns, lw = 1)
plot(t, vale_returns,lw =2)
show()

结果:

相关知识点理解

np.diff(a, n=1, axis=-1)

沿着指定轴计算第N维的离散差值 
参数: 
a:输入矩阵 
n:可选,代表要执行几次差值 
axis:默认是最后一个 
示例:
import numpy as np
A = np.arange(2 , 14).reshape((3 , 4))
A[1 , 1] = 8
print('A:' , A)
# A: [[ 2 3 4 5]
# [ 6 8 8 9]
# [10 11 12 13]]
print(np.diff(A))
# [[1 1 1]
# [2 0 1]
# [1 1 1]]
从输出结果可以看出,其实diff函数就是执行的是后一个元素减去前一个元素

Python3Numpy——相关性协方差应用的更多相关文章

  1. 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理

    0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...

  2. Python数据分析与展示[第三周](pandas数据特征分析单元8)

    数据理解 基本统计 分布/累计统计 数据特征 数据挖掘 数据排序 操作索引的排序 .sort_index() 在指定轴上排序,默认升序 参数 axis=0 column ascending=True ...

  3. 【转载】图解NumPy

    目录 1. 读写文件 2. 内建向量/矩阵 3. 切片操作 4. 聚合函数 4.1. 向量 4.2. 矩阵 5. 矩阵的转置和重构 6. 常用操作API 7. 应用实例 7.1. 生成向量.矩阵 7. ...

  4. 【概率论】4-6:协方差和相关性(Covariance and Correlation)

    title: [概率论]4-6:协方差和相关性(Covariance and Correlation) categories: - Mathematic - Probability keywords: ...

  5. 【总结】matlab求两个序列的相关性

    首先说说自相关和互相关的概念.  自相关 在统计学中的定义,自相关函数就是将一个有序的随机变量系列与其自身作比较.每个不存在相位差的系列,都与其都与其自身相似,即在此情况下,自相关函数值最大. 在信号 ...

  6. 利用GCTA工具计算复杂性状/特征(Complex Trait)的遗传相关性(genetic correlation)

    如文章"Genome-wide Complex Trait Analysis(GCTA)-全基因组复杂性状分析"中介绍的GCTA,是一款基于全基因组关联分析发展的分析工具,除了计算 ...

  7. 相关性分析 -pearson spearman kendall相关系数

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

  8. 《A First Course in Probability》-chaper7-期望的性质-期望的性质-协方差

    在实际的问题中,我们往往想要通过已有的数据来分析判断两个事件的发生是否有相关性.当然一个角度去寻找这两个事件内在的逻辑关系,这个角度需要深究两个事件的本质,而另外一个角度就是概率论提供的简单方法:基于 ...

  9. 协方差cov

    摘录wiki如下(红色字体是特别标注的部分): http://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE 协方差 协方差(Covariance) ...

随机推荐

  1. 【windows核心编程】双机调试操作

    1.1 中断与异常 计算机最重要的任务就是执行指令,只要你设置一个起始位置,他就会一条指令的执行下去.而中断和异常机制是为了防止计算机无休止地执行任意指令,出现错误时可以引导处理器转向正常控制流而诞生 ...

  2. ARMV8 datasheet学习笔记3:AArch64应用级体系结构

    1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...

  3. Linux内存管理--物理内存分配【转】

    转自:http://blog.csdn.net/myarrow/article/details/8682819 1. First Fit分配器 First Fit分配器是最基本的内存分配器,它使用bi ...

  4. @PathVariable和@RequestParam

    @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariabl ...

  5. MariaDB基于GTID主从复制及多主复制

    一.简单主从模式配置步骤(必须要mysql5.6,此处以maridb10.0.10为例) 1.配置主从节点的服务配置文件 # vim /etc/my.cnf 1.1.配置master节点: [mysq ...

  6. Tomcat:在centos中做成自启动服务

    # 创建一个启动脚本文件,脚本内容见下 vi /etc/init.d/tomcat #!/bin/bash # /etc/rc.d/init.d/tomcat # init script for to ...

  7. 通过Cookie跳过登录验证码【限cookie不失效有用】

    验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢? 方法还是有的,先说今天这种方式,通过cookie绕过登录验证码 思路: 需要你通过抓包工具抓到你登录的cookie 接下来开始 ...

  8. Mac 安装 JDK

    1.访问Oracle官网 http://www.oracle.com,下载 JDK 2.安装JDK 解压 1 中下载的压缩包,在Finder下载目录中双击安装. 或者命令行安装,详见:http://w ...

  9. TCP/IP、Http大纲

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据.关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只 ...

  10. Route pattern cannot reference variable name more than once

    在用 Laravel Backpack 写一个定制化的 CRUD 页面.例如,一个指定店铺所拥有的商品的 CRUD 页面. 起初路由我是这样写的 CRUD::resource('products-of ...