numpy 中的加权协方差矩阵

2023-12-20

我想计算协方差C of n的测量p数量,其中每个单独的数量测量都有自己的权重。也就是我的权重数组W与我的数量数组具有相同的形状Q (n by p)。当地人np.cov()函数仅支持赋予各个测量值的权重(即长度向量n).

我可以初始化一个p by p矩阵并迭代,但如果p很大,那么这是一个非常慢的过程。

Since Q已知每个数量的均值为零(Q),每个元素的显式公式C is

C[i,j] = np.sum(
    Q[:, i] * Q[:, j] * W[:, i] * W[:, j]) / np.sum(W[:, i] * W[:, j])

如果我将分子重新排列为Q[:, i] * W[:, i] * Q[:, j] * W[:, j],看来我应该能够对以下列进行乘法和求和Q * W,然后类似地计算分母(除了使用W * W).

有没有办法做到这一点np.einsum()?

为了进行测试,我们定义以下内容:

C = array([[ 1.  ,  0.1 ,  0.2 ], # set this beforehand, to test whether 
           [ 0.1 ,  0.5 ,  0.15], # we get the correct result
           [ 0.2 ,  0.15,  0.75]])

Q = array([[-0.6084634 ,  0.16656143, -1.04490324],
           [-1.51164337, -0.96403094, -2.37051952],
           [-0.32781346, -0.19616374, -1.32591578],
           [-0.88371729,  0.20877833, -0.52074272],
           [-0.67987913, -0.84458226,  0.02897935],
           [-2.01924756, -0.51877396, -0.68483981],
           [ 1.64600477,  0.67620595,  1.24559591],
           [ 0.82554885,  0.14884613, -0.15211434],
           [-0.88119527,  0.11663335, -0.31522598],
           [-0.14830668,  1.26906561, -0.49686309]])

W = array([[ 1.01133857,  0.91962164,  1.01897898],
           [ 1.09467975,  0.91191381,  0.90150961],
           [ 0.96334661,  1.00759046,  1.01638749],
           [ 1.04827001,  0.95861001,  1.01248969],
           [ 0.91572506,  1.09388218,  1.03616461],
           [ 0.9418178 ,  1.07210878,  0.90431879],
           [ 1.0093642 ,  1.00408472,  1.07570172],
           [ 0.92203074,  1.00022631,  1.09705542],
           [ 0.99775598,  0.01000000,  0.94996408],
           [ 1.02996389,  1.01224303,  1.00331465]])

您可以使用非常有效的矩阵乘法np.dot http://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html -

QW = Q*W
C = QW.T.dot(QW)/W.T.dot(W)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy 中的加权协方差矩阵 的相关文章

随机推荐

  • 流式写入Json

    我有一大套JsonObject里面有一个ArrayList 我需要添加这些JsonObject变成一个JsonArray并将其写入文件中 我在用Gson下面是我的代码 private void myWriter List
  • 如何在 cypress 中检查电子邮件验证

    我想检查输入元素的验证 我可以检查我输入的电子邮件格式是否错误或有效 像这样 cy get email signup type validateEmail var email var possible email protected cdn
  • 为什么我的网址包含“!”当使用角度时?

    我刚刚开始使用 MEAN 堆栈 并且正在关注一些 TUT 我正在使用npm views来自 Angular 并尝试重定向 htmla标记到另一个 html 文件 然而当我去localhost 3000我明白了 localhost 3000
  • 需要控件和对象之间的双向 LiveBindings

    在Delphi XE2 LiveBindings中 我需要将任何类型的VCL控件绑定到任意 非组件 对象上的任何类型的属性 我可以单向地做到这一点 但我需要双向进行 假设我想将 TPerson PersonName 字符串绑定到 TEdit
  • 在 Swift 3 上运行后台线程

    我有一个这样的函数 fileprivate func setupImageViewWithURL url URL var image UIImage nil do try image UIImage data Data contentsOf
  • 为什么我不能对通用 IEnumerable 对象调用 ToArray? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 public static T ToArray
  • 如何在部分视图中获取与父操作关联的 RouteData?

    在 PartialView 的操作中 我想知道与父操作关联的 RouteData 该部分视图是我的母版页模板的一部分 我希望它知道作为页面渲染的一部分调用的控制器和操作 在我的 PartialView 操作中 我检查RouteData Va
  • Oracle 11g - 插入多行的最有效方法

    我有一个应用程序在 WAN 上运行缓慢 我们认为原因是对表进行多次插入 我目前正在研究同时插入多行的更有效方法 我找到了这个方法 INSERT ALL INTO MULTI INSERT VAL 1 VAL 2 VALUES 100 20
  • 从 Windows 服务执行 Process.Start 时访问被拒绝

    我正在尝试以另一个用户的身份从服务运行一个进程 Process Start applicationPath params account SecureStringPassword 服务正在 本地系统 帐户下运行 The account参数是
  • SharedArrayBuffer 未定义

    我正在使用一个名为react canvas 从几天前开始 一直输出一条错误消息 p 标签应在网络浏览器 包括 Chrome 中显示画布的区域中 我在用nextjs 我附上package json below SharedArrayBuffe
  • 用于 Android 的 Google Place API 来查找城市

    我看过教程 tutorial https developers google com academy apis maps places autocomplete android 在 android i 中使用自动完成文本视图查找城市 我已经
  • 从requirements.txt安装PyTorch

    火炬文档说使用 pip install torch 1 4 0 cpu torchvision 0 5 0 cpu f https download pytorch org whl torch stable html 安装最新版本的 PyT
  • 流星会话替换?

    在最新的 Meteor 版本 版本 0 5 8 中 Session已从服务器端代码中删除 以前我用过Session储藏客户特定的服务器的变量 该功能的替代品是什么 案例示例 User One打开浏览器 User Two打开浏览器 一个调用服
  • 如何在odoo中弹出成功消息?

    我通过单击按钮发送邀请 在单击按钮并成功发送邀请后 会弹出邀请发送成功的消息 但问题是弹出消息的主标题是Odoo Server Error 那是因为我正在使用 raise osv except osv Success Invitation
  • SCNScene 和 SceneKit 编辑器的子类化

    我有带有相机设置的 SCNScene 子类 我想在所有子类中使用它 let scene01 TheSubclassScene let scene02 TheSubclassScene named art scnassets testScen
  • 点击交换课程

    我有一个包含 6 个项目的列表 这些项目位于全局 div navigationaence 中 现在我可以在单击时添加一个类 但现在它们会加起来 这意味着一旦我的六个项目被单击 它们最终都会成为当前代理类 我希望能够删除向单击的项目添加一个类
  • 在 Typescript 中使用 async/await 时未定义 __awaiter

    我在 Typescript 中有以下代码片段 nsp on connection async function socket await this emitInitialPackage nsp currentLine currentCell
  • 当 url 导致临时重定向 (http 302) 时,什么会被索引?

    我正在努力使我们的 很大程度上基于 AJAX 的 网站对搜索引擎更加友好 我们有一个系统 在设置会话变量以更改主页的行为后 某些网址会重定向到主页 这是使用 Controller Redirect 方法创建 ActionResult 来实现
  • 通过 Gremlin 计算大图中的节点/边数?

    通过 Gremlin 计算大图中的节点 边数的最简单且最有效的方法是什么 我发现最好的方法是使用 V 迭代器 gremlin gt g V gather it size 然而 对于大图来说 这不是一个可行的选择V 的文档 http grem
  • numpy 中的加权协方差矩阵

    我想计算协方差C of n的测量p数量 其中每个单独的数量测量都有自己的权重 也就是我的权重数组W与我的数量数组具有相同的形状Q n by p 当地人np cov 函数仅支持赋予各个测量值的权重 即长度向量n 我可以初始化一个p by p矩