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]

From |
Richard Herron <richard.c.herron@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
st: Obtaining correct inference from within strata -att- estimation with -psmatch2- |

Date |
Fri, 24 Feb 2012 12:48:38 -0500 |

I am using -psmatch2- (SSC) to match on propensity score and would like to limit matches to the same strata. The example code in -psmatch2-'s help file iterates over strata with a -foreach- loop and -if- statements and returns -att- (average treatment of the treated) for each strata, which the code stores for every observation in each strata (I could also limit this to actually matched treatment and control). Then the example code finds the mean -att- with -summarize-. I would like to make inferences on the mean -att-, however there are many observations, so standard errors are small and t-statistics large. If I use one -att- observation per strata (similar to a Fama-MacBeth regression), then I get completely different inferences. Is there a better way to limit matches within strata? I have tried the -mahalanobis- option using the whole data set, but the data are very large and it takes quite a long time (more than overnight to perform matching on distance in the whole data set). Or is the correct answer to avoid these inference problems to _not_ aggregate my -att- over strata and evaluate them strata by strata? Thanks! I provide an example below. In my case the strata are fiscal years, but in the readily available data the strata are industry codes. * begin code * ssc install psmatch2 webuse nlswork, clear generate att = . egen g = group(ind_code) levels g, local(gr) quietly foreach j of local gr { psmatch2 msp collgrad union tenure age race /// if (g == `j'), out(ln_wage) replace att = r(att) if (g == `j') } * but -psmatch2- assigns same -att- to every matched observed in each group -g- (here grouped on -ind_code-) table g att * so the standard errors are very small and the t-stats too large summarize att scalar t = `r(mean)' / (`r(sd)' / (`r(N)' - 1)) scalar list t * is there a more sensible way to get the correct inference, while still forcing matches only within a given strata? * one thought is to collapse on -g- collapse (mean) att, by(g) summarize att scalar t = `r(mean)' / (`r(sd)' / (`r(N)' - 1)) scalar list t * here the inference flips from negative significant to positive significant, but I haven't done any weighting by group * end code * * 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/

**Follow-Ups**:**Re: st: Obtaining correct inference from within strata -att- estimation with -psmatch2-***From:*Austin Nichols <austinnichols@gmail.com>

- Prev by Date:
**Re: st: mosaic plot with an intensity dimension** - Next by Date:
**re: st: RE: Panel data: large number of linear time trends** - Previous by thread:
**st: Panel data: large number of linear time trends** - Next by thread:
**Re: st: Obtaining correct inference from within strata -att- estimation with -psmatch2-** - Index(es):