python 平均值_python-协方差矩阵对角线上的方差的定义

在网上查了好久,自己写一个吧。

68e288d0e029c78e1ebd2aee75339677.png

课本上说协方差阵对角线上是各个变量的方差,然而在numpy中通过np.cov(X)得到的协方差矩阵,其对角线线上的值不是np.var()计算出来的值。根本原因在于,np.cov(X)是在数理统计背景下计算的,得到的方差是样本方差,而不是平常意义下的方差。

嗯,不准确的讲,均值、方差、协方差。在数理统计中,除了均值的计算方式不变之外,其余的两个都是除以

,而不是
。这样就可以解释出现上面问题的原因了。

两个随机变量

,现在有两个观测数据
。每个随机变量可以看作一个特征,因此有
,数据矩阵如下

样本均值的定义及python实现

数学定义

,
是随机变量
个观测值

python代码:用np.mean()函数来实现。

笔算结果:

的样本均值为
的样本均值为

python代码实现结果

#python代码
x1=np.array([1,3])
x2=np.array([2,4])
np.mean(x1)
#Out[62]: 2.0
np.mean(x2)
#Out[63]: 3.0

样本方差的定义及python实现

数学定义

是样本均值。
是随机变量
个观测值。

python代码:用np.cov()函数来实现。

笔算结果:

的样本方差为

的样本方差为

python代码实现结果

np.cov(x1)
#Out[64]: array(2.)

#np.cov(x2)
Out[65]: array(2.)

方差的定义及python实现

数学定义

是平均值。
个数。

python代码:用np.var()函数来实现。

笔算结果:

的方差为

的方差为

python代码实现结果

np.var(x1)
#Out[67]: 1.0

np.var(x2)
#Out[68]: 1.0


小结:其实给出一组数

.在学习数理统计这门课之前,一直都是采用

来计算平均值和方差的。我这里用的平均值可能会不太规范,反正我学数理统计之前都是这么理解的。

在接触到样本总体的概念之后,才发现平均值有了另外一个定义,叫做样本均值,从其蕴含的统计学意义上来讲是不一样的,但是它们俩形式上一样,计算公式也一样,可以认为

.等号左边代表这组数
.的
平均值,等号右边代表
.这
样本观测点的样本均值

从而在开发代码语言时也就不用开发两个函数了(个人理解,查了好久,都是用的np.mean()计算的均值,当然list也有自己的函数,不过结果都是一样,如果实在理解不了,就把numpy的这个函数阿看作为统计学上的样本均值开发的函数吧,把list的函数看作日常理解的那个平均值)。

之后由于无偏估计有偏估计的概念,才有了样本方差这个定义的出现,大致原因是:采用日常理解的方差形式

所定义样本方差是总体方差的有偏估计,不太好。但是人们发现如果把系数换为
,这样定义的样本方差就是总体方差的无偏估计了。(但愿这样写不会被老师看见,非得被打死)。

之所以写这么多是为了铺垫协方差矩阵的问题。

是用来计算样本各变量之间的协方差矩阵的。

这个函数必须输入一个参数,其余的都有默认值。嗯,用python还是得看源码啊。

np.cov(x)#x是一个向量是输出样本方差
a = np.array([[1, 2], [3, 4]])
#转置是因为函数把矩阵的行看作我们所熟悉的随机变量,也就是特征,把列看作观测得到的值
#会输出一个协方差矩阵
np.cov(a.T)

源码如下:

def cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None,
        aweights=None):
"""
    Estimate a covariance matrix, given data and weights.

    Covariance indicates the level to which two variables vary together.
    If we examine N-dimensional samples, :math:`X = [x_1, x_2, ... x_N]^T`,
    then the covariance matrix element :math:`C_{ij}` is the covariance of
    :math:`x_i` and :math:`x_j`. The element :math:`C_{ii}` is the variance
    of :math:`x_i`.

    See the notes for an outline of the algorithm.

    Parameters
    ----------
    m : array_like
        A 1-D or 2-D array containing multiple variables and observations.
        Each row of `m` represents a variable, and each column a single
        observation of all those variables. Also see `rowvar` below.

样本数据的协方差矩阵是下面这个图

aec17b48e75aa136ff9f6b2b37c72c79.png

上面的矩阵每一个元素的定义如下

c3e065c1c9219fc58e3a268628e6c2ed.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值