python算协方差_使用Python计算方差协方差相关系数
使用Python计算方差,协方差和相关系数
[TOC]
数学定义
期望
设随机变量\(X\)只取有限个可能值\(a_i (i=0, 1, ..., m)\),其概率分布为\(P (X = a_i) = p_i\). 则\(X\)的数学期望,记为\(E(X)\)或\(EX\),定义为:
\[E(X) = \sum\limits_ia_ip_i\]
方差
设\(X\)为随机变量,分布为\(F\),则
\[Var(X) = E(X-EX)^2 \]
称为\(X\)(或分布\(F\))的方差,其平方根\(\sqrt{Var(X)}\)称为\(X\)(或分布\(F\))的标准差.
方差和标准差是刻画随机变量在其中心位置附近散布程度的数字特征。
注意:样本方差和总体方差的区别
统计学上对于样本方差的无偏估计使用如下公式计算:
\[s^2 = \frac{1}{n-1} \sum\limits_{i=1}^n(x_i -\bar{x})^2 \]
前面有一个系数\(\frac{1}{n-1}\),当时当样本数量很大的时候,\(\frac{n}{n-1}\)近似为1,可以直接使用总体方差公式进行计算。
协方差
协方差用来刻画两个随机变量\(X, Y\)之间的相关性,定义为
\[Cov(X, Y) = E[(X - EX)(Y-EY)]\]
如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高
相关系数
相关系数可以理解为标准化以后的协方差,设\(X\)的标准差为\(\sigma_x\),\(Y\)的标准差为\(\sigma_y\)定义为
\[\rho = \frac{Cov(X, Y)}{\sigma_x\sigma_y}\]
相关系数消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度
协方差矩阵
协方差只能表示两个随机变量的相关程度(二维问题),对于大于二维的随机变量,可以使用协方差矩阵表示.
协方差矩阵的每一个值就是对应下标的两个随机变量的协方差
对于三维协方差矩阵,\(C=\begin{bmatrix}Cov(X, X) & Cov(X, Y) & Cov(X, Z) \\ Cov(Y, X) & Cov(Y, Y) & Cov(X, Y) \\ Cov(Z, X) & Cov(Z, Y) & Cov(Z, Z)\end{bmatrix}\)
使用NumPy包计算
import numpy as np
# 随机生成两个样本
x = np.random.randint(0, 9, 1000)
y = np.random.randint(0, 9, 1000)
# 计算平均值
mx = x.mean()
my = y.mean()
# 计算标准差
stdx = x.std()
stdy = y.std()
# 计算协方差矩阵
covxy = np.cov(x, y)
print(covxy)
# 我们可以手动进行验证
# covx等于covxy[0, 0], covy等于covxy[1, 1]
# 我们这里的计算结果应该是约等于,因为我们在计算的时候是使用的总体方差(总体方差和样本方差是稍微有点区别的)
covx = np.mean((x - x.mean()) ** 2)
covy = np.mean((y - y.mean()) ** 2)
print(covx)
print(covy)
# 这里计算的covxy等于上面的covxy[0, 1]和covxy[1, 0],三者相等
covxy = np.mean((x - x.mean()) * (y - y.mean()))
print(covxy)
# 下面计算的是相关系数矩阵(和上面的协方差矩阵是类似的)
coefxy = np.corrcoef(x, y)
print(coefxy)
一组可能的输出结果:
[[6.83907508 0.10925926]
[0.10925926 6.53390891]]
6.832236
6.527375
0.10914999999999989
[[1. 0.01634455]
[0.01634455 1. ]]
python算协方差_使用Python计算方差协方差相关系数相关推荐
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python怎么算积分_利用python求积分的实例
利用python求积分的实例 python的numpy库集成了很多的函数.利用其中的函数可以很方便的解决一些数学问题.本篇介绍如何使用python的numpy来求解积分. 代码如下: # -*- co ...
- 机械专业与python的联系_使用python进行机械设计计算
分析 这一过程的核心在于机械设计,python的编程的用途有两个 1.当作计算器,缺点在于没有casio计算器那样的自然显示,优点在于可以反复调用,使用lambda函数简化运算 2.当设计需要修改时, ...
- python 免费空间_用python做大数据
不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...
- python实现案例_基于Python实现相关分析案例
节选自<Python预测之美:数据分析与算法实战>. 相关关系是一种非确定的关系,就好像身高与体重的关系一样,它们之间不能用一个固定的函数关系来表示.而相关分析就是研究这种随机变量间相关关 ...
- python集群_使用Python集群文档
python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...
- python机器学习预测_使用Python和机器学习预测未来的股市趋势
python机器学习预测 Note from Towards Data Science's editors: While we allow independent authors to publish ...
- python读取枚举_在python中枚举(enumerate in python)
在python中枚举(enumerate in python) 说, term='asdf'; InvertedIndex = {}; InvertedIndex[term] = [1,2,2,2,4 ...
最新文章
- 世界杯规则终因IT而改变
- POJ 1422 Air Raid
- Java文档阅读笔记-EJB Tutorial
- 95-50-060-java.nio.channels-NIO-NIO之Selector(选择器)
- Hadoop生态圈-Flume的组件之sink处理器
- 在机器学习、大数据等领域工作,该学Hadoop还是Spark?
- Linq 2 DataSet
- angularjs基础知识1
- word2016+endnoteX7的安装与配置
- 如何在家优雅地使用 Sci-Hub 免费下载外文文献
- win7右键没有新建文本文档怎么办
- Golang工程师历年企业笔试真题汇总
- Android自定义实现九宫格抽奖功能
- [七夕节]——一款基于canvas绘制五颜六色线条合成一个爱心发光动画特效
- docker-redis
- Codeforces 1287C Garland
- python--生成随机数
- 实战 | 用Python和MediaPipe搭建一个嗜睡检测系统 (详细步骤 + 源码)
- window android sd卡,如何修复在Windows/Android设备中不能被识别的Micro SD卡?
- 动效之文字滚动5个代码
热门文章
- 二项式定理的各种证明
- 挖坑了挖坑了,走过路过不要错过 。。。
- c语言产生32位随机数,C语言,如何产生随机数
- 银行c语言笔试题目,中国人民银行招聘考试模拟题-计算机专业知识(六)
- PostgreSQL中的索引—5(GiST)上
- 日语学习,从入门到入坑---促音和拗音
- linux命令怎么退出编辑器,LINUX怎么样退出VI编辑器虚拟机不知道怎么..._网络编辑_帮考网...
- RNA 29. SCI文章中基于TCGA的免疫浸润细胞分析 (TIMER2.0)
- 【高等工程数学】南理工研究生课程 突击笔记3 不变因子与Jordan标准型
- 2023软件测试金三银四常见的软件测试面试题-【测试理论篇】