Re: [Rd] Rd] Numerics behind splineDesign

From: William Dunlap <>
Date: Thu, 02 Aug 2012 16:59:17 +0000

If R's bs() and ns() are like S+'s (they do give very similar results* and S+'s were written by Doug Bates), then bs() does not do any linear algebra (like qr()) on splineDesign's output. bs() needs to come up with a default set of knots (if the user didn't supply them), combine the Boundary.knots (repeated ord times) and knots into one vector to pass to splineDesign, and, if there are any x's outside of range(Boundary.knots), treat them specially.  

ns() needs to project splineDesign's basis functions onto the subspace of functions whose 2nd derivatives are zero at the endpoints. The projection can be done with qr() and friends (S+ uses qr()).

(If you want basis functions for a periodic spline you could use a similar procedure to project to the subspace of functions whose first and second derivatives match at the upper and lower Boundary.knots.)

Bill Dunlap
Spotfire, TIBCO Software

> -----Original Message-----
> From: [] On Behalf
> Of Terry Therneau
> Sent: Thursday, August 02, 2012 6:10 AM
> To:; Nathaniel Smith
> Subject: Re: [Rd] Rd] Numerics behind splineDesign
> On 08/02/2012 05:00 AM, wrote:
> > Now I just have to grovel over the R code in ns() and bs() to figure
> > out how exactly they pick knots and handle boundary conditions, plus
> > there is some code that I don't understand in ns() that uses qr() to
> > postprocess the output from spline.des. I assume this is involved
> > somehow in imposing the boundary conditions...
> >
> > Thanks again everyone for your help,
> > -- Nathaniel
> The ns and bs function post-process the spline bases to get an
> orthagonal basis matrix, this is the use of qr. I think this causes
> much more grief than it is worth, for the sake of a small increase in
> numeric stability. For instance when you plot the spline bases, they
> don't look anything like the basis functions one would expect. (Perhaps
> my background in numerical analysis was a hindrance here, since I know
> something about splines and thus have an expectation).
> Terry Therneau
> ______________________________________________
> mailing list
> mailing list Received on Thu 02 Aug 2012 - 17:02:18 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 03 Aug 2012 - 23:30:35 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive