2017-07-03 5 views
1

RのMatchItパッケージを使用して治療対コントロールのマッチングを行っています。自分のデータセットで最適なマッチングを行うことができません。MatchIt:最適なマッチングが失敗しました。

私は、次のコードを実行した場合:

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

式は私がどこかで見つけることができませんでした

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

エラーになってしまい、その後

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

ですmatchitメソッドを使用して、omit.fraction変数を指定する方法、またはそれを行う方法。このバグを回避して最適なマッチングを実行する方法はありますか?

+2

再現可能な例を作りましょう:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – emilliman5

+0

'matchit'は' fullmatch'関数を使っています'optmatch'パッケージです。そこからヘルプファイルを参照してください。 – lmo

答えて

2

それを実感してください!

私は治療単位より多くのコントロールを持っていたので、optmatchは少なくとも1つの治療にすべてのコントロールユニットを割り当てることができず、上記のエラーが発生しました。解決策は、コントロールおよび処置集団を切り替えることであり、すべてのコントロールユニットを治療ユニットに適合させるために、一致比1を使用することでした。

ボーナス:最適なマッチは、「最近隣」のマッチよりもよくフィットしていました。これは私が予想していると思います。

+0

それはとても奇妙です。私は 'optmatch'は多くのコントロールがいくつかの処理されたユニットにマッチすることを知っているべきだと感じています。投稿していただきありがとうございます! – Noah

+0

それはまったく私が期待していたものの反対でした!私は一般的にマッチングの詳細を読む必要があると思います。 – istewart

関連する問題