我一直在 R 中使用MatchIt包来进行处理与控制匹配,但我无法获得最佳匹配来处理我自己的数据集。
如果我运行以下代码:
m.out <- matchit(match_formula, data=stats, method='optimal', distance='logit', ratio=2)
Run Code Online (Sandbox Code Playgroud)
公式在哪里
treatment ~ t_1 + t_2 + t_3 + t_4 + t_5 + t_6 + t_7 + t_8 + t_9 +
t_10 + t_11
Run Code Online (Sandbox Code Playgroud)
然后我以错误告终
Error in fullmatch.matrix(d, min.controls = ratio, max.controls = ratio, : omit.fraction must be NULL or numeric between -1 and 1
Run Code Online (Sandbox Code Playgroud)
我在matchit方法中找不到任何地方来指定 omit.fraction 变量或什至做什么。有没有办法绕过这个错误并执行最佳匹配?
弄清楚了!
因为我的控制比处理单元多,optmatch无法将所有控制单元分配给至少一个处理,这导致了上述错误。解决方案是切换控制和处理群体,并使用匹配比率 1,以便将所有控制单元与一个处理单元匹配。
奖励:最佳匹配比“最近邻”匹配更适合,我想这是可以预料的。