**[TE] teffects ipw** -- Inverse-probability weighting

__Syntax__

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

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

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

*tmvarlist* specifies the variables that predict treatment assignment in
the treatment model.

*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 multivalued treatments, only **logit** is available and multinomial logit
is used.

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

*options* Description
-------------------------------------------------------------------------
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
__tle__**vel(***# *|* label***)** specify the level of *tvar* that is the treatment

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

*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, **iweight**s, and **pweight**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 >**
**Inverse-probability weighting (IPW)**

**Statistics > Treatment effects > Binary outcomes >** **Inverse-probability**
**weighting (IPW)**

**Statistics > Treatment effects > Count outcomes >** **Inverse-probability**
**weighting (IPW)**

**Statistics > Treatment effects > Fractional outcomes >**
**Inverse-probability weighting (IPW)**

**Statistics > Treatment effects > Nonnegative outcomes >**
**Inverse-probability weighting (IPW)**

__Description__

**teffects** **ipw** estimates the average treatment effect, the average
treatment effect on the treated, and the potential-outcome means from
observational data by inverse-probability weighting (IPW). IPW
estimators use estimated probability weights to correct for the missing
data on the potential outcomes. **teffects** **ipw** 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**.

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

*stat* is one of three statistics: **ate**, **atet**, or **pomeans**. **ate** is the
default.

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

**atet** specifies that the average treatment effect on the treated 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**. **control()** and **tlevel()** may not specify the same treatment
level.

**tlevel(***# *|* label***)** specifies the level of *tvar* that is the treatment for
the statistic **atet**. The default is the second treatment level. You
may specify the numeric level *#* (a nonnegative integer) or the label
associated with the numeric level. **tlevel()** may only be specified
with statistic **atet**. **tlevel()** and **control()** may not specify the same
treatment level.

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

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

__Examples__

Setup
**. webuse cattaneo2**

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

Estimate the average treatment effect on the treated
**. teffects ipw (bweight) (mbsmoke mmarried c.mage##c.mage** **fbaby medu,**
**probit), atet**

Estimate the average treatment effect as a percentage
**. teffects ipw (bweight) (mbsmoke mmarried c.mage##c.mage** **fbaby medu,**
**probit), coeflegend**

__Video example__

Treatment effects: Inverse-probability weighting

__Stored results__

**teffects** **ipw** 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)** **ipw**
**e(tmodel)** **logit**, **probit**, or **hetprobit**
**e(stat)** statistic estimated, **ate**, **atet**, 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(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