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: pscore question

From   "Alistair Windsor (U of M)" <>
Subject   Re: st: pscore question
Date   Wed, 09 Feb 2011 08:23:53 -0600

Dear Dan,

I don't know about pscore. You can use psmatch2 to do matching and can set it to do matching with whatever strata you define. Do to confounding variables you will probably want to stratify by school. You may also wish to do matching within pscore quantiles.

The following is cribbed from some of my code and so there may be unbalanced braces. I have removed a command that keeps r(att). I practice I prefer to do all the analysis on my control group myself. Since I am not keeping r(att) you can also drop the outcome(`outcomes') part of my psmatch2 call.

Does this help,


local controls /* list of your covariates here */

  qui: gen byte support = .
  qui: gen byte treated = .
  qui: gen float weight = .

  // randomize sort order

  qui: gen random = runiform()
  qui: sort random

    // loop over each strata
    foreach c of local classifications {
/* capture is necessary since some potentially some strata have no students and this causes a crash unless capture
      is present */

      capture {
        // this is the propensity matching scheme
        qui: xi: psmatch2 `intervention' `controls' ///
          if classification == "`c'", ///
            outcome(`outcomes') pscore( /*Your variables here*/)
	/* psmatch2 options */

        /* _weight, _support and _treated will all be overwritten when
        next psmatch2 is called. We wish to retain the values within
        each strata */

        qui: replace weight = _weight if ///
	    & classification == "`c'"
        qui: replace treated = _treated if  ///
	    & classification == "`c'"
        qui: replace support = _support if ///
	    & classification == "`c'"


  //Test the pseudo-control group for bias.

xi, noomit: pstest `controls', mweight(weight) treated(treated) support(support)

On 2/9/11 1:33 AM, statalist-digest wrote:
From: Dan Kimmel<>
Subject: st: pscore question

I'm working on a project predicting the effect of exposure to violence
on the health of American high school students.  I am attempting to
use propensity score analysis to make causal inference about the
treatment effect; however, because these students are nested within
schools which vary in their mean level of violence, I have predicted
the propensity scores using Hierarchical Linear Modeling software.

My question is: Is there a way to use Becker and Ichino's pscore
program for STATA to distribute the students into blocks and check
that the balancing property is met -- but to do so using propensity
scores that have already been calculated, rather than by allowing the
program to calculate them itself?  And if not, could such a function
be devised?

- --
Daniel M. Kimmel
Department of Sociology
University of Chicago

Alistair Windsor
380 Dunn Hall           Ph: 901-678-4431
University of Memphis   Fax: 901-678-2480
Memphis, TN 38152-3240
*   For searches and help try:

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