python协方差函数_python – 如何实现numpy.cov()函数?

我有自己的协方差函数实现基于等式:

'''

Calculate the covariance coefficient between two variables.

'''

import numpy as np

X = np.array([171, 184, 210, 198, 166, 167])

Y = np.array([78, 77, 98, 110, 80, 69])

# Expected value function.

def E(X, P):

expectedValue = 0

for i in np.arange(0, np.size(X)):

expectedValue += X[i] * (P[i] / np.size(X))

return expectedValue

# Covariance coefficient function.

def covariance(X, Y):

'''

Calculate the product of the multiplication for each pair of variables

values.

'''

XY = X * Y

# Calculate the expected values for each variable and for the XY.

EX = E(X, np.ones(np.size(X)))

EY = E(Y, np.ones(np.size(Y)))

EXY = E(XY, np.ones(np.size(XY)))

# Calculate the covariance coefficient.

return EXY - (EX * EY)

# Display matrix of the covariance coefficient values.

covMatrix = np.array([[covariance(X, X), covariance(X, Y)],

[covariance(Y, X), covariance(Y, Y)]])

print("My function:", covMatrix)

# Display standard numpy.cov() covariance coefficient matrix.

print("Numpy.cov() function:", np.cov([X, Y]))

但问题是,我从我的函数和numpy.cov()得到不同的值,即:

My function: [[ 273.88888889 190.61111111]

[ 190.61111111 197.88888889]]

Numpy.cov() function: [[ 328.66666667 228.73333333]

[ 228.73333333 237.46666667]]

这是为什么?如何实现numpy.cov()函数?如果函数numpy.cov()得到很好的实现,我做错了什么?我只想说,我的函数协方差()的结果与互联网中用于计算协方差系数的纸例子的结果一致,例如http://www.naukowiec.org/wzory/statystyka/kowariancja_11.html.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值