**[TE] teffects aipw** -- Augmented inverse-probability weighting

__Syntax__

**teffects** **aipw** **(***ovar* *omvarlist* [**,** *omodel* __nocons__**tant**]**)** **(***tvar* *tmvarlist*
[**,** *tmodel* __nocons__**tant)**] [*if*] [*in*] [*weight*] [**,** *stat* *options*]

*ovar* is a binary, count, continuous, fractional, or nonnegative outcome
of interest.

*omvarlist* specifies the covariates in the outcome model.

*tvar* must contain integer values representing the treatment levels.

*tmvarlist* specifies the covariates in the treatment-assignment model.

*omodel* Description
-------------------------------------------------------------------------
Model
**linear** linear outcome model; the default
**logit** logistic outcome model
**probit** probit outcome model
**hetprobit(***varlist***)** heteroskedastic probit outcome model
**poisson** exponential outcome model
**flogit** fractional logistic outcome model
**fprobit** fractional probit outcome model
**fhetprobit(***varlist***)** fractional heteroskedastic probit outcome model
-------------------------------------------------------------------------
*omodel* specifies the model for the outcome variable.

*tmodel* Description
-------------------------------------------------------------------------
Model
**logit** logistic treatment model; the default
**probit** probit treatment model
**hetprobit(***varlist***)** heteroskedastic probit treatment model
-------------------------------------------------------------------------
*tmodel* specifies the model for the treatment variable.
For multivalues treatments, only **logit** is available and multinomial logit
is used.

*stat* Description
-------------------------------------------------------------------------
Stat
**ate** estimate average treatment effect in population;
the default
__pom__**eans** estimate potential-outcome means
-------------------------------------------------------------------------

*options* Description
-------------------------------------------------------------------------
Model
**nls** estimate conditional means by nonlinear least
squares
**wnls** estimate conditional means by weighted nonlinear
least squares

SE/Robust
**vce(***vcetype***)** *vcetype* may be __r__**obust**, __cl__**uster** *clustvar*,
__boot__**strap**, or __jack__**knife**

Reporting
__l__**evel(***#***)** set confidence level; default is **level(95)**
__aeq__**uations** display auxiliary-equation results
*display_options* control columns and column formats, row spacing,
line width, display of omitted variables and
base and empty cells, and factor-variable
labeling

Maximization
*maximize_options* control the maximization process; seldom used

Advanced
__pstol__**erance(***#***)** set tolerance for overlap assumption
__os__**ample(***newvar***)** *newvar* identifies observations that violate the
overlap assumption
__con__**trol(***# *|* label***)** specify the level of *tvar* that is the control

__coefl__**egend** display legend instead of statistics
-------------------------------------------------------------------------

*omvarlist* and *tmvarlist* may contain factor variables; see fvvarlists.
**bootstrap**, **by**, **jackknife**, and **statsby** are allowed; see prefix.
Weights are not allowed with the **bootstrap** prefix.
**fweight**s and **iweight**s are allowed; see weight.
**coeflegend** does not appear in the dialog box.
See **[TE] teffects postestimation** for features available after estimation.

__Menu__

**Statistics > Treatment effects > Continuous outcomes>** **Augmented**
**inverse-probability weighting**

**Statistics > Treatment effects > Binary outcomes>** **Augmented**
**inverse-probability weighting**

**Statistics > Treatment effects > Count outcomes>** **Augmented**
**inverse-probability weighting**

**Statistics > Treatment effects > Fractional outcomes>** **Augmented**
**inverse-probability weighting**

**Statistics > Treatment effects > Nonnegative outcomes>** **Augmented**
**inverse-probability weighting**

__Description__

**teffects** **aipw** estimates the average treatment effect and the
potential-outcome means from observational data by augmented
inverse-probability weighting (AIPW). AIPW estimators combine aspects of
regression-adjustment and inverse-probability-weighted methods. AIPW
estimators have the double-robust property. **teffects** **aipw** accepts a
continuous, binary, count, fractional, or nonnegative outcome and allows
a multivalued treatment.

See **[TE] teffects intro** or **[TE] teffects intro advanced** for more
information about estimating treatment effects from observational data.

__Options__

+-------+
----+ Model +------------------------------------------------------------

**noconstant**; see **[R] estimation options**.

**nls** specifies that the parameters of the outcome model be estimated by
nonlinear least squares instead of the default maximum likelihood.

**wnls** specifies that the parameters of the outcome model be estimated by
weighted nonlinear least squares instead of the default maximum
likelihood. The weights make the estimator of the effect parameters
more robust to a misspecified outcome model.

+------+
----+ Stat +-------------------------------------------------------------

*stat* is one of two statistics: **ate** or **pomeans**. **ate** is the default.

**ate** specifies that the average treatment effect be estimated.

**pomeans** specifies that the potential-outcome means for each treatment
level be estimated.

+-----------+
----+ SE/Robust +--------------------------------------------------------

**vce(***vcetype***)** specifies the type of standard error reported, which
includes types that are robust to some kinds of misspecification
(**robust**), that allow for intragroup correlation (**cluster** *clustvar*),
and that use bootstrap or jackknife methods (**bootstrap**, **jackknife**);
see **[R] ***vce_option*.

+-----------+
----+ Reporting +--------------------------------------------------------

**level(***#***)**; see **[R] estimation options**.

**aequations** specifies that the results for the outcome-model or the
treatment-model parameters be displayed. By default, the results for
these auxiliary parameters are not displayed.

*display_options*: **noci**, __nopv__**alues**, __noomit__**ted**, **vsquish**, __noempty__**cells**,
__base__**levels**, __allbase__**levels**, __nofvlab__**el**, **fvwrap(***#***)**, **fvwrapon(***style***)**,
**cformat(***%fmt***)**, **pformat(%***fmt***)**, **sformat(%***fmt***)**, and **nolstretch**; see **[R]**
**estimation options**.

+--------------+
----+ Maximization +-----------------------------------------------------

*maximize_options*: __iter__**ate(***#***)**, [__no__]__lo__**g**, and **from(***init_specs***)**; see **[R]**
**maximize**. These options are seldom used.

*init_specs* is one of

*matname* [**,** **skip** **copy**]

*#* [**,** *#* ...]**,** **copy**

+----------+
----+ Advanced +---------------------------------------------------------

**pstolerance(***#***)** specifies the tolerance used to check the overlap
assumption. The default value is **pstolerance(1e-5)**. **teffects** will
exit with an error if an observation has an estimated propensity
score smaller than that specified by **pstolerance()**.

**osample(***newvar***)** specifies that indicator variable *newvar* be created to
identify observations that violate the overlap assumption.

**control(***# *|* label***)** specifies the level of *tvar* that is the control. The
default is the first treatment level. You may specify the numeric
level *#* (a nonnegative integer) or the label associated with the
numeric level. **control()** may not be specified with statistic
**pomeans**.

The following option is available with **teffects** **aipw** but is not shown in
the dialog box:

**coeflegend**; see **[R] estimation options**.

__Examples__

---------------------------------------------------------------------------
Setup
**. webuse cattaneo2**

Estimate the average treatment effect of **mbsmoke** on **bweight**, using a
probit model to predict treatment status
**. teffects aipw (bweight prenatal1 mmarried mage fbaby)** **(mbsmoke**
**mmarried c.mage##c.mage fbaby medu, probit)**

Use **pomeans** and **aequations** to obtain estimates of both potential-outcome
means and view all the fitted equations underlying our estimates
**. teffects aipw (bweight prenatal1 mmarried mage fbaby)** **(mbsmoke**
**mmarried c.mage##c.mage fbaby medu, probit),** **pomeans aequations**

Refit the above model, but use heteroskedastic probit to model the
treatment variable
**. teffects aipw (bweight prenatal1 mmarried fbaby)** **(mbsmoke mmarried**
**c.mage##c.mage fbaby medu, hetprobit(c.mage)),** **aequations**

---------------------------------------------------------------------------
Setup
**. webuse cattaneo2**

Use WNLS to fit the outcome model shown above
**. teffects aipw (bweight prenatal1 mmarried mage fbaby)** **(mbsmoke**
**mmarried c.mage##c.mage fbaby medu, probit), wnls**

---------------------------------------------------------------------------

__Video example__

Treatment effects: Augmented inverse-probability weighting

__Stored results__

**teffects** **aipw** stores the following in **e()**:

Scalars
**e(N)** number of observations
**e(n***j***)** number of observations for treatment level *j*
**e(N_clust)** number of clusters
**e(k_eq)** number of equations in **e(b)**
**e(k_levels)** number of levels in treatment variable
**e(treated)** level of treatment variable defined as treated
**e(control)** level of treatment variable defined as control
**e(converged)** **1** if converged, **0** otherwise

Macros
**e(cmd)** **teffects**
**e(cmdline)** command as typed
**e(depvar)** name of outcome variable
**e(tvar)** name of treatment variable
**e(subcmd)** **aipw**
**e(tmodel)** **logit**, **probit**, or **hetprobit**
**e(omodel)** **linear**, **logit**, **probit**, **hetprobit**, **poisson**, **flogit**,
**fprobit**, or **fhetprobit**
**e(stat)** statistic estimated, **ate** or **pomeans**
**e(wtype)** weight type
**e(wexp)** weight expression
**e(title)** title in estimation output
**e(clustvar)** name of cluster variable
**e(tlevels)** levels of treatment variable
**e(cme)** **ml**, **nls**, or **wnls**
**e(vce)** *vcetype* specified in **vce()**
**e(vcetype)** title used to label Std. Err.
**e(properties)** **b V**
**e(estat_cmd)** program used to implement **estat**
**e(predict)** program used to implement **predict**
**e(marginsnotok)** predictions disallowed by **margins**
**e(asbalanced)** factor variables **fvset** as **asbalanced**
**e(asobserved)** factor variables **fvset** as **asobserved**

Matrices
**e(b)** coefficient vector
**e(V)** variance-covariance matrix of the estimators

Functions
**e(sample)** marks estimation sample