**[R] sureg** -- Zellner's seemingly unrelated regression

__Syntax__

Basic syntax

**sureg** **(***depvar1* *varlist1***)** **(***depvar2* *varlist2***)** *...* **(***depvarN* *varlistN***)** [
*if*] [*in*] [*weight*]

Full syntax

**sureg** **(**[*eqname1***:**] *depvar1a* [*depvar1b* ... **=**] *varlist1* [**,** __nocons__**tant**]**)**
**(**[*eqname2***:**] *depvar2a* [*depvar2b* ... **=**] *varlist2* [**,** __nocons__**tant**]**)**
*...*
**(**[*eqnameN***:**] *depvarNa* [*depvarNb* ... **=**] *varlistN* [**,** __nocons__**tant**]**)**
[*if*] [*in*] [*weight*] [**,** *options*]

Explicit equation naming (*eqname***:**) cannot be combined with multiple
dependent variables in an equation specification.

*options* Description
-------------------------------------------------------------------------
Model
__i__**sure** iterate until estimates converge
__c__**onstraints(***constraints***)** apply specified linear constraints

df adj.
__sm__**all** report small-sample statistics
**dfk** use small-sample adjustment
**dfk2** use alternate adjustment

Reporting
__l__**evel(***#***)** set confidence level; default is **level(95)**
__cor__**r** perform Breusch-Pagan test
__nocnsr__**eport** do not display constraints
*display_options* control columns and column formats, row
spacing, line width, display of omitted
variables and base and empty cells, and
factor-variable labeling

Optimization
*optimization_options* control the optimization process; seldom used

__noh__**eader** suppress header table from above coefficient
table
__not__**able** suppress coefficient table
__coefl__**egend** display legend instead of statistics
-------------------------------------------------------------------------
*varlist1*, ..., *varlistN* may contain factor variables; see fvvarlist. You
must have the same levels of factor variables in all equations that
have factor variables.
*depvar* and the *varlists* may contain time-series operators; see tsvarlist.
**bootstrap**, **by**, **fp**, **jackknife**, **rolling**, and **statsby** are allowed; see
prefix.
Weights are not allowed with the **bootstrap** prefix.
**aweight**s are not allowed with the **jackknife** prefix.
**aweight**s and **fweight**s are allowed, see weight.
**noheader**, **notable**, and **coeflegend** do not appear in the dialog box.
See **[R] sureg postestimation** for features available after estimation.

__Menu__

**Statistics > Linear models and related > Multiple-equation models >**
**Seemingly unrelated regression**

__Description__

**sureg** fits seemingly unrelated regression models (Zellner 1962; Zellner
and Huang 1962; Zellner 1963). The acronyms SURE and SUR are often used
for the estimator.

__Options__

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

**isure** specifies that **sureg** iterate over the estimated disturbance
covariance matrix and parameter estimates until the parameter
estimates converge. Under seemingly unrelated regression, this
iteration converges to the maximum likelihood results. If this
option is not specified, **sureg** produces two-step estimates.

**constraints(***constraints***)**; see **[R] estimation options**.

+---------+
----+ df adj. +----------------------------------------------------------

**small** specifies that small-sample statistics be computed. It shifts the
test statistics from chi-squared and z statistics to F statistics and
t statistics. Although the standard errors from each equation are
computed using the degrees of freedom for the equation, the degrees
of freedom for the t statistics are all taken to be those for the
first equation.

**dfk** specifies the use of an alternative divisor in computing the
covariance matrix for the equation residuals. As an asymptotically
justified estimator, **sureg** by default uses the number of sample
observations (n) as a divisor. When the **dfk** option is set, a
small-sample adjustment is made and the divisor is taken to be
sqrt((n - k_i) * (n - k_j)), where k_i and k_j are the number of
parameters in equations i and j, respectively.

**dfk2** specifies the use of an alternative divisor in computing the
covariance matrix for the equation residuals. When the **dfk2** option
is set, the divisor is taken to be the mean of the residual degrees
of freedom from the individual equations.

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

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

**corr** displays the correlation matrix of the residuals between equations
and performs a Breusch-Pagan test for independent equations; that is,
the disturbance covariance matrix is diagonal.

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

*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**.

+--------------+
----+ Optimization +-----------------------------------------------------

*optimization_options* control the iterative process that minimizes the sum
of squared errors when **isure** is specified. These options are seldom
used.

__iter__**ate(***#***)** specifies the maximum number of iterations. When the
number of iterations equals *#*, the optimizer stops and presents
the current results, even if the convergence tolerance has not
been reached. The default value of **iterate(***#***)** is the current
value of **set maxiter**, which is **iterate(16000)** if **maxiter** has not
been changed.

__tr__**ace** adds to the iteration log a display of the current parameter
vector.

**nolog** suppresses the display of the iteration log.

__tol__**erance(***#***)** specifies the tolerance for the coefficient vector.
When the relative change in the coefficient vector from one
iteration to the next is less than or equal to *#*, the
optimization process is stopped. **tolerance(1e-6)** is the default.

The following options are available with **sureg** but are not shown in the
dialog box:

**noheader** suppresses display of the header reporting F statistics,
R-squared, and root mean squared error above the coefficient table.

**notable** suppresses display of the coefficient table.

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

__Examples__

Setup
**. sysuse auto**

Fit seemingly unrelated regression model
**. sureg (price foreign weight length) (mpg foreign weight) (displ**
**foreign weight)**

Using a shorthand syntax
**. sureg (price foreign weight length) (mpg displ = foreign weight)**

Using global macros
**. global price (price foreign weight length)**
**. global mpg (mpg foreign weight)**
**. global displ (displ foreign weight)**
**. sureg $price $mpg $displ**

With constraints
**. constraint 1 [price]foreign = [mpg]foreign**
**. constraint 2 [price]foreign = [displacement]foreign**
**. sureg (price foreign length) (mpg displacement = foreign weight),**
**const(1 2)**

__Stored results__

**sureg** stores the following in **e()**:

Scalars
**e(N)** number of observations
**e(k)** number of parameters
**e(k_eq)** number of equations in **e(b)**
**e(mss_***#***)** model sum of squares for equation *#*
**e(df_m***#***)** model degrees of freedom for equation *#*
**e(rss_***#***)** residual sum of squares for equation *#*
**e(df_r)** residual degrees of freedom
**e(r2_***#***)** R-squared for equation *#*
**e(F_***#***)** F statistic for equation *#* (**small** only)
**e(rmse_***#***)** root mean squared error for equation *#*
**e(dfk2_adj)** divisor used with VCE when **dfk2** specified
**e(ll)** log likelihood
**e(chi2_***#***)** chi-squared for equation *#*
**e(p_***#***)** p-value for equation *#*
**e(cons_***#***)** **1** if equation *#* has a constant, **0** otherwise
**e(chi2_bp)** Breusch-Pagan chi-squared
**e(df_bp)** degrees of freedom for Breusch-Pagan chi-squared test
**e(rank)** rank of **e(V)**
**e(ic)** number of iterations

Macros
**e(cmd)** **sureg**
**e(cmdline)** command as typed
**e(method)** **sure** or **isure**
**e(depvar)** names of dependent variables
**e(exog)** names of exogenous variables
**e(eqnames)** names of equations
**e(wtype)** weight type
**e(wexp)** weight expression
**e(corr)** correlation structure
**e(small)** **small**, if specified
**e(dfk)** **dfk** or **dfk2**, if specified
**e(properties)** **b V**
**e(predict)** program used to implement **predict**
**e(marginsok)** predictions allowed by **margins**
**e(marginsnotok)** predictions disallowed by **margins**
**e(marginsdefault)** default **predict()** specification for **margins**
**e(asbalanced)** factor variables **fvset** as **asbalanced**
**e(asobserved)** factor variables **fvset** as **asobserved**

Matrices
**e(b)** coefficient vector
**e(Cns)** constraints matrix
**e(Sigma)** Sigma hat, covariance matrix of residuals
**e(V)** variance-covariance matrix of the estimators

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

__References__

Zellner, A. 1962. An efficient method of estimating seemingly unrelated
regressions and tests for aggregation bias. *Journal of the American*
*Statistical Association* 57: 348-368.

------. 1963. Estimators for seemingly unrelated regression equations:
Some exact finite sample results. *Journal of the American*
*Statistical Association* 58: 977-992.

Zellner, A., and D. S. Huang. 1962. Further properties of efficient
estimators for seemingly unrelated regression equations.
*International Economic Review* 3: 300-313.