Matching and matching

Daniel Ho, Kosuke Imai, Gary King, and Liz Stuart have a computer program in R to do matching for observational studies. Jasjeet Sekhon has a computer program in R to do matching for observational studies. Matching, followed by regression, has been suggested for decades by William Cochran and Donald Rubin as a way to reduce bias in observational studies.

I asked Jasjeet how his software differed from that of Liz Stuart et al. He replied:

There are a number of important differences. The three most important are:

1) My [Jasjeet’s] package includes a function “GenMatch()” which finds optimal balance using multivariate matching where a genetic search algorithm (called “genoud”) determines the weight each covariate is given. The function never consults the outcome and is able to find amazingly good balance in datasets where human researchers have failed to do so. The use of GenMatch resolves the Dehejia and Wahba vs. Todd and Smith debate. I’m writing a paper on this approach to matching right now.

For more information on R-GENOUD (R-GENetic Optimization Using Derivatives) see http://jsekhon.fas.harvard.edu/rgenoud/

2) The core matching function, Match(), implements the standard errors and bias correction of Abadie and Imbens (forthcoming). The standard errors are principled when matching is done directly with covariates (as done by “GenMatch”) or when one uses a known propensity score. Ties are handled in a deterministic and coherent fashion.

3) The MatchBalance() function provides an array of rigorous and innovative balance tests including bootstrap Kolmogorov-Smirnov (KS) tests which provide consistent test levels even when the variable under consideration is not continuous. There is also a version of the KS test which uses both the bootstrap and a Monte Carlo step to
provide a consistent multivariate balance test.

I [Andrew] can’t vouch for any of these programs myself because (I’m embarrassaed to say) I’ve never actually used matching. I’ve analyzed data from observational studies but in the examples I’ve happened to work with, the treatment and control groups have been reasonably balanced. Matching is worth thinking about, though. Ultimately I’d like to put it all in a Bayesian poststratification framework.

2 thoughts on “Matching and matching

  1. Hi Andrew,

    I've been using a program for R called optmatch which does Optimal/Full Matching. It is being developed by Ben Hansen (who is my co-author). You can download it from Ben's Website.

    I have not done any hands-on comparison of the three programs: Jas's (Match); Dan, Kosuke, Gary, and Liz's (MatchIt); and Ben's (optmatch).

    As I understand it, Jas's program does matching with replacement (implementing some ideas from Abadie and Imbens) and adds a cool genetic balance finding algorithm; MatchIt calls Ben's program to do full and optimal matching (without replacement) — and I think it does exact (with replacement) and nearest neighbor (?without replacement?) matching using their own code. All three of them can use calipers.

  2. Jake,

    Thanks for the reference–it looks interesting. In theory, I don't like the idea of "matching with replacement"–it seems to me that really matching is done of groups, not of individuals, and so once a point is in the dataset, I don't really see why you should have to worry about which other points it's matched to. In practice, however, I know that people have success with this approach, and it presumably can be viewed as some approximation to a full modeling version.

Comments are closed.