{smcl}
{* 05nov2003}{...}
{hline}
help for {hi:locpoly}{right:(SJ3-4: st0053)}
{right:dialog: {dialog locpoly}}
{hline}

{title:Kernel-weighted local polynomial regression}

{p 8 17 2}{cmd:locpoly} {it:yvar} {it:xvar} 
[{cmd:if} {it:exp}] [{cmd:in} {it:range}] [{cmd:,} 
{cmdab:d:egree:(}{it:#}{cmd:)} {cmdab:w:idth:(}{it:#}{cmd:)}
{cmd:n(}{it:#}{cmd:)} {cmd:at(}{it:atvar}{cmd:)}
{cmdab:gen:erate:(}[{it:newvarx}] {it:newvary}{cmd:)}
[ {cmdab:ep:anechnikov} | {cmdab:bi:weight} | {cmdab:cos:ine} |
{cmdab:gau:ssian} | {cmdab:par:zen} | {cmdab:rec:tangle} | {cmdab:tri:angle} ]
{cmdab:ado:only} {cmdab:nog:raph} {cmdab:nos:catter}
{cmd:plot(}{it:plot}{cmd:)} {it:line_options} {it:twoway_options} ]

{title:Description}

{p 4 4 2}
{cmd:locpoly} produces kernel-weighted local polynomial smooths.

{title:Options}

{p 4 8 2}
{cmd:degree(}{it:#}{cmd:)} specifies the degree of the polynomial to be 
used in the smoothing.  Zero is the default, meaning local mean smoothing.

{p 4 8 2}
{cmd:width(}{it:#}{cmd:)} specifies the halfwidth of the kernel, the
width of the smoothing window around each point.  If {cmd:width()} is not
specified, then the "default" width is used; see {hi:[R] kdensity}.  This 
default is entirely inappropriate for local polynomial smoothing.  
Roll your own.

{p 4 8 2}
{cmd:n(}{it:#}{cmd:)} specifies the number of points at which the
smooth is to be evaluated.  The default is {cmd:min(_N,50)}.

{p 4 8 2}
{cmd:at(}{it:atvar}{cmd:)} specifies a variable that contains the values
at which the smooth should be evaluated.  {cmd:at()} allows you to more
easily obtain smooths for different variables or different
subsamples of a variable and then overlay the estimates for
comparison.

{p 4 8 2}
{cmd:generate(}[{it:newvarx}] {it:newvary}{cmd:)} stores the results of
the estimation.  {it:newvary} will contain the estimated smooth.  
{it:newvarx} will contain the smoothing grid. If 
{cmd:at()} is not specified, then both {it:newvarx} and {it:newvary} must
be specified.  Otherwise, only {it:newvary} is to be specified.

{p 4 8 2}
{cmd:epanechnikov}, {cmd:biweight}, {cmd:cosine}, {cmd:gaussian},
{cmd:parzen}, {cmd:rectangle}, and {cmd:triangle} specify the kernel.
(Actually, {cmd:cosine} specifies the cosine trace as there is no such thing
as a cosine kernel.)  By default, {cmd:epanechnikov}, meaning the Epanechnikov
kernel, is used.

{p 4 8 2}
{cmd:adoonly} suppresses the use of the Stata plugin and instead performs the
necessary regressions entirely using ado code.  That is, the file
{cmd:locpoly.ado} contains a subroutine written in the ado language, and this
subroutine is also implemented as a plugin.  Both produce the same results,
but the plugin is faster.  Thus, the {cmd:adoonly} option provides endless
amusement to those performing speed comparisons.

{p 4 8 2}
{cmd:nograph} suppresses drawing the graph.  This option is often used
in conjunction with {cmd:generate()}.

{p 4 8 2}
{cmd:noscatter} suppresses superimposing a scatterplot of the observed 
data over the smooth.  This option is useful when the number of resulting 
points would be so large so as to clutter the graph.

{p 4 8 2}
{cmd:plot(}{it:plot}{cmd:)} provides a way to add other plots to the generated
graph; see help {help plot_option}.

{p 4 8 2}
{it:line_options} affect the rendition of the plotted line(s); see help
{help line}.

{p 4 8 2}
{it:twoway_options} are any of the options documented in help
{help twoway_options} excluding {cmd:by()}.  These include options for titling
the graph (see help {help title_options}) and options for saving the graph to
disk (see help {help saving_option}).


{title:Examples}

{p 4 8 2}{cmd:. locpoly mpg weight}

{p 4 8 2}{cmd:. locpoly mpg weight, degree(2) width(300) generate(xgrid yhat)}

{title:Also see}

    Manual:  {hi:[R] kdensity}, {hi:[R] lowess}

{p 4 13 2}Online:  help for {help graph}
