【算法 】两组随机变量协方差矩阵 矩阵的特征值与特征向量

算法程序下载:

地址

摘要

  对于两个矩阵x=(5,10),y=(10,10)的矩阵计算。众所周知协方差矩阵在相关性计算中起到重要的而作用。本文通过python 计算两个矩阵的协方差矩阵,并且进行分析。

1 项目介绍

  
协方差矩阵是一种用于描述两个随机变量之间相关性的矩阵。它是一个对称矩阵,其中每个元素都表示两个随机变量在该维度上的协方差。协方差矩阵的大小与随机变量的数量相关,对于一个二维随机变量,协方差矩阵的大小为2x2。

协方差矩阵的计算公式如下:

C = [cov(X,Y)] = E[(X-E(X))(Y-E(Y))]

其中,cov(X,Y)表示X和Y之间的协方差,E(X)和E(Y)分别表示X和Y的期望值,[(X-E(X))(Y-E(Y))]表示X和Y之间的协方差向量。

协方差矩阵的应用非常广泛,例如在股票市场中,我们可以通过计算不同股票之间的协方差矩阵来判断它们之间的相关性,从而选择更具有投资价值的股票。在机器学习中,协方差矩阵也被广泛用于特征提取和数据降维等领域。

2 关于协方差矩阵维度

  协方差矩阵的维度取决于您正在研究的变量的数量。如果您正在研究两个变量,则协方差矩阵的维度为2x2。如果您正在研究三个变量,则协方差矩阵的维度为3x3,以此类推。在计算协方差矩阵时,您需要提供每个变量的观测值。因此,协方差矩阵的维度将取决于您提供的观测值的数量和变量的数量。如果您提供了多个观测值,则协方差矩阵的维度将增加,因为它将包含每个变量的方差和每个变量之间的协方差。,

2.1CCA算法

  典型相关分析(CCA)算法是一种多元统计分析方法,使用到了协方差矩阵的运算

2.2矩阵的特征计算

  numpy具有计算特征值与特征向量的功能

3数据获取

 随机产生两个维度固定的矩阵进行计算。

4结果

4.1代码

import numpy as np

#1.计算协方差矩阵两个矩阵的协方差
#2.输出协方差矩阵的特征值和特征向量
#3.输出协方差矩阵输入的维度和输出的维度
class calmatrix:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.cov = np.cov(x, y)
        self.eigvalue, self.eigvector = np.linalg.eig(self.cov)
        self.input_dimx = x.shape

        self.input_dimy = y.shape
        self.convshape = self.cov.shape

    def get_cov(self):
        return self.cov

    def get_eigvalue(self):
        return self.eigvalue

    def get_eigvector(self):
        return self.eigvector

    def get_input_dim(self):


        return self.input_dimx,self.input_dimy

    def get_output_dim(self):
        return self.convshape
# 测试calmatrix类新建两个随机矩阵,大小为
# 100*10100*5,计算协方差矩阵,输出特征值和特征向量
if __name__ == '__main__':
    x = np.random.random((5, 10))
    y = np.random.random((10,10))
    cal = calmatrix(x, y)
    print(cal.get_cov())
    print(cal.get_eigvalue())
    print(cal.get_eigvector())
    print(cal.get_input_dim())
    print(cal.get_output_dim())

5结论

  

[ 3.37782740e-01+0.00000000e+00j  2.86632503e-01+0.00000000e+00j
  1.94376284e-01+0.00000000e+00j  1.74232077e-01+0.00000000e+00j
  1.20085726e-01+0.00000000e+00j  7.85530052e-02+0.00000000e+00j
  5.48480029e-02+0.00000000e+00j  2.82915695e-02+0.00000000e+00j
  1.06494535e-02+0.00000000e+00j -2.12004664e-17+5.27260708e-18j
 -2.12004664e-17-5.27260708e-18j -8.99538618e-18+1.43967442e-17j
 -8.99538618e-18-1.43967442e-17j  1.66067526e-17+0.00000000e+00j
  7.10734713e-18+0.00000000e+00j]
((5, 10), (10, 10))
(15, 15)

  输入矩阵是,5变量,10个样本与10变量10样本之间的协方差矩阵,结果计算出来是一个15,15的矩阵。我们可以将其分块。那么协方差矩阵就是:cov11,cov12,cov21,cov22.的计算结果拼接。实际对角线上是自相关矩阵,其特征值为1。所以得到的两个变量之间的矩阵是cov12.
即矩阵中ouput[0:5,5:15]的位置矩阵表示,x变量和y变量之间的协方差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高山仰止景

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值