MatchIt:完全匹配 - 长向量错误

MatchIt: Full Matching - Long Vector Error

我正在 运行 进行分析以评估土地保护政策对地块级别土地利用变化的影响。为了解决保护计划注册的非随机性,我正在 运行 处理和未处理地块级别数据之间进行匹配分析。当我尝试 运行 使用 MatchIt 包进行完全匹配时出现此错误。

Error in cbind(treatmentids, controlids) : 
long vectors not supported yet: ../include/Rinlinedfuns.h:535

我使用的配置是:

m1.out <- matchit(formula = Y ~ X1 + X2 + ..... Xn, data = dataframe, 
                   method = "full", distance = 'glm', link = 'logit',
                   estimand = 'ATT', ratio = 1, pop.size = 16)

其中 X1 .. Xn 是连续协变量,Y 是二元处理变量。数据集包含 121226 行,其中 51693 行是处理样本,其余是对照样本。

我在 windows 机器上使用 MatchIt(4.3.4) 运行ning R (4.0.2)。遗传或最近邻匹配方法 运行ning 没有任何问题。感谢您对此提供的任何帮助。

这是来自 optmatch 的错误。问题太大 optmatch::fullmatch(),函数 matchit() 调用 method = "full",无法处理。这是因为 fullmatch() 对所有成对距离进行了搜索,在这种情况下,其数量超过 25 亿。该问题可能根本无法完全匹配。见 here 同样的问题。

您可以尝试的一些事情是施加非常严格的卡尺,这会减少符合条件的节点数量,或者使用 exact 参数添加精确匹配约束,这会将问题拆分成更小的块,可能更易于管理。也可以尝试使用子类数量较多的子类化,近似全匹配。

另请注意,ratiopop.size 参数对完全匹配没有任何作用,因此您应该将它们排除在对 matchit().

的调用之外