[Rd] bug (PR#13570)

Benjamin Tyner btyner at gmail.com
Wed Mar 11 02:09:22 CET 2009


Many thanks Brian for tracking this down. Was it fixed by

      c next line is not in current dloess
	        	  goto 7

in ehg136? If this needs to be in the netlib version as well, we should 
inform Eric Grosse.

While we're at it, there are a few more inconsistencies (not nearly as 
serious as PR#13570 so I hesitate to call them bugs) regarding the 
definition of leaf cell membership (certain .lt. should be .le. ) in 
ehg128, ehg137, and ehg138 (not currently used); it seems I neglected to 
mention these to Eric. If you are interested in these I can submit a 
patch and will notify Eric as well.

Finally, perhaps now is as good a time as any to point out that in the 
documentation, the bit about cross-terms in

    \item{drop.square}{for fits with more than one predictor and
        \code{degree=2}, should the quadratic term (and cross-terms) be
        dropped for particular predictors?

is incorrect -- cross terms are not dropped in this implementation of 
loess.

Thanks again,
Ben

Prof Brian Ripley wrote:
> I've found the discrepancy, so the patched code from current dloess is 
> now available in R-patched and R-devel.
>
> On Fri, 6 Mar 2009, Prof Brian Ripley wrote:
>
>> On Thu, 5 Mar 2009, Benjamin Tyner wrote:
>>
>>> Hi
>>>
>>> Nice to hear from you Ryan. I also do not have the capability to 
>>> debug on windows; however, there is a chance that the behavior you 
>>> are seeing is caused by the following bug noted in my thesis 
>>> (available on ProQuest; email me if you don't have access):
>>>
>>> "When lambda = 0 there are no local slopes to aid the blending 
>>> algorithm, yet the
>>> interpolator would still assume they were available, and thus use 
>>> arbitrary values
>>> from memory. This had implications for both fit and tr[L] 
>>> computation. In the
>>> updated code these are set equal to zero which seems the best 
>>> automatic rule when
>>> lambda = 0." [lambda refers to degree]
>>>
>>> I submitted a bug fix to Eric Grosse, the maintainer of the netlib 
>>> routines; the fixed lines of fortran are identified in the comments 
>>> at (just search for my email address):
>>>
>>> http://www.netlib.org/a/loess
>>>
>>> These fixes would be relatively simple to incorporate into R's 
>>> version of loessf.f
>>
>> The fixes from dloess even more simply, since R's code is based on 
>> dloess. Thank you for the suggestion.
>>
>> Given how tricky this is to reproduce, I went back to my example 
>> under valgrind.  If I use the latest dloess code, it crashes, but by 
>> selectively importing some of the differences I can get it to work.
>>
>> So it looks as if we are on the road to a solution, but something in 
>> the current version (not necessarily in these changes) is 
>> incompatible with the current R code and I need to dig further (not 
>> for a few days).
>>
>>> Alternatively, a quick check would be for someone to compile the 
>>> source package at 
>>> https://centauri.stat.purdue.edu:98/loess/loess_0.4-1.tar.gz and 
>>> test it on windows. Though this package incorporates this and a few 
>>> other fixes, please be aware that it the routines are converted to C 
>>> and thus there is a slight performance hit compared to the fortran.
>>>
>>> Hope this helps,
>>> Ben
>>
>> [...]
>>
>> -- 
>> Brian D. Ripley,                  ripley at stats.ox.ac.uk
>> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
>> University of Oxford,             Tel:  +44 1865 272861 (self)
>> 1 South Parks Road,                     +44 1865 272866 (PA)
>> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>>
>



More information about the R-devel mailing list