问题标签 [mahalanobis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1168 浏览

r - 与 R 中的马氏距离的最近邻匹配

我想使用 R 中的 MatchIt 包使用一些卡尺使用马氏距离执行最近邻匹配。matchit我应该使用与马氏距离相关的函数的以下两个参数中的哪一个:

  1. 参数,distance="mahalanobis"
  2. mahvars参数(例如,mahvars = c("X1", "X2")

两者有什么区别?

文档对此很简洁(参见第 16 和 19 页):https ://imai.fas.harvard.edu/research/files/matchit.pdf 。

0 投票
1 回答
367 浏览

r - 具有多个观测值、变量和组的马氏距离

对于iris数据集,我试图找到每对物种之间的马氏距离。我尝试了以下但没有运气。我尝试了以下方法:

但收到错误消息

pairwise.mahalanobis(x = variables, grouping = group) 中的错误:nrow(x) 和 length(grouping) 不同

0 投票
0 回答
37 浏览

statistics - 空值的马氏距离

我的输入数据框是;

让我们将列视为客户的贷款支付天数。在数据中,所有客户都至少有一次 Default 值,因此所有客户都具有 Default1 值。但是,客户可能没有任何其他信用,因此他们可能在其他默认列中没有值。

我想确定此数据中的马氏距离和异常值。你觉得我应该怎么做?

0 投票
1 回答
765 浏览

r - 在 MatchIt 包中使用 Mahalonobis 距离和卡尺

首先:这个问题可能是这个stackoverflow帖子的重复/已经解决的问题。

我想使用该MatchIt包使用马氏距离在我的数据集中执行完全阻塞匹配。我有两个要用于匹配的观察到的协变量(年龄和性别)。

我知道我可以使用以下参数执行基于 mahalanobis 的匹配:

但这仅使用最近邻执行基于马氏的匹配。如果我想更严格怎么办?是否可以在马氏匹配中引入卡尺?想法如下:对于少数群体中的每个单元,在多数群体中找到一个马氏距离最小且位于定义的 caliper 内的单元。如果多数群体中没有单位,则应丢弃少数群体中的相应单位。

结果应该是大小相等的治疗组和对照组,其中包含在各自协变量中接近的单位对。“接近度”应该可以通过卡尺设置的严格程度来控制。更严格的卡尺会导致更多的少数群体被丢弃。

也许我对基于 mahalanobis 的匹配过程也有错误的理解,但是否可以(并推荐)这样做MatchIt

0 投票
1 回答
1579 浏览

pytorch - 如何在pytorch中计算马氏距离?

计算马氏距离的最有效方法是什么:在pytorch中?

在此处输入图像描述

0 投票
1 回答
101 浏览

r - 用 Mahalanobis 处理奇异矩阵

我有一个组数据框,我想为其计算每个组的马氏距离。

我正在尝试将 Mahalanobis 函数应用于数百个组,并且一个特定的组由于样本量小(只有两行)而导致问题。

我的数据如下所示:

我从这里借用了一个函数的想法,它看起来如下:

根据此处的建议,我将tol参数添加到auto.mahalanobis函数中,以避免在计算小数的协方差矩阵时出现问题。

然后我尝试将此函数与我的数据集一起使用,并收到以下关于奇异矩阵的错误:

相同的功能适用于具有较大样本量的其他组,是否有建议的方法来解决此问题或在样本太小时跳过此类组?

0 投票
1 回答
365 浏览

python - Python Mahalanobis 距离多维 z 分数

我想要一个已知固定点周围二维数据的性能得分,例如 z 得分。我想我现在想要马氏距离,而不是每个方向的 z 分数。但是我没有两个向量,我有一个 2 x N 数组,其中包含 xy 中 N 个点的位置,还有一个我想与之比较的固定 2D 点。我看了这个例子:

用于在 Python 中计算,但我不知道我的 iv 应该是什么。我是否只是提出我的已知观点,例如:

? 谢谢

0 投票
0 回答
120 浏览

r - 如何找到两个以上组的马氏距离

我正在尝试使用马氏距离进行聚类。我有五个组,其中包含三个变量:

第一组:

第 2 组:

第 3 组:

第 4 组:

第 5 组:

我按照https://people.revoledu.com/kardi/tutorial/Similarity/MahalanobisDistance.html上提供的步骤进行操作

这是我所做的:

我计算每个组的平均值。然后我通过在他们的组中找到的平均值减去所有点值来使数据居中。

然后,我使用居中的数据矩阵计算每个组的协方差矩阵。然后我得到合并的协方差矩阵,然后得到合并的协方差矩阵及其逆矩阵的转置矩阵。

这是我卡住的地方:

在示例中,计算了两个组的平均差。但是,由于我有五组,我如何计算平均差?

此外,在找到 MD 后,我将它与什么进行比较以继续聚类过程。

我想提一下,我不是在寻找代码,而是在寻找关于如何手动使用 MD 进行聚类的实际解释。

谢谢。

0 投票
1 回答
70 浏览

r - MatchIt 与 lapply() 结合:eval 中的错误(object$call$data,envir = env):找不到对象“x”

所以我的情况如下:我有一个大数据框,其中包含我应该在匹配分析中使用的数据。但是,我应该匹配由某些区域定义的子组内部。因为我不想为每个子组(太多)“手动”执行此操作,所以我想出了一种方法,将初始数据帧划分为包含每个独特处理区域和控制区域信息的子数据帧,并且将这些数据帧保存到列表中。在此之后,我使用 R 的 MatchIt 包中的 matchit 函数对列表中的数据帧进行了匹配。这是数据框列表外观的高度简化示例:

在真实数据中,我有七个协变量,其中两个使用精确方法匹配。

这里用于匹配结合 matchit(马氏距离)和 lapply 的代码:

在上面的代码中,一切正常。但是,当我尝试提取匹配的数据集时,出现错误:

eval 中的错误(object$call$data,envir = env):找不到对象“x”

这里最奇怪的是,我使用相同的方法对同一数据集中的卡尺进行最近邻倾向得分匹配,并且没有出现错误。该错误显然与使用 x 作为 lapply 中每个 df 的名称来定义函数有关,但我无法提出解决方案(以另一种方式循环遍历这些区域或以不同方式定义 lapply 中的 x) . 有什么建议么?

很抱歉我没有提供任何数据。生成一个真实的数据集会很复杂,我不能分享原始数据。如果绝对有必要,我可以尝试提出某种虚拟数据集。

0 投票
1 回答
118 浏览

matching - MatchIt - 如何指定匹配日期?

我正在尝试使用 MatchIt 创建两组匹配的投资公司(治疗与控制)。

我需要仅使用进行治疗的 1-3 年的数据将治疗公司与对照公司进行匹配。

例如,如果一家公司在 2009 年接受治疗,那么我想使用 2009 年、2008 年、2007 年的数据来匹配它(在这种情况下,我的治疗后效果假人将保持 2010 年以后的值)

我不确定如何将此选择添加到我的匹配代码中,目前看起来像这样:

matchit(签字人~totalUSD + brownUSD + 国家 + 策略,data = panel6,method = "full")

我应该考虑以某种方式使用“后”治疗效果假人吗?

任何关于我如何添加它的提示将不胜感激!