{smcl}
{* 16aug2021}{...}
{hi:help ebalfit}{...}
{right:{browse "http://github.com/benjann/ebalfit/"}}
{hline}
{p 0 0 2}
{title:Title}
{pstd}{hi:ebalfit} {hline 2} Entropy balancing as an estimation command
{title:Syntax}
{pstd}
Syntax 1: balance subsamples
{p 8 15 2}
{cmd:ebalfit} {varlist} {ifin} {weight}{cmd:,} {opth by(varname)}
[{cmd:,} {help ebalfit##opts:{it:options}} ]
{pstd}
Syntax 2: adjust sample to population
{p 8 15 2}
{cmd:ebalfit} {varlist} {ifin} {weight}{cmd:,} {cmdab:pop:ulation(}[{it:popsize}{cmd::}]{help numlist:{it:numlist}}{cmd:)}
[{cmd:,} {help ebalfit##opts:{it:options}} ]
{pstd}
Replay results
{p 8 15 2}
{cmd:ebalfit} [{cmd:,} {help ebalfit##repopts:{it:reporting_options}} ]
{pstd}
Generate predictions after estimation
{p 8 15 2}
{cmd:predict} [{help datatypes:{it:type}}] {newvar} {ifin} [{cmd:,} {cmd:w} {cmd:u} {cmd:pr} {opt ps:core} {cmd:xb} ]
{cmd:w} balancing weights (the default)
{cmd:u} raw balancing weights; {cmd:w} = {cmd:u} * {it:weight}
{cmd:pr} propensity scores
{cmd:pscore} synonym for {cmd:pr}
{cmd:xb} linear predictions
{pstd}
Generate influence functions after estimation
{p 8 15 2}
{cmd:predict} [{help datatypes:{it:type}}]
{c -(}{help newvarlist##stub*:{it:stub}}{cmd:*} |
{it:{help newvarlist}}{c )-}
{ifin}{cmd:,} {opt if:s} [ {opt noc:ons} {opt noa:lpha} ]
{cmd:nocons} skip IF for {bf:_cons}
{cmd:noalpha} synonym for {cmd:nocons}
{synoptset 21 tabbed}{...}
{marker opts}{col 5}{it:{help ebalfit##options:options}}{col 28}description
{synoptline}
{syntab :Main}
{synopt :{opt by(groupvar)}}identify subsamples (required in syntax 1)
{p_end}
{synopt :{opt swap}}swap subsamples (syntay 1 only)
{p_end}
{synopt :{opt pool:ed}}use pooled sample as reference (syntay 1 only)
{p_end}
{synopt :{cmdab:pop:ulation(}{help ebalfit##pop:{it:spec}}{cmd:)}}provide population values (required in syntax 2)
{p_end}
{synopt :{cmdab:tau(}{help ebalfit##tau:{it:spec}}{cmd:)}}specify custom target sum of weights
{p_end}
{synopt :{cmdab:s:cales(}{help ebalfit##scales:{it:spec}}{cmd:)}}specify scales to be used for standardization
{p_end}
{synopt :{cmdab:tar:gets(}{help ebalfit##tar:{it:options}}{cmd:)}}specify types of moments to be balanced
{p_end}
{synopt :[{ul:{cmd:no}}]{cmdab:adj:ust(}{help ebalfit##adj:{it:numlist}}{cmd:)}}select terms to be balanced
{p_end}
{marker repopts}{...}
{syntab :Reporting}
{synopt :{opt l:evel(#)}}set confidence level; default is {cmd:level(95)}
{p_end}
{synopt :{opt nohead:er}}suppress header
{p_end}
{synopt :{opt nowtab:le}}suppress summary table of balancing weights
{p_end}
{synopt :{opt notab:le}}suppress coefficient table
{p_end}
{synopt :{help ebalfit##displayopts:{it:display_options}}}standard
reporting options as described in
{helpb estimation options:[R] estimation options}
{p_end}
{synopt :{opt bal:tab}}display balancing table
{p_end}
{syntab :VCE/SE}
{synopt:{cmd:vce(}{help ebalfit##vce:{it:vcetype}}{cmd:)}}variance estimation
method; default is {cmd:vce(robust)}
{p_end}
{synopt :{opt cl:uster(clustvar)}}synonym for
{cmd:vce(cluster} {it:clustvar}{cmd:)}
{p_end}
{synopt :{opt nose}}synonym for {cmd:vce(none)}
{p_end}
{marker genopts}{...}
{syntab :Generate}
{synopt :{opth g:enerate(newvar)}}store balancing weights
{p_end}
{synopt :{cmdab:if:generate(}{help ebalfit##ifgen:{it:names}}{cmd:)}}store influence functions
{p_end}
{synopt :{opt nod:escribe}}suppress list of generated variables in output
{p_end}
{synopt :{opt r:eplace}}allow replacing existing variables
{p_end}
{marker optimopts}{...}
{syntab :Optimization}
{synopt :{opt btol:erance(#)}}balancing tolerance; default is {bf:1e-6}
{p_end}
{synopt :{cmdab:lt:ype(}{help ebalfit##ltype:{it:ltype}{cmd:)}}}type of loss function; default is
{cmd:ltype(reldif)}
{p_end}
{synopt :{cmdab:et:ype(}{help ebalfit##etype:{it:etype}{cmd:)}}}evaluator type; default is
{cmd:etype(bl)}
{p_end}
{synopt :{opt iter:ate(#)}}maximum number of iterations;
default is as set by {helpb set maxiter}
{p_end}
{synopt :{opt ptol:erance(#)}}convergence tolerance for coefficient
vector; default is {bf:1e-6}
{p_end}
{synopt :{opt vtol:erance(#)}}convergence tolerance for the minimization
criterion; default is {bf:1e-7}
{p_end}
{synopt :{opt dif:ficult}}use a different stepping algorithm in nonconcave
regions{p_end}
{synopt :{opt nostd}}omit standardization during estimation; not recommended
{p_end}
{synopt :{opt nolog}}do not display iteration log
{p_end}
{synopt :{opt relax}}do not return error if convergence or balancing is not achieved
{p_end}
{synopt :{opt nowarn}}do not display non-convergence/non-balancing
messages
{p_end}
{synoptline}
{pstd}
{it:varlist} may contain factor variables; see {help fvvarlist}.
{p_end}
{pstd}
{cmd:fweight}s, {cmd:iweight}s, and {cmd:pweight}s are allowed; see {help weight}.
{p_end}
{title:Description}
{pstd}
{cmd:ebalfit} is an estimation command to perform entropy balancing
(Hainmueller 2012). The goal of entropy balancing is to find a vector of
weights that balances the data between two subsamples with respect to
specific moments of a list of variables (e.g. means and variances). For
example, we might want to reweight a control group such that the means of
pre-treatment variables match the means in the treatment group. Likewise,
entropy balancing can be used to adjust the distribution of a sample to known
population values.
{pstd}
Entropy balancing can be expressed as a regression-like model with one
coefficient for each balancing constraint. {cmd:ebalfit} estimates such a
model including the variance-covariance matrix of the estimated parameters. The
balancing weights are then obtained as predictions from this model. The
variance-covariance matrix computed by {cmd:ebalfit} is based on influence
functions. The influence functions can be
stored for further use, for example, to correct the standard errors of
statistics computed from the reweighted data.
{pstd}
The heavy lifting is done by function {helpb mf_mm_ebalance:mm_ebalance()}
from the {helpb moremata} package, which needs to be installed on the
system. See
{net "describe moremata, from(http://fmwww.bc.edu/repec/bocode/m/)":ssc describe moremata}.
{pstd}
For an alternative implementation of entropy balancing in Stata
see {helpb ebalance} by Hainmueller and Xu (2011, 2013).
{pstd}
For methods and formulas implemented in {cmd:ebalfit} see
{browse "http://ideas.repec.org/p/bss/wpaper/39.html":Jann (2021)}.
{marker options}{...}
{title:Options}
{dlgtab:Main}
{phang}
{opt by(groupvar)} is required in syntax 1. The
specified variable must be integer and nonnegative and must identify exactly
two groups. By default, the lower value identifies the subsample to be
reweighted and the higher value identifies the reference subsample; also see
option {cmd:swap}.
{phang}
{opt swap} swaps the subsamples (only allowed in syntax 1). By default, the
lower value of {it:groupvar} identifies the subsample to be reweighted. Specify
{cmd:swap} to use the higher value of
{it:groupvar} as the subsample to be reweighted.
{phang}
{opt pooled} uses the pooled sample across both groups as the reference
sample (only allowed in syntax 1). In this case, the selected subsample
will be reweighted with respect to the overall sample (rather than with
respect to the other subsample).
{marker pop}{...}
{phang}
{opt population(spec)} is required in syntax 2. Use this option to specify
the size of the population as well the population averages to which the
sample should be reweighted. The syntax of {it:spec} is
[{it:popsize}{cmd::}] {help numlist:{it:numlist}}
{pmore}
where {it:popsize} is the size of the population and {it:numlist} provides
the population averages of the variables. {it:numlist} must contain one value
for each variable. If {it:popsize} is omitted, it will be set to the sum of
weights in the sample.
{marker tau}{...}
{phang}
{opt tau(spec)} specifies a custom target sum of weights for the balancing
weights within the reweighted sample. {it:spec} may either be {it:#} ({it:#}>0)
or one of {cmd:Wref} (sum of base weights in the reference sample), {cmd:W}
(sum of base weights in the reweighted sample), {cmd:Nref}
(number of rows the reference sample), or {cmd:N} (number of rows the reweighted
sample). The default is {cmd:Wref}.
{marker scales}{...}
{phang}
{opt scales(spec)} determines the scales to be used for standardization during
estimation (unless {cmd:nostd} is specified) and for computation of
standardized differences in the balancing table. {it:spec}
may either be a {it:{help numlist}} containing custom values (one for each
term in the model; the values must be positive) or, alternatively,
{cmdab:m:ain} (use standard deviations from the main sample),
{cmdab:r:eference} (use standard deviations from the reference sample),
{cmdab:a:verage} (use standard deviations averaged between the two samples),
{cmdab:w:average} (use standard deviations averaged between the two
samples, weighted by sample size), {cmdab:p:ooled} (use standard deviations
from the pooled sample). {cmd:reference}, {cmd:average}, {cmd:waverage},
and {cmd:pooled} are only allowed in syntax 1. Standard deviations are
computed using population formulas (division by N rather than N-1). Scales
equal to 0 will be reset to 1. The default is {cmd:main}.
{marker tar}{...}
{phang}
{opt targets(options)} specifies the types of moments to be balanced. {it:options}
are:
{cmdab:m:ean} (the default)
{cmdab:v:ariance} (implies {cmd:mean})
{cmdab:s:keweness} (implies {cmd:mean} and {cmd:variance})
{cmdab:c:ovariance} (implies {cmd:mean})
{pmore}
By default, only the means of the specified variables will be balanced. If you
type, for example, {cmd:targets(variance)}, then the variances of the variables
will be balanced in addition to the means. Balancing of higher moments and
covariances is implemented by adding extra terms to
{it:varlist} before running the balancing algorithm. For example, {cmd:variance} will add
{cmd:c.}{it:varname}{cmd:#}{cmd:c.}{it:varname} for each continuous variable
in {it:varlist} (skipping omitted terms). Likewise, {cmd:covariance} will add
{cmd:c.}{it:varname1}{cmd:#}{cmd:c.}{it:varname2} for each combination of
continuous variables. Factor variables will be ignored by
{cmd:variance} and {cmd:skewness}, but {cmd:covariance} will consider them
and add appropriate interaction terms such as
{cmd:1.}{it:fvvar}{cmd:#}{cmd:c.}{it:varname} (skipping base levels).
{pmore}
If option {cmd:targets()} is specified, interaction terms such as
{cmd:i.}{it:fvvar}{cmd:#}{cmd:c.}{it:varname} are not allowed in
{it:varlist}. However, interactions are allowed if option {cmd:targets()}
is omitted. For example, you could type
{com}c.hours##c.tenure i.south i.south#c.tenure{txt}
{pmore}
to balance the means of {cmd:hours} and {cmd:tenure}, the covariance between
{cmd:hours} and {cmd:tenure}, the proportions of the levels of {cmd:south},
as well as the averages of {cmd:tenure} within levels of {cmd:south}
(see {helpb fvvarlist:[U] 11.4.3 Factor variables} for details on notation). That is,
you can use custom interactions as an alternative to option
{cmd:targets()} if you want to have more control over the exact configuration
of moments to be balanced.
{marker adj}{...}
{phang}
[{cmd:no}]{opth adjust(numlist)} selects the terms to be balanced. Use this
option if you want to construct weights such that only a subset of terms is
adjusted, while keeping the others fixed. {it:numlist} provides the indices
of the relevant terms. For example, in a model with three variables, to adjust
the means of the first two variables and keep the mean of the third variable
fixed, type {cmd:adjust(1 2)} or, equivalently, {cmd:noadjust(3)}. Keeping
terms fixed leads to different results than excluding the terms from the
model.
{marker repoptions}{...}
{dlgtab:Reporting}
{phang}
{opt level(#)} specifies the confidence level, as a percentage, for
confidence intervals. The default is {cmd:level(95)} or as set by
{helpb set level}.
{phang}
{opt noheader} suppresses the display of the header.
{phang}
{opt nowtable} suppress the display of the summary table of balancing weights.
{phang}
{opt notable} suppresses the display of the coefficient table.
{marker displayopts}{...}
{phang}
{it:display_options} are standard reporting options to be applied to the
coefficient table, such as {cmd:eform}, {cmd:cformat()}, or
{cmd:coeflegend}; see {help eform_option:{bf:[R]} {it:eform_option}} and
the Reporting options in {helpb estimation options:[R] Estimation options}.
{marker baltab}{...}
{phang}
{cmd:baltab} displays a balancing table in addition
to the table of coefficients. The balancing table contains for each term
the target value, the unbalanced value, the standardized difference between
the target value and the unbalanced value, the balanced value, and the
standardized difference between the target value and the balanced value.
{dlgtab:VCE/SE}
{marker vce}{...}
{phang}
{opt vce(vcetype)} determines how standard errors are computed. {it:vcetype} may be:
{opt r:obust}
{opt cl:uster} {it:clustvar}
{opt none}
{pmore}
{cmd:vce(robust)}, the default, computes standard
errors based on influence functions. Likewise, {bind:{cmd:vce(cluster} {it:clustvar}{cmd:)}}
computes standard errors based on influence function allowing for intragroup
correlation, where {it:clustvar} specifies to which group each observation
belongs. {cmd:vce(none)} omits the computation of standard errors.
{phang}
{opt cluster(clustvar)} can be used as a synonym for {cmd:vce(cluster} {it:clustvar}{cmd:)}.
{phang}
{cmd:nose} omits the computation of standard errors. Use this option to
save computer time. {cmd:nose} is a synonym for {cmd:vce(none)}.
{dlgtab:Generate}
{phang}
{opth generate(newvar)} stores the balancing weights in {it:newvar}. Alternatively,
use command {cmd:predict} to generate the balancing weights after estimation.
{pmore}
In syntax 1, weights will be filled in for both the reweighted
subsample and the reference subsample, using a copy of the base weights
for the latter (or 1 if there are no base weights).
{marker ifgen}{...}
{phang}
{opt ifgenerate(names)} stores the influence functions of the
coefficients. {it:names} is either a list of (new) variable names
or {help newvarlist##stub*:{it:stub}}{cmd:*} to create names {it:stub}{cmd:1},
{it:stub}{cmd:2}, etc. Alternatively, use command {cmd:predict} with option
{cmd:ifs} to generate the influence functions after estimation. In any case, the
influence functions will be scaled in a way such that command {helpb total} can be
used to estimate the variance-covariance matrix.
{phang}
{opt nodescribe} suppresses the list of generated variables that is displayed
in the output by default when {cmd:generate()} or {cmd:ifgenerate()} is specified.
{phang}
{opt replace} allows replacing existing variables.
{marker optimoptions}{...}
{dlgtab:Optimization}
{phang}
{opt btolerance(#)} sets the balancing tolerance. Balance is achieved if
the balancing loss is smaller than the balancing tolerance. The
default is {cmd:btolerance(1e-6)}.
{marker ltype}{...}
{phang}
{opt ltype(ltype)} sets the type of loss function to be used to evaluate
balancing. {it:ltype} can be {cmdab:r:eldif} (maximum relative difference), {cmdab:a:bsdif} (maximum
absolute difference), or {cmdab:n:orm} (Euclidean norm of differences). The default is
{cmd:reldif}.
{marker etype}{...}
{phang}
{opt etype(etype)} selects the evaluator to be used to fit the
coefficients. {it:etype} can be
{cmd:bl} (evaluator based on the balancing loss), {cmd:wl} (evaluator based
on distribution of weights), {cmd:mm} (method of moments evaluator), or
{cmd:mma} (method of moments evaluator including the intercept). The
default is {cmd:bl}. Irrespective of the choice of evaluator, balancing loss
will be used to evaluate the final fit.
{phang}
{opt iterate(#)} specifies the maximum number of iterations. Error will be returned
if convergence is not reached within the specified maximum number of
iterations. The default is as set by {helpb set maxiter}.
{phang}
{opt ptolerance(#)} specifies the convergence tolerance for the coefficient
vector. Convergence is reached if {cmd:ptolerance()} or {cmd:vtolerance()}
is satisfied. See {helpb mf_optimize##i_ptol:optimize()} for details. The
default is {cmd:ptolerance(1e-6)}.
{phang}
{opt vtolerance(#)} specifies the convergence tolerance for the minimization
criterion. Convergence is reached if {cmd:ptolerance()} or {cmd:vtolerance()}
is satisfied. See {helpb mf_optimize##i_ptol:optimize()} for details. The
default is {cmd:vtolerance(1e-7)} in case of {cmd:etype(bl)} and
{cmd:vtolerance(1e-10)} else.
{phang}
{cmd:difficult} uses a different stepping algorithm in nonconcave regions. See
the singular H methods in {helpb mf_optimize##i_singularH:optimize()} and
the description of the {cmd:difficult} option in {helpb maximize}.
{phang}
{cmd:nostd} omits standardization of the data during estimation. Specifying
{cmd:nostd} is not recommended.
{phang}
{opt nolog} suppresses the display of progress information.
{phang}
{opt relax} causes {cmd:ebalfit} to proceed even if convergence or balance
is not achieved. {cmd:ebalfit} uses formulas assuming balance when
computing influence functions and standard errors. The stored influence functions
and reported standard errors will be invalid if balance has not been achieved.
{phang}
{cmd:nowarn} suppresses any "convergence not achieved" or "balance not achieved"
messages. This is only relevant if option {cmd:relax} has been specified.
{title:Examples}
{pstd}
Reweight the sample of unionized workers such that the proportion with college
degree as well as the averages of working hours,
work experience, and tenure are the same as for non-unionized workers.
. {stata sysuse nlsw88, clear}
. {stata ebalfit i.collgrad hours ttl_exp tenure, by(union) swap baltab}
{pstd}
As indicated by the balancing loss and illustrated in the balancing table, perfect
balance has been achieved. We can generate the balancing weights and confirm manually
that the weights balance the data:
. {stata predict wbal}
. {stata tabstat collgrad hours ttl_exp tenure [aw=wbal], by(union) nototal}
. {stata drop wbal}
{pstd}
Balance variances and covariances in addition to the means:
. {stata ebalfit i.collgrad hours ttl_exp tenure, by(union) swap targets(variance covariance)}
. {stata predict wbal}
. {stata corr collgrad hours ttl_exp tenure if union==0, cov}
. {stata corr collgrad hours ttl_exp tenure [aw=wbal] if union==1, cov}
. {stata drop wbal}
{pstd}
Again, perfect balance could be achieved. The slight differences between the
covariance tables for the two groups are because {helpb corr} normalizes
the weights by the number of (physical) observations (if {helpb corr} would
treat the sum of weights as the sample size, the results would be identical).
{pstd}
Reweight a sample to arbitrary target values (e.g. population averages obtained
from a census):
. {stata "ebalfit 1.collgrad hours ttl_exp tenure, population(1e7: .30 40 10 5) baltab"}
{title:Stored results}
{pstd}
{cmd:ebalfit} saves the following results in {cmd:e()}.
{synoptset 20 tabbed}{...}
{p2col 5 20 24 2: Scalars}{p_end}
{synopt:{cmd:e(N)}}number of observations{p_end}
{synopt:{cmd:e(W)}}sum of weights{p_end}
{synopt:{cmd:e(N_clust)}}number of clusters (if {cmd:vce(cluster)}){p_end}
{synopt:{cmd:e(k_eq)}}number of equations in {cmd:e(b)} (always equal to 1){p_end}
{synopt:{cmd:e(k_omit)}}number of omitted terms{p_end}
{synopt:{cmd:e(loss)}}balancing loss at final fit{p_end}
{synopt:{cmd:e(btolerance)}}setting from {cmd:btolerance()}{p_end}
{synopt:{cmd:e(balanced)}}1 if balance achieved, 0 else{p_end}
{synopt:{cmd:e(tau)}}target sum of weights{p_end}
{synopt:{cmd:e(wsum)}}sum of balancing weights{p_end}
{synopt:{cmd:e(wavg)}}average of balancing weights{p_end}
{synopt:{cmd:e(wmin)}}minimum of balancing weights{p_end}
{synopt:{cmd:e(wmax)}}maximum of balancing weights{p_end}
{synopt:{cmd:e(cv)}}coefficient of variation of balancing weights{p_end}
{synopt:{cmd:e(deff)}}DEFF (design effect) of balancing weights{p_end}
{synopt:{cmd:e(ptoleranc)}}setting from {cmd:ptolerance()}{p_end}
{synopt:{cmd:e(vtolerance)}}setting from {cmd:vtolerance()}{p_end}
{synopt:{cmd:e(maxiter)}}setting from {cmd:iterate()}{p_end}
{synopt:{cmd:e(iter)}}number of iterations{p_end}
{synopt:{cmd:e(value)}}value of minimization criterion at final fit{p_end}
{synopt:{cmd:e(converged)}}1 if convergence achieved, 0 else{p_end}
{synopt:{cmd:e(df_m)}}model degrees of freedom (unless {cmd:nose}){p_end}
{synopt:{cmd:e(chi2)}}chi-squared value of model test (unless {cmd:nose}){p_end}
{synopt:{cmd:e(p)}}p-value for model test (unless {cmd:nose}){p_end}
{synopt:{cmd:e(rank)}}rank of {cmd:e(V)} (unless {cmd:nose}){p_end}
{synoptset 20 tabbed}{...}
{p2col 5 20 24 2: Macros}{p_end}
{synopt:{cmd:e(cmd)}}{cmd:ebalfit}{p_end}
{synopt:{cmd:e(predict)}}{cmd:ebalfit_p}{p_end}
{synopt:{cmd:e(cmdline)}}command as typed{p_end}
{synopt:{cmd:e(varlist)}}names of balancing variables{p_end}
{synopt:{cmd:e(by)}}name of variable identifying subsamples{p_end}
{synopt:{cmd:e(balsamp)}}subsample to be reweighted{p_end}
{synopt:{cmd:e(refsamp)}}reference subsample{p_end}
{synopt:{cmd:e(adjust)}}indices of adjusted terms, or {cmd:"."} (all){p_end}
{synopt:{cmd:e(noadjust)}}indices of non-adjusted terms{p_end}
{synopt:{cmd:e(ltype)}}{cmd:reldif}, {cmd:absdif}, or {cmd:norm}{p_end}
{synopt:{cmd:e(etype)}}{cmd:bl}, {cmd:wl}, {cmd:mm}, or {cmd:mma}{p_end}
{synopt:{cmd:e(difficult)}}{cmd:difficult} or empty{p_end}
{synopt:{cmd:e(nostd)}}{cmd:nostd} or empty{p_end}
{synopt:{cmd:e(scale)}}{cmd:main}, {cmd:reference}, {cmd:average},
{cmd:waverage}, {cmd:pooled}, or {cmd:user}{p_end}
{synopt:{cmd:e(generate)}}name of variable containing balancing weights{p_end}
{synopt:{cmd:e(ifgenerate)}}names of variables containing influence functions{p_end}
{synopt:{cmd:e(vce)}}{it:vcetype} specified in {cmd:vce()}{p_end}
{synopt:{cmd:e(vcetype)}}title used to label Std. Err.{p_end}
{synopt:{cmd:e(clustvar)}}name of cluster variable{p_end}
{synopt:{cmd:e(wtype)}}weight type{p_end}
{synopt:{cmd:e(wexp)}}weight expression{p_end}
{synopt:{cmd:e(title)}}title in estimation output{p_end}
{synopt:{cmd:e(properties)}}{cmd:b} or {cmd:b V}{p_end}
{synoptset 20 tabbed}{...}
{p2col 5 20 24 2: Matrices}{p_end}
{synopt:{cmd:e(b)}}estimates{p_end}
{synopt:{cmd:e(V)}}variance-covariance matrix of estimates (unless {cmd:nose}){p_end}
{synopt:{cmd:e(omit)}}indicator for omitted terms{p_end}
{synopt:{cmd:e(scales)}}scales used for standardization{p_end}
{synopt:{cmd:e(_N)}}number of (physical) observations in subsamples{p_end}
{synopt:{cmd:e(_W)}}sum of weights in subsamples{p_end}
{synopt:{cmd:e(baltab)}}balancing table{p_end}
{synoptset 20 tabbed}{...}
{p2col 5 20 24 2: Functions}{p_end}
{synopt:{cmd:e(sample)}}estimation sample{p_end}
{p2colreset}{...}
{title:References}
{phang}
Hainmueller, J. (2012). Entropy Balancing for Causal Effects: A
Multivariate Reweighting Method to Produce Balanced Samples in
Observational Studies. Political Analysis
20(1): 25-46. DOI: {browse "http://doi.org/10.1093/pan/mpr025":10.1093/pan/mpr025}
{p_end}
{phang}
Hainmueller, J., Y. Xu (2011). EBALANCE: Stata module to perform Entropy
reweighting to create balanced samples. Statistical Software Components
S457326, Boston College Department of Economics. {browse "http://ideas.repec.org/c/boc/bocode/s457326.html"}.
{p_end}
{phang}
Hainmueller, J., Y. Xu (2013). ebalance: A Stata Package for Entropy Balancing.
Journal of Statistical Software
54(7):1-18. DOI: {browse "http://doi.org/10.18637/jss.v054.i07":10.18637/jss.v054.i07}
{p_end}
{phang}
Jann, B. (2021). Entropy balancing as an estimation command. University of
Bern Social Sciences Working Papers 39. Available from
{browse "http://ideas.repec.org/p/bss/wpaper/39.html"}.
{p_end}
{title:Author}
{pstd}
Ben Jann, University of Bern, ben.jann@unibe.ch
{pstd}
Thanks for citing this software as
{pmore}
Jann, B. (2021). ebalfit: Stata module to perform entropy balancing. Statistical
Software Components S458975, Boston College Department of Economics. Available
from {browse "http://ideas.repec.org/c/boc/bocode/s458975.html"}.
{pstd}
or
{pmore}
Jann, B. (2021). Entropy balancing as an estimation command. University of
Bern Social Sciences Working Papers 39. Available from
{browse "http://ideas.repec.org/p/bss/wpaper/39.html"}.
{title:Also see}
{psee}
Official Stata:
{helpb estcom},
{helpb teffects}
{p_end}
{psee}
SSC Archive:{space 4}
{helpb ebalance},
{helpb kmatch},
{helpb moremata}, {helpb mf_mm_ebalance:mm_ebalance()},
{helpb mf_mm_wbal:mm_wbal()},
{helpb mf_mm_ebal:mm_ebal()}