Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Combining multiple imputation with propensity score matching
From
"Ariel Linden, DrPH" <[email protected]>
To
<[email protected]>
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 <[email protected]> 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/