2017-07-03 158 views
1

我一直在使用R中的MatchIt包進行治療與控制匹配,而我無法獲得最佳匹配以使用我自己的數據集。MatchIt:最佳匹配失敗

如果我運行下面的代碼:

m.out <- matchit(match_formula, data=stats, method='optimal', distance='logit', ratio=2) 

其中公式是

treatment ~ t_1 + t_2 + t_3 + t_4 + t_5 + t_6 + t_7 + t_8 + t_9 + 
t_10 + t_11 

然後我結束了錯誤

Error in fullmatch.matrix(d, min.controls = ratio, max.controls = ratio, : omit.fraction must be NULL or numeric between -1 and 1 

我不能在任何地方找到matchit方法來指定一個omit.fraction變量或甚至做什麼。有沒有辦法繞過這個bug並執行最佳匹配?

+2

請做一個可重現的例子:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – emilliman5

+0

'matchit'使用'fullmatch'函數從'optmatch'包。從那裏查看幫助文件。 – lmo

回答

2

想通了!

因爲我比治療單位有更多的控制權,optmatch無法將所有控制單元分配到至少一個治療,導致上述錯誤。解決方案是切換控制和治療人羣,並使用匹配比例1來匹配所有控制單位到治療單位。

紅利:最佳匹配比「最近鄰居」匹配更合適,我猜這是預料之中。

+0

太奇怪了。我覺得'optmatch'應該知道許多控制要與幾個處理過的單元匹配。感謝您的發表! – Noah

+0

是的,它完全與我期待的完全相反!我想我需要閱讀更多關於匹配的一般信息。 – istewart