问题标签 [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.
r - 与 R 中的马氏距离的最近邻匹配
我想使用 R 中的 MatchIt 包使用一些卡尺使用马氏距离执行最近邻匹配。matchit
我应该使用与马氏距离相关的函数的以下两个参数中的哪一个:
- 参数,
distance="mahalanobis"
或 mahvars
参数(例如,mahvars = c("X1", "X2")
?
两者有什么区别?
文档对此很简洁(参见第 16 和 19 页):https ://imai.fas.harvard.edu/research/files/matchit.pdf 。
r - 具有多个观测值、变量和组的马氏距离
对于iris
数据集,我试图找到每对物种之间的马氏距离。我尝试了以下但没有运气。我尝试了以下方法:
但收到错误消息
pairwise.mahalanobis(x = variables, grouping = group) 中的错误:nrow(x) 和 length(grouping) 不同
statistics - 空值的马氏距离
我的输入数据框是;
让我们将列视为客户的贷款支付天数。在数据中,所有客户都至少有一次 Default 值,因此所有客户都具有 Default1 值。但是,客户可能没有任何其他信用,因此他们可能在其他默认列中没有值。
我想确定此数据中的马氏距离和异常值。你觉得我应该怎么做?
r - 在 MatchIt 包中使用 Mahalonobis 距离和卡尺
首先:这个问题可能是这个stackoverflow帖子的重复/已经解决的问题。
我想使用该MatchIt
包使用马氏距离在我的数据集中执行完全阻塞匹配。我有两个要用于匹配的观察到的协变量(年龄和性别)。
我知道我可以使用以下参数执行基于 mahalanobis 的匹配:
但这仅使用最近邻执行基于马氏的匹配。如果我想更严格怎么办?是否可以在马氏匹配中引入卡尺?想法如下:对于少数群体中的每个单元,在多数群体中找到一个马氏距离最小且位于定义的 caliper 内的单元。如果多数群体中没有单位,则应丢弃少数群体中的相应单位。
结果应该是大小相等的治疗组和对照组,其中包含在各自协变量中接近的单位对。“接近度”应该可以通过卡尺设置的严格程度来控制。更严格的卡尺会导致更多的少数群体被丢弃。
也许我对基于 mahalanobis 的匹配过程也有错误的理解,但是否可以(并推荐)这样做MatchIt
?
python - Python Mahalanobis 距离多维 z 分数
我想要一个已知固定点周围二维数据的性能得分,例如 z 得分。我想我现在想要马氏距离,而不是每个方向的 z 分数。但是我没有两个向量,我有一个 2 x N 数组,其中包含 xy 中 N 个点的位置,还有一个我想与之比较的固定 2D 点。我看了这个例子:
用于在 Python 中计算,但我不知道我的 iv 应该是什么。我是否只是提出我的已知观点,例如:
? 谢谢
r - 如何找到两个以上组的马氏距离
我正在尝试使用马氏距离进行聚类。我有五个组,其中包含三个变量:
第一组:
第 2 组:
第 3 组:
第 4 组:
第 5 组:
我按照https://people.revoledu.com/kardi/tutorial/Similarity/MahalanobisDistance.html上提供的步骤进行操作
这是我所做的:
我计算每个组的平均值。然后我通过在他们的组中找到的平均值减去所有点值来使数据居中。
然后,我使用居中的数据矩阵计算每个组的协方差矩阵。然后我得到合并的协方差矩阵,然后得到合并的协方差矩阵及其逆矩阵的转置矩阵。
这是我卡住的地方:
在示例中,计算了两个组的平均差。但是,由于我有五组,我如何计算平均差?
此外,在找到 MD 后,我将它与什么进行比较以继续聚类过程。
我想提一下,我不是在寻找代码,而是在寻找关于如何手动使用 MD 进行聚类的实际解释。
谢谢。
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) . 有什么建议么?
很抱歉我没有提供任何数据。生成一个真实的数据集会很复杂,我不能分享原始数据。如果绝对有必要,我可以尝试提出某种虚拟数据集。
matching - MatchIt - 如何指定匹配日期?
我正在尝试使用 MatchIt 创建两组匹配的投资公司(治疗与控制)。
我需要仅使用进行治疗的 1-3 年的数据将治疗公司与对照公司进行匹配。
例如,如果一家公司在 2009 年接受治疗,那么我想使用 2009 年、2008 年、2007 年的数据来匹配它(在这种情况下,我的治疗后效果假人将保持 2010 年以后的值)
我不确定如何将此选择添加到我的匹配代码中,目前看起来像这样:
matchit(签字人~totalUSD + brownUSD + 国家 + 策略,data = panel6,method = "full")
我应该考虑以某种方式使用“后”治疗效果假人吗?
任何关于我如何添加它的提示将不胜感激!