Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

re: st: psmatch2: set restrictions on controls for matching?

From   "Ariel Linden, DrPH" <>
To   <>
Subject   re: st: psmatch2: set restrictions on controls for matching?
Date   Sat, 11 Aug 2012 11:42:39 -0400

Hi Jerome,

I am not sure you really want to die over these question do you? :-)

In any case, here are some thoughts.

(1) you can and should include region in the logit model to estimate the
propensity score if it is an important variable that relates to either
treatment, outcome or both. You can either use "i.region" (available in
Stata 11 or 12) or generate dummies "tab region, gen(new_region)"

As for the matching itself, you have at least a couple options. First, you
could use -cem- (a user-written program found on ssc that performs coarsened
exact matching). Here you'd specify exact matching on region, and allow for
coarsening across the other variables (also, you could include the
propensity score as an additional matching variable in the model).

Alternatively, you could run the stratification algorithm that is in the
-psmatch2- help file (user written program found on ssc). This will allow
you to run the matching within strata, or in your case, region.

(2) the "if" statement in -psmatch2- is no different than the "if" statement
in any other command. It allows you to narrow your focus to a subset of the
data. So here you could write something like "psmatch2 treat xvars if

(3) third, and finally, make sure that you have achieved covariate balance
within your strata (regions). I don't know what will be your resulting
sample size, but you may have some small cells, which may impact both bias
and variability.

I hope this helps

Date: Sat, 11 Aug 2012 03:31:11 +0200
From: =?ISO-8859-1?Q?J=E9r=F4me_Sansonetti?= <>
Subject: st: psmatch2: set restrictions on controls for matching?

Dear all,

Here are two questions I have been dying to find the answer to...
Thanks in advance!

1/ I am trying to run propensity score matching with nearest neighbor,
and in order to do that I generated a treatment dummy ("Treatment")
equal to 1 if the observation received the treatment, and 0 otherwise.
I also have a list of covariates on which I would like to compute the
propensity score ("Education"; "Wage"; "Experience").

Here is where the problem comes in. I have another variable available
for the treated and the untreated: "Region" (categorical variable
ranging from 1 to 10). I would like to make sure that when the nearest
neighbor is picked from the untreated, it comes from the same region
as the treated observation that is being matched.

Here are possible solutions that I have discarded, would you let me
know what you think of them, and if you can suggest other ones?
- - adding "Region" to the list of independent variables on which the
propensity score is calculated ("Education"; "Wage"; "Experience")
would not solve the problem, I believe. Indeed, for the treated
observation and its matched untreated to come from the same region is
an absolute necessity, not just one variable among others that is used
to minimize the distance between the treated observation and the
possible controls.
- - separating the sample into 10 groups (as many as there are regions),
and run 10 different propensity score matchings. However, then I can't
see how I could get the ATT and its significance for the whole treated

2/ I noticed that it is possible to add an "if" expression to the
psmatch2 command. Does anyone know what the "if" refers to? Does it
refer to the way that the whole pool of observations (treated and
untreated) are selected? Or to how the matching between treated and
untreated is done? Ideally, I was hoping there would be a way to
specify that I would like the region of the treated to be the same as
the region for the untreated ;)

Thank you very much for your insights, wish everyone a great weekend!


*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index