*! version 1.0 01dec2012
help sls

Title

sls -- Semiparametric Least Squares from Ichimura, 1993.

Syntax

sls
depvar indepvars
[if] [in]
[, options]

Main
trim(#,#) lower and upper trimming centiles. Default is trim(1,99).

pilot use pilot bandwidth only. Default is simultaneous bandwidth estimation.

init(init_options) specify moptimize_init options for minimization.

Description

sls performs semi-parametric estimation as described in Ichimura's 1993 paper.
Kernel density estimates are calculated using a gaussian kernel.
The bandwidth parameter is estimated using a two-step
procedure. First, the index parameters are estimated using a plug-in optimal bandwidth
estimate. The bandwidth and index parameter estimates from this preliminary estimation are
used to construct bounds on the final bandwidth estimate. The final optimal bandwidth
parameter is estimated simultaneously with the index parameters. The bandwidth parameter
is chosen as the minimizer of the squared error objective function,
as described in Hardle, Hall, & Ichimura, 1993.

Because no functional form is assumed, parameters are not identified in location or scale. Only
ratios of coefficients are identified. To achieve identification, a normalization assumption
is required. This estimator does not estimate a constant term and restricts the coefficient
on the first independent variable to 1. At least two independent variables are required
to run the estimator. At least one independent variable must be continuous.

Options

Main

trim(#,#) sets the percentile bounds that identify boundary observations. These
observations are excluded from the value function in each iteration of the minimization
procedure. They are also excluded from variance estimates. Trimmed observations are included
in the the estimation of conditional expectation for non-trimmed observation. Users who
wish to completely exclude certain observations should use [if] [in] statements. The default
trimming centiles are (1,99). Bounds of 0 or 100 may be specified if no trimming is desired
on the lower or upper tail, respectively.

pilot specifies that the pilot bandwith calculation be used for the entire estimation
procedure. The pilot bandwidth is a plug-in estimate that follows the Silverman rule-of-thumb.
For actual bandwidth values, I used values given in lecture notes by Bruce E. Hansen.
The default procedure first goes through several iterations using the pilot bandwidth,
then minimizes bandwidth simultaneously with the squared error objective function.
This option follows the same procedure, but constrains the bandwidth to the final pilot
bandwidth estimate during the simultaneous minimization procedure.

init(init_options) passes moptimize_init options directly to moptimize problem.

Passing moptimize_init options directly provides total control over the optimization procedure.
These options take precedence over all pre-set minimization options.
These options may be used to specify initial values, add linear coefficient constraints, or change the optimization technique.
Because the bandwidth parameter is estimated simultaneously, the moptimize problem has two equations. The first equation
estimates index parameters and the second estimates the bandwidth. Equation number should be specified with setting
equation specific moptimize_init options.

init_options may contain one or more moptimize_init options, separated by spaces or commas.
In each option, the name of the moptimize problem, along with the subsequent comma, should be omitted.
Similarly, the characters "moptimize_init_" should be omitted from each init_option.
For example, the moptimize option, moptimize_init_search(M, {"on"|"off"}) would be specified as search("on") or search("off").

Example: Predicted Values

. sysuse auto

. sls mpg weight length displacement

. predict mpghat, ey

. predict Index , xb

. twoway (scatter mpg Index) (line mpghat Index , sort) , xtitle("Index") ytitle("MPG") legend(label(1 "Actual") label(2 "Predicted"))

Example: Init Options

. sysuse auto

. sls mpg weight length displacement, init( trace_coefs("on"), eq_coefs(1, (20,5)) , search("off") , conv_maxiter(50) )

References

Hansen, Bruce E. (2009).
“Lecture Notes on Nonparametrics 2: Kernel Density Estimation.”
University of Wisconsin.

Hardle, W., Hall, P., & Ichimura, H. (1993).
Optimal Smoothing in Single-Index Models.
The Annals of Statistics, 21(1), 157–178.

Ichimura, H. (1993).
Semiparametric least squares (SLS) and weighted SLS estimation of single-index models.
Journal of Econometrics, 58(1-2), 71–120.

Silverman, B. W. (1986).
Density Estimation.
London: Chapman and Hall.

Author

Michael Barker

Georgetown University

mdb96@georgetown.edu

https://github.com/michaelbarker/stata-sls

Also see

sls postestimation