Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Ariel Linden, DrPH" <ariel.linden@gmail.com> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | Re: st: Combining multiple imputation with propensity score matching |
Date | Wed, 3 Mar 2010 11:15:58 -0800 |
I suggest that you consider using an optimal matching procedure. It will allow you to choose the maximum number of controls you'd like to match to each treated unit. There will be some treated units that will be matched to one control, and others that may be matched to the maximum you've set as the maximum. Mark Lunt wrote a program for stata called optmatch2 Description The command optmatch2 performs optimal matching using the network flow methodology outlined in Rosenbaum(1989). The variable casecontrol contains 1 for cases and 0 for controls. The variable(s) on which matching is to be performed are given by varlist. If there is more than one variable in varlist, there are a number of ways of calculating a distance between a case and a control: see the option measure below for more information. I hope this helps Ariel On Tue, Mar 2, 2010 at 12:24 PM, David Kantor <kantor.d@att.net> wrote: > Hi. > As the author of mahapick, I would like to mention that, indeed, it does not > pick unique matches. (This could be an avenue for future development.) > You can specify that it generates a multitude of match candidates, which is > virtually a queue, in order of closeness, of possible matches for each > primary ("treated") case. You then can take this and run a loop that visits > primary cases in a random order. For each such case, > select the best candidate for the given primary case; > remove that selected match as a candidate for use in later passes through > the loop. > > I recommend that if you want more than one match (say 3) per primary case, > that you run this loop several (3) times (maintaining the same data > structure that disqualifies candidates from future matching) -- rather than > selecting, say, the best 3 matches for each case in one pass through the > loop. The latter method might enable earlier cases in the loop to grab > better matches. > > Of course, this has a random element to the process. You may or may not like > that. But you need some way of deciding who gets a given candidate if it is > matched to more than one primary case. > > I had done this selection process once, several years ago; I might be able > to dig up the code if necessary. My co-worker also had a plan to somehow > optimize the process by swapping matches in order to minimize the sum of the > distances. That was too complex to be done in Stata, and we abandoned it. I > understand that the task was taken up by others (in C, I suppose), but the > result was no better than the original random process. > > HTH > --David * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/