Python3Numpy——相关性协方差应用
基本理论
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)
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]]
Python3Numpy——相关性协方差应用的更多相关文章
- 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理
0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...
- Python数据分析与展示[第三周](pandas数据特征分析单元8)
数据理解 基本统计 分布/累计统计 数据特征 数据挖掘 数据排序 操作索引的排序 .sort_index() 在指定轴上排序,默认升序 参数 axis=0 column ascending=True ...
- 【转载】图解NumPy
目录 1. 读写文件 2. 内建向量/矩阵 3. 切片操作 4. 聚合函数 4.1. 向量 4.2. 矩阵 5. 矩阵的转置和重构 6. 常用操作API 7. 应用实例 7.1. 生成向量.矩阵 7. ...
- 【概率论】4-6:协方差和相关性(Covariance and Correlation)
title: [概率论]4-6:协方差和相关性(Covariance and Correlation) categories: - Mathematic - Probability keywords: ...
- 【总结】matlab求两个序列的相关性
首先说说自相关和互相关的概念. 自相关 在统计学中的定义,自相关函数就是将一个有序的随机变量系列与其自身作比较.每个不存在相位差的系列,都与其都与其自身相似,即在此情况下,自相关函数值最大. 在信号 ...
- 利用GCTA工具计算复杂性状/特征(Complex Trait)的遗传相关性(genetic correlation)
如文章"Genome-wide Complex Trait Analysis(GCTA)-全基因组复杂性状分析"中介绍的GCTA,是一款基于全基因组关联分析发展的分析工具,除了计算 ...
- 相关性分析 -pearson spearman kendall相关系数
先说独立与相关的关系:对于两个随机变量,独立一定不相关,不相关不一定独立.有这么一种直观的解释(不一定非常准确):独立代表两个随机变量之间没有任何关系,而相关仅仅是指二者之间没有线性关系,所以不难推出 ...
- 《A First Course in Probability》-chaper7-期望的性质-期望的性质-协方差
在实际的问题中,我们往往想要通过已有的数据来分析判断两个事件的发生是否有相关性.当然一个角度去寻找这两个事件内在的逻辑关系,这个角度需要深究两个事件的本质,而另外一个角度就是概率论提供的简单方法:基于 ...
- 协方差cov
摘录wiki如下(红色字体是特别标注的部分): http://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE 协方差 协方差(Covariance) ...
随机推荐
- MR目录结构
D:\MRData\MR\MRS\2017-05-25\TD-LTE_MRS_ZTE_OMC1_20170425000000.zip 每个zip中包含若干FDD-LTE_MRS_OMC1_28163_ ...
- 【转】理解*(void**)
#include <stdio.h> int main() { int *p; ; unsigned ; p = &a; printf("%d\n", *p); ...
- sklearn 岭回归
可以理解的原理描述: [机器学习]岭回归(L2正则) 最小二乘法与岭回归的介绍与对比 多重共线性的解决方法之——岭回归与LASSO
- STM32F412应用开发笔记之九:移植FreeRTOS到F412ZG平台
在开发实际应用系统时,我们经常需要考虑数据的实时性和多任务,嵌入式实时操作系统的出现为实现这一目的提供了很好的助力.FreeRTOS是近年来比较流行的嵌入式实时操作系统,而且是开源免费的,STM32C ...
- (二)使用CXF开发WebService服务器端接口
CXF作为java领域主流的WebService实现框架,Java程序员有必要掌握它. CXF主页:http://cxf.apache.org/ 简介:百度百科 今天的话,主要是用CXF来开发下Web ...
- python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)
昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(f ...
- 用函数打印Hello js
<script> function sayHello() { document.write("Hello js!"); } sayHello(); </scrip ...
- spring-boot集成spring-data-jpa
参考这个就行, http://blog.csdn.net/wazz753/article/details/72472411 ps:集成过程中pom文件,我加入的内容如下,两个都需要,实体类记得加注解和 ...
- Android使用帧动画内存溢出解决方法
Android使用帧动画内存溢出解决方法https://blog.csdn.net/daitu_liang/article/details/52336015https://blog.csdn.net/ ...
- python全栈开发day29-网络编程之socket常见方法,socketserver模块,ftp作业
一.昨日内容回顾 1.arp协议含义 2.子网,子网掩码 3.两台电脑在网络中怎么通信的? 4.tcp和udp socket编码 5.tcp和udp协议的区别 6.tcp三次握手和四次挥手,syn洪攻 ...