r - 通过预定义的协方差矩阵计算逐行马氏距离
问题描述
我的数据看起来像这样:
> data.table(vara = rnorm(10), varb = rnorm(10), centa = rnorm(10), centb = rnorm(10))
vara varb centa centb
1: 1.00419673 0.69347399 1.01359426 -0.98483999
2: 0.49754529 0.93508341 -0.05607498 -0.77689024
3: -2.37846521 0.66655093 1.52329674 0.13905182
4: 0.30811512 0.07880182 -0.06553791 -1.64129333
5: -0.87033370 -0.52522052 -0.79229174 0.92361533
6: -1.02852317 0.54176228 1.17719753 -1.90073183
7: 0.50358147 1.09485983 -1.71104946 1.80488113
8: -0.77273213 0.25078481 0.42496541 0.21571760
9: 0.05100357 -0.56005040 -0.39855705 1.69918850
10: -0.34916896 0.15693242 1.30007343 -0.03628893
我想计算中心为 ( , ) 对 ( , vara
)varb
的马氏距离。协方差矩阵是预定义的。这将是一个 2x2 矩阵。我需要为每一行测量距离。centa
centb
谢谢!
解决方案
试试这个方法
library(distances)
library(dplyr)
df <- data.frame(vara = rnorm(10), varb = rnorm(10), centa = rnorm(10), centb = rnorm(10))
df_1 <- df%>%
transmute(vara_centa = vara - centa,
varb_centb = varb - centb)
distances(df_1, normalize = "mahalanobize")
自定义归一化矩阵
mcov <- matrix(c(1, 0.2, 0.2, 1), nrow = 2)
distances(df_1, normalize = mcov)
推荐阅读
- c++ - 竞争编码的问题。无向图的 BFS。获得西澳
- javascript - 在存在 HTML 的同一文件夹中创建新的 html 文件
- python - 按包含字符串值的字段排序对象
- drupal-8 - 如何将我的 BLT 项目更改添加到 GIT
- java - 如何在 Maven 中更新我的传递依赖?
- python - 在 jupyter notebook 中导入库时出现运行时警告
- asp.net - Framework7 与 Asp.Net
- android - Cordova ionic 1 Visual Studio 构建失败
- javascript - 从
使用 javascript 和 puppeteer - unity3d - 禁用 Unity 2D 对象的碰撞