Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: lpoly and nonmissing fitted values where the dependent variable is missing
From
[email protected] (Yulia Marchenko, StataCorp LP)
To
[email protected]
Subject
Re: st: lpoly and nonmissing fitted values where the dependent variable is missing
Date
Mon, 09 Aug 2010 11:09:14 -0500
Alex Olssen <[email protected]> asks why -lpoly- produces smoothed values
outside the range of <x>-values (the variable -length- below) as defined by an
-if- statement:
> I am doing a regression discontinuity analysis and want to understand how
> -lpoly- is working. I use the -lpoly- options -gen- and -at- to create
> fitted values for my local linear regression. Due to the nature of
> regression discontinuity I look at two subgroups separately. Fitted values
> are generated to observation that are even outside the subgroup. I want to
> understand how it chooses where to fit them.
>
> For example,
>
> sysuse auto, clear
> lpoly price length if length<190, ker(rec) deg(1) bwidth(12) gen(L) at(length)
> sort length
> br L length
>
> Cars with lengths up to 212cm long have fitted values. Does anyone know why?
>
> Note the if statement causes no problems. If I gen lengthlt190=length if
> length<190 and then lpoly price lengthlt190 the results are identical.
-lpoly- uses two notions of a sample: an estimation sample and a grid sample.
An estimation sample defines a set of observations to be used in local
weighted linear regression fits. A grid sample defines a set of grid points
at which the smooth will be evaluated. To link this to the documentation
(-[R] lpoly-, pp. 939-940), the estimation sample defines the set of x_i's
used to compute regression coefficients in formula (2) in the documentation
and the grid sample defines the set of grid points x_o.
An -if- condition only affects the estimation sample and not the grid sample.
To restrict the range of grid points, Alex should create a new variable in the
desired range and use it in the -at()- option. Continuing Alex's example, we
can use the -lengthlt190- variable in the -at()- option to restrict the range
of 'at' values to those less than 190:
. sysuse auto, clear
. gen lengthlt190=length if length<190
. lpoly price length if length<190, ///
ker(rec) deg(1) bwidth(12) gen(L) at(lengthlt190)
-- Yulia
[email protected]
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/