help ivtreatreg

Title

ivtreatreg - Estimation of binary treatment models with idiosyncratic average effect

Syntax

ivtreatreg
outcome
treatment
[ varlist]
[if] [in]
[weight],
model(modeltype)
[hetero(varlist_h)
iv(varlist_iv)
conf(number)
graphic
vce(robust)
const(noconstant)
head(noheader)]

fweights, iweights, and pweights are allowed;
see weight.

Description

ivtreatreg estimates four different (binary) treatment models with and without
idiosyncratic (or heterogeneous) average effect.
Depending on the model specified, ivtreatreg provides consistent estimation of average treatment
effects under the hypothesis of "selection-on-unobservables" (i.e., treatment endogeneity)
by suitably using Instrumental-Variables (IV) and a generalized Heckman Selection-Model.
Conditional on a pre-specified subset of exogenous variables - thought of as those driving
the heterogeneous response to treatment - ivtreatreg
calculates for each specific model the Average Treatment Effect (ATE), the Average Treatment Effect on Treated (ATET) and
the Average Treatment Effect on Non-Treated (ATENT), as well as the estimates
of these parameters conditional on the observable factors x (i.e., ATE(x), ATET(x) and ATENT(x)).

Options

model(modeltype) specifies the treatment model
to be estimated, where modeltype must be one of the following five
models: "direct-2sls", "probit-2sls", "probit-ols", "heckit".
it is always required to specify one model.

hetero(varlist_h) specifies the variables over
which to calculate the idyosincratic Average Treatment Effect ATE(x), ATET(x) and ATENT(x),
where x=varlist_h. It is optional for all models. When this option is not specified, the command
estimates the specified model without heterogeneous average effect. Observe that
varlist_h should be the same set or a subset of the variables specified in varlist.

iv(varlist_iv) specifies the variable(s) to be used as instruments.
This option is strictly required only for "direct-2sls", "probit-2sls" and "probit-ols",
while it is optional for "heckit".

graphic allows for a graphical representation of the density distributions of
ATE(x), ATET(x) and ATENT(x). It is optional for all models and gives an outcome
only if variables into hetero() are specified.

vce(robust) allows for robust regression standard errors. It is optional for all models.

beta reports standardized beta coefficients. It is optional for all models.

const(noconstant) suppresses regression constant term. It is optional for all models.

conf(number) sets the confidence level equal to the specified number.
The default is number=95.

modeltype_options

Model
direct-2sls IV regression estimated by direct two-stage least squares

probit-2sls IV regression estimated by Probit and two-stage least squares

probit-ols IV two-step regression estimated by Probit and ordinary least squares

heckit Heckman two-step selection model

ivtreatreg creates a number of variables:

_ws_varname_h are the additional regressors used in model's regression when hetero(varlist_h)
is specified. They are created in all models.

_z_varname_h are the instrumental-variables used in model's regression when hetero(varlist_h)
and iv(varlist_iv) are specified. They are created only in IV models.

ATE(x) is an estimate of the idiosyncratic Average Treatment Effect.

ATET(x) is an estimate of the idiosyncratic Average Treatment Effect on treated.

ATENT(x) is an estimate of the idiosyncratic Average Treatment Effect on Non-Treated.

G_fv is the predicted probability from the Probit regression, conditional on the observable used.

_wL0, wL1 are the Heckman correction-terms.

As an e-class command ivtreatreg returns a series of objects. The most relevant are the following scalars:

e(N_tot) is the total number of (used) observations.

e(N_treated) is the number of (used) treated units.

e(N_untreated) is the number of (used) untreated units.

e(ate) is the value of the Average Treatment Effect.

e(atet) is the value of the Average Treatment Effect on Treated.

e(atent) is the value of the Average Treatment Effect on Non-treated.

Remarks

The treatment has to be a 0/1 binary variable (1 = treated, 0 = untreated).

The standard errors for ATET and ATENT may be obtained via bootstrapping.

When option hetero is not specified, ATE(x), ATET(x) and ATENT(x) are one singleton
number equal to ATE=ATET=ATENT.

Since when hetero is not specified in model "heckit" ivtreatreg uses
the in-built command treatreg, the following has to be taken into account:
(i) option beta and option head(noheader) are not allowed;
(ii) Option vce takes this sintax: vce(vcetype),
where vcetype may be "conventional", "bootstrap", or "jackknife".

Please remember to use the update query command before running
this program to make sure you have an up-to-date version of Stata installed.

Examples

*** EXAMPLES WITHOUT IDIOSYNCRATIC AVERAGE EFFECT ***

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(direct-2sls) iv(frsthalf) head(noheader) const(noconstant) vce(robust) beta
. ;

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(probit-2sls) iv(frsthalf) head(noheader) const(noconstant) vce(robust) beta
. ;

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(probit-ols) head(noheader) const(noconstant) vce(robust) beta
. ;

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(heckit) iv(frsthalf) head(noheader) const(noconstant) conf(80) vce(vce(conventional))
. ;

*** EXAMPLES WITH IDIOSYNCRATIC AVERAGE EFFECT ***

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(direct-2sls) hetero(yearfm agefm) iv(frsthalf) graphic
. head(noheader) const(noconstant) conf(90) beta vce(robust)
. ;

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(probit-2sls) hetero(yearfm agefm) iv(frsthalf) graphic
. head(noheader) const(noconstant) conf(90) beta vce(robust)
. ;

. #delimit ;
. ivtreatreg children educ7 tv ,
. model(probit-ols) hetero(yearfm agefm) graphic
. head(noheader) const(noconstant) conf(90) beta vce(robust)
. ;

. #delimit ;
. ivtreatreg children educ7 tv ,
. hetero(yearfm agefm) iv(frsthalf) model(heckit) graphic
. head(noheader) const(noconstant) conf(90) beta vce(robust)
. * Test for checking the existence of the selection bias:
. test _b[_wL1]=_b[_wL0]=0
. ;

*** EXAMPLE ON HOW TO BOOTSTRAP STD. ERR. FOR "ATET" AND "ATENT" ***

. #delimit ;
. bootstrap atet=r(atet) atent=r(atent), rep(10):
. ivtreatreg children educ7 tv , hetero(yearfm agefm) iv(frsthalf) model(heckit)
. head(noheader) const(noconstant) conf(90) beta vce(robust)
. ;

Reference

Cameron, A. C., and P. K. Trivedi. 2005. Microeconometrics: Methods and Applications.
Chapter 25. Cambridge University Press, New York.

Cerulli, G. 2012. Ivtreatreg: a new STATA routine for estimating binary treatment models with heterogeneous
response to treatment under observable and unobservable selection,
Working Paper Cnr-Ceris, N° 03/2012.

Wooldridge, J. M. 2002. Econometric Analysis of Cross Section and Panel Data.
Chapter 18. The MIT Press, Cambridge.

Wooldridge, J. M. 2010. Econometric Analysis of Cross Section and Panel Data, 2nd Edition.
Chapter 21. The MIT Press, Cambridge.

Acknowledgment

I wish to thank all the participants to the "8th Italian Stata Users Group" meeting held in Venice (Italy)
on November 17–18, 2011. A special thank to David Drukker for the useful discussions had with him in Venice
and to the PhD students of the Doctoral School of Economics of the University of Rome
"La Sapienza" who pushed me to write this routine in Stata 11.

Author

Giovanni Cerulli

Ceris-CNR

Institute for Economic Research on Firms and Growth, National Research Council of Italy

E-mail: g.cerulli@ceris.cnr.it

Also see

Online: teffects, etregress, etpoisson, ivregress, pscore, psmatch2, nnmatch