码迷,mamicode.com
首页 > 其他好文 > 详细

numpy.cov() 协方差计算方法

时间:2020-09-08 20:42:48      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:矩阵   The   doc   output   gen   int   lin   def   reference   

公式原理

  • 对于随机变量\(X\)\(Y\),协方差\(COV(X,Y)=E(X-EX)(Y-EY)=E(XY)-EXEY\)
  • 假设选取n个样本即,对于总体\(X\)的样本即为\(X_1=[x_1,x_2,x_3,...]\),均值记为\(\bar{x}=\frac{1}{n}\sum_i{x_i}\)\(Y\)同上
  • 样本方差计算,采用总体的无偏估计量计算:\(\frac{1}{n-1}\sum_{i=1}^n{(x_i-\bar{x})^2}\)
  • 协方差矩阵\(COV([Z_1,Z_2])=\left[ \begin{matrix} COV(Z_1,Z_1) &COV(Z_1,Z_2)&\\COV(Z_2,Z_1)&COV(Z_2,Z_2)\end{matrix} \right]\)

numpy中的cov方法

  • 重要参数:rawvar(True,default),即numpy的cov方法中默认一个矩阵中,行为一个随机变量,列为其观测值(即样本\(s\)),即:
\(s_1\) \(s_2\)
X
Y

实例:

import numpy as np
a=[1,2,3]
b=[5,5,6]
z=np.stack((a,b))
np.cov(z)
#即:
#[cov(a,a),cov(a,b)]
#[cov(b,a),cov(b,b)]
#output:
#      array([[1.        , 0.5       ],
#             [0.5       , 0.33333333]])

代码:

def cov(x,y):# x为向量,即观测值(样本)向量
    n=len(x)
    x_bar=np.mean(x)
    y_bar=np.mean(y)
    var=np.sum((x-x_bar)*(y-y_bar))/(n-1)
    return var
print(cov(a,a),cov(a,b),cov(bb))
#output:
#      1.0 0.5 0.33333333333333337

numpy.cov() 协方差计算方法

标签:矩阵   The   doc   output   gen   int   lin   def   reference   

原文地址:https://www.cnblogs.com/practitioners/p/13576905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!