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
参数添加精确匹配约束,这会将问题拆分成更小的块,可能更易于管理。也可以尝试使用子类数量较多的子类化,近似全匹配。
另请注意,ratio
和 pop.size
参数对完全匹配没有任何作用,因此您应该将它们排除在对 matchit()
.
的调用之外
我正在 运行 进行分析以评估土地保护政策对地块级别土地利用变化的影响。为了解决保护计划注册的非随机性,我正在 运行 处理和未处理地块级别数据之间进行匹配分析。当我尝试 运行 使用 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
参数添加精确匹配约束,这会将问题拆分成更小的块,可能更易于管理。也可以尝试使用子类数量较多的子类化,近似全匹配。
另请注意,ratio
和 pop.size
参数对完全匹配没有任何作用,因此您应该将它们排除在对 matchit()
.