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]
st: RE: RE: trying to understand -lpoly- with degree zero
From
Dan Weitzenfeld <[email protected]>
To
"[email protected]" <[email protected]>
Subject
st: RE: RE: trying to understand -lpoly- with degree zero
Date
Tue, 13 Apr 2010 12:27:35 -0500
That did it. Thanks so much.
Next time I'll check the Stata manual before Wikipedia =)
-Dan
________________________________________
From: [email protected] [[email protected]] On Behalf Of philippe van kerm [[email protected]]
Sent: Tuesday, April 13, 2010 12:11 AM
To: [email protected]
Subject: st: RE: trying to understand -lpoly- with degree zero
Dan,
The kernel function you are using is what Stata would typically refer to as the 'alternative Epanechnikov kernel'. See under -kdensity- in the manual for kernel definitions.
Try adding the -kernel(epan2)- option to your -lpoly- call.
Philippe
> -----Original Message-----
> From: [email protected] [mailto:owner-
> [email protected]] On Behalf Of Dan Weitzenfeld
> Sent: Tuesday, April 13, 2010 1:20 AM
> To: [email protected]
> Subject: st: trying to understand -lpoly- with degree zero
>
> Hi All,
> I'm trying to reverse-engineer the lpoly command, so that I can code it
> in a different language.
> Specifically, I'm trying to mimic the command with the default options
> of degree(0) and kernel(epanechnikov).
> Within -help lpoly-, it says:
>
>
> degree(#) specifies the degree of the polynomial to be used in the
> smoothing. The default is degree(0), meaning local-mean
> smoothing.
>
> I understand this to mean that at each point in the smoothing grid, a
> kernel-weighted mean is taken. For my purposes, it makes sense to use
> every point in the dataset as a point in the grid. But when I tried to
> code that - see below - my resulting curve is less smooth than the
> output of -lpoly- with degree 0, same kernel, same half-width.
>
> According to wikipedia, the epanechnikov kernel is:
> K(u) = (3/4)(1-u^2)
> Am I scaling the kernel incorrectly?
>
> Thanks in advance,
> Dan
>
> *----------------------------------------------------
>
> webuse motorcycle, clear
> *my dataset is a constant 60 hz; changing this dataset to mimic
> replace time = _n*(1/60)
> local halfwidth = .04
> local halfwidth_squared = `halfwidth'*`halfwidth'
> qui gen fake_lpoly = .
> qui count
> local vals = r(N)
> forvalues i = 1(1)`vals' {
> local time = time[`i']
> capture drop distance* kernel product
> qui gen distance_from_point = time-`time'
> qui gen distance_sq = distance_from_point*distance_from_point
> *generating epanechnikov kernel, scaled to local halfwidth
> qui gen kernel = (3/4)*(1- (distance_sq/`halfwidth_squared'))
> qui gen product = kernel*accel if kernel>=0
> qui sum product
> local numerator = r(sum)
> qui sum kernel if kernel>=0
> local denominator = r(sum)
> qui replace fake_lpoly = `numerator'/`denominator' in `i'
> }
>
> *compare with -LPOLY-
> sort time
> capture drop x real_lpoly
> lpoly accel time, bw(`halfwidth') n(`vals') gen(x real_lpoly) nogra
> twoway (line real_lpoly fake_lpoly time) (scatter accel time)
>
> *--------------------------------------------------
>
> This email message is confidential and is intended only for the named
> recipient(s) above, and may contain information that is privileged,
> attorney work product or exempt from disclosure under applicable law.
> The contents of this email are for discussion purposes only and shall
> not create a legally binding commitment or agreement of EmSense
> Corporation, which shall require EmSense Corporation management
> approval and a formal written agreement signed by both parties. If you
> have received this message in error, or are not the named recipient(s),
> please immediately notify the sender and delete this message from your
> computer.
>
> *
> * 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/
*
* 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/
This email message is confidential and is intended only for the named recipient(s) above, and may contain information that is privileged, attorney work product or exempt from disclosure under applicable law. The contents of this email are for discussion purposes only and shall not create a legally binding commitment or agreement of EmSense Corporation, which shall require EmSense Corporation management approval and a formal written agreement signed by both parties. If you have received this message in error, or are not the named recipient(s), please immediately notify the sender and delete this message from your computer.
*
* 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/