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: deriving a bootstrap estimate of a difference between two weighted regressions

From   Steve Samuels <>
Subject   Re: st: deriving a bootstrap estimate of a difference between two weighted regressions
Date   Mon, 2 Aug 2010 09:09:33 -0400

For your example, I think that the difference in ATT and ATC is equal
to the difference in the weighted sample means for treatment and
control, with weights w = 1/P - 1/(1-P), where P is the estimated
probability of treatment (propensity score). If so, there is no need
for -suest-. It is still correct to bootstrap, because otherwise
standard errors will not reflect the uncertainty in the estimated
propensity scores. For an example of how to bootstrap multiple
commands, see

A secondary point: analytic weights are appropriate in two
circumstances: 1) where data were collapsed, as Austin stated, so that
analytic weight = number of sample observations represented by the
data point; or 2) where there is a model for the variance of the
response, so that analytic weight = 1/(estimated variance). Neither of
these applies here, so use probability weights. The choice won't
change the estimated coefficients, but it can affect standard errors.


On Sun, Aug 1, 2010 at 1:39 PM, Ariel Linden, DrPH
<> wrote:
> There are at least two conceptual reasons why this process makes sense.
> First, assume a causal inference model which uses a weight (let's say an
> "average treatment on the treated" weight) to create balance on observed
> pre-intervention covariates (by setting the covariates to equal that of the
> treated group). Let's say the second model is identical but uses an "average
> treatment on controls" (ATC) weight. Assuming no unmeasured confounding, the
> treatment variable(s) from both models will provide the treatment effect
> estimate given the respective weighting purposes (holding covariates to
> represent treatment or control group characteristics). Thus, measuring the
> difference between the treatment effects in both models (which will need to
> have either bootstrapped or other adjustment to the SE) can serve as a
> sensitivity analysis (one of many approaches).
> Second, and in a similar manner, one can test the effect of a mediator using
> a weighting method for the original X-Y model, and second weight for the
> X-M-Y model. In both cases, different weights must be applied to two
> different regression models, and in both cases, the SE's will need to be
> adjusted. Weights are used in these models in a similar context to those in
> the first example - to control for confounding.
> By the way, a user written program called sgmediation (search sgmediation)
> does something similar to this but without the weights, so it may be
> possible to replicate many of the steps (or add weights?).
> Thanks!
> Ariel
> Date: Sat, 31 Jul 2010 22:20:41 -0500
> From: Stas Kolenikov <>
> Subject: Re: st: deriving a bootstrap estimate of a difference between two
> weighted regressions
> I am not sure this is sensible. Leaving aside the issue whether comparing
> two regressions with different weight is sensible, to begin with, I am used
> to thinking about aweights as a result of -collapse-.
> For your bootstrap procedure to resemble all the steps in the original
> process, you would have to resample the raw data before -collapse- to get
> both new numbers and new weights.
> On Sat, Jul 31, 2010 at 7:54 PM, Ariel Linden, DrPH <>
> wrote:
>> Hi All,
>> I would like to run two regressions (each using a different weight),
>> and then get the bootstrapped estimates of the difference. Neither
>> suest or sureg allows different weights to be used in the two models.
>> I thought that maybe there is a way of getting the resulting estimate
>> in a somewhat manual manner, but I don't know how. I am thinking something
> like this:
>> regress outcome treatment [aw = att]
>> scalar ATT = _b[ treatment]
>> Regress outcome treatment [aw = atc]
>> scalar ATC = _b[ treatment]
>> scalar difference= (ATT-ATC)
>> Then bootstrap the scalar difference to get the mean, CI, etc.
>> Any help is much appreciated!
>> Ariel
> *
> * For searches and help try:
> *
> *
> *

Steven Samuels
18 Cantine's Island
Saugerties NY 12477
Voice: 845-246-0774
Fax: 206-202-4783
*   For searches and help try:

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