help margintegrate

Title margintegrate -- Estimate generalized additive non-parametric functions of two dependent variables; output graphical representation of E(yvar|xvar1).

Syntax margintegrate yvar xvar1 xvar2 [if] [in] , bw(numlist) [options]

Description margintegrate estimates a non-parametric regression of yvar on xvar1 and xvar2, treating the expectation of yvar|xvar1 as the quantity of interest. It integrates out the effect of the "nuisance" variable xvar2 by means of marginal integration, following the methods outlined in Linton and Neilsen (1996), Tjostheim and Auestad (1994); see also Li and Racine (2007, 283-289).

Required Argument bw(numlist) must contain two values, bw_1 and bw_2, the bandwidths for xvar1 and xvar2, respectively. The literature on generalized additive models has suggested using a multiple of the standard deviation as the bandwidth each independent variable of interest (i.e. .7, .9, 1.1 times sd); this solution is not optimal in the mean squared error sense, but visual inspection can provide a good guide to appropriate levels of smoothing.

Options n(integer 50) contains the number of points at which the estimation will be executed. The maximum is 800; default is 50. The marginal integration estimator requires n x n regression smoothes to get predicted values, so n(100) estimates 10,000 regression smoothes. Points are chosen according to percentile values of the data sorted by xvar1 and xvar2.

generate(varlist) can contain up to two variable names, the first for the predicted value of the estimator, the second for the pointwise estimate of the variance.

ci(level) shows pointwise confidence intervals at specified level, assuming asymptotic normal distribution of the expected value. If boot is not specified, the estimator uses asymptotic variance (see Li and Racine (2007, p.285)) to construct confidence intervals; this expression can be fragile, especially if the support for either of the independent variables is not compact.

boot(integer) estimates confidence intervals by bootstrapping original data integer number of times.

trim(real) specifies that a total of real percent of the data will be trimmed for the purposes of estimation; trims real/2 percent at top and bottom of the data sorted by xvar1.

nograph specifies no graphical output: predicted values will be calculated and stored if generate(varlist) is specified; use to incorporate your own graph preferences.

Examples Estimate a locally linear regression of y on x1 and x2 and use the asymptotic variance to show 95% confidence intervals. Use 100 points to in the distribution of x1 and x2 to derive estimates.

. margintegrate y x1 x2, bw(4 5) n(100) ci(95)

Estimate a locally linear regression of y on x1 and x2 without producing any graphical output, but using the bootstrap procedure to estimate pointwise variances. Use 100 points to in the distribution of x1 and x2 to derive estimates.