```.-
help for ^bcoeff^
.-

Saving regression coefficients to new variable
----------------------------------------------

^bcoeff^ yvar x1var [ otherxvars ] [^if^ exp] [^in^ range]
^, by(^byvarlist^) g^enerate^(^newvar^)^ [ ^m^odel^(^model^) dxmin(^#^)
> ^
^n^min^(^#^) s^e^(^newvar^) c^ons^(^newvar^) d^ouble ^miss^ing ]

Description
-----------

^bcoeff^ saves in a new variable regression coefficients (more generally,
the b coefficient from a regression-like model) for each of several groups
of observations.

Remarks
-------

Consider a regression ^regress y x1 x2 x3^. The regression produces,
among other results, the b coefficient of ^y^ on ^x1^ given ^x2^ and ^x3^.
This is left behind in ^_b[x1]^.

Now consider a group variable ^g^.

. ^sort g^
. ^by g: regress y x1 x2 x3^

produces a set of regressions, one for each group defined by ^g^. The
b coefficient of ^y^ on ^x1^ given ^x2^ and ^x3^ for each group is left
behind in ^_b[x1]^, but overwritten by each successive regression. ^bcoeff^
picks up each b coefficient for each group and puts them in a new variable.
Optionally, it also picks up the standard error of that coefficient, from
^_se[x1]^, and/or the constant (intercept) of the model, from ^_b[_cons]^.

Note that in some cases, for example in the output of ^regress^ given a
constant ^y^ and a variable ^x1^, the standard error is reported as ^.^ when
strictly it is ^0^. This is a misfeature of Stata. ^bcoeff^ uses the vector
^_se^, which in such cases correctly reports ^0^.

Note also that covariates may be dropped from a model, for example if the
number of data points is fewer than the number of parameters to be estimated.
In such cases, the b coefficient is reported as ^0^. Users may wish to use
the ^nmin( )^ option to guard against this problem.

With ^bcoeff^ which variables are named first and second is crucial. The
first-named variable is the response variable. The second-named variable is
the covariate for which the regression coefficient is saved.

Options
-------

^by(^byvarlist^)^ specifies one or more variables that define distinct groups
of observations. This is a required option.

^generate(^newvar^)^ specifies a new variable to hold the regression
coefficients. This is a required option.

^model(^model^)^ indicates the model command used. It defaults to ^regress^.
Any model may be used that leaves behind a vector in ^_b^.

^dxmin(^#^)^ specifies a minimum required range of x1var for each group.
Regressions will not be performed if the actual range is less than or equal
to this. Default is 0.

^nmin(^#^)^ specifies a minimum required number of observations for each group.
>
Regressions will not be performed if the actual number is less than this.
Default is 2.

^se(^newvar^)^ specifies a new variable to hold the standard error of each
b coefficient.

^cons(^newvar^)^ specifies a new variable to hold the constant (intercept)
from each model.

^double^ specifies that each variable generated is to be of type double.

^missing^ indicates that observations with missing values for byvarlist
(either ^.^ or ^""^) are to be included in calculations. The default is
to exclude such observations.

Examples
--------

. ^bcoeff weight age, by(id) g(b)^
. ^bcoeff weight age, by(id) g(b) se(se)^

Authors
-------

Zhiqiang Wang
Menzies School of Health Research
Darwin Australia
email: wang@@menzies.edu.au

Nicholas J. Cox
University of Durham, U.K.
email: n.j.cox@@durham.ac.uk

```