[R] Taking the derivative of a quadratic B-spline

Duncan Murdoch murdoch at stats.uwo.ca
Tue Jul 19 21:58:48 CEST 2005


On 7/19/2005 3:34 PM, James McDermott wrote:
> I wish it were that simple (perhaps it is and I am just not seeing
> it).  The output from cobs( ) includes the B-spline coefficients and
> the knots.  These coefficients are not the same as the a, b, and c
> coefficients in a quadratic polynomial.  Rather, they are the
> coefficients of the quadratic B-spline representation of the fitted
> curve.  I need to evaluate a linear combination of basis functions and
> it is not clear to me how to accomplish this easily.  I was hoping to
> find an alternative way of getting the derivatives.

I don't know COBS, but doesn't predict just evaluate the B-spline?  The 
point of what I posted is that the particular basis doesn't matter if 
you can evaluate the quadratic at 3 points.

Duncan Murdoch

> 
> Jim McDermott
> 
> On 7/19/05, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>> On 7/19/2005 2:53 PM, James McDermott wrote:
>> > Hello,
>> >
>> > I have been trying to take the derivative of a quadratic B-spline
>> > obtained by using the COBS library.  What I would like to do is
>> > similar to what one can do by using
>> >
>> > fit<-smooth.spline(cdf)
>> > xx<-seq(-10,10,.1)
>> > predict(fit, xx, deriv = 1)
>> >
>> > The goal is to fit the spline to data that is approximating a
>> > cumulative distribution function (e.g. in my example, cdf is a
>> > 2-column matrix with x values in column 1 and the estimate of the cdf
>> > evaluated at x in column 2) and then take the first derivative over a
>> > range of values to get density estimates.
>> >
>> > The reason I don't want to use smooth.spline is that there is no way
>> > to impose constraints (e.g. >=0, <=1, and monotonicity) as there is
>> > with COBS.  However, since COBS doesn't have the 'deriv =' option, the
>> > only way I can think of doing it with COBS is to evaluate the
>> > derivatives numerically.
>> 
>> Numerical estimates of the derivatives of a quadratic should be easy to
>> obtain accurately.  For example, if the quadratic ax^2 + bx + c is
>> defined on [-1, 1], then the derivative 2ax + b, has 2a = f(1) - f(0) +
>> f(-1), and b = (f(1) - f(-1))/2.
>> 
>> You should be able to generalize this to the case where the spline is
>> quadratic between knots k1 and k2 pretty easily.
>> 
>> Duncan Murdoch
>>




More information about the R-help mailing list