【numpy】协方差计算

numpy中计算方差/协方差的函数 cov

公式

c o v ( X , Y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) N − 1 cov(X,Y)= \cfrac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})} {N-1} cov(X,Y)=N1i=1n(XiXˉ)(YiYˉ)

X,Y为等长的两个数组

结果为一个2X2的矩阵,

c o v ( X , Y ) = { c o v ( X , X ) c o v ( X , Y ) c o v ( Y , X ) c o v ( Y , Y ) } cov(X,Y)= \begin{Bmatrix} cov(X,X) &cov(X,Y)\\ cov(Y,X) & cov(Y,Y) \end{Bmatrix} cov(X,Y)={cov(X,X)cov(Y,X)cov(X,Y)cov(Y,Y)}

公式可以扩展为N个数组,结果为N x N的矩阵

计算

import numpy as np

T = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
S = np.array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3])
T_m = np.average(T)
S_m = np.average(S)
cov_T_T = np.sum((T-T_m)*(T-T_m))/11
cov_T_S = np.sum((T-T_m)*(S-S_m))/11
cov_S_S = np.sum((S-S_m)*(S-S_m))/11

print(cov_T_T, cov_T_S)
print(cov_T_S, cov_S_S)

X = np.vstack((T,S))

print(np.cov(X))

结果

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值