[R] how to interpret coefficients for a natural spline smooth function in a GLM

Frank E Harrell Jr f.harrell at vanderbilt.edu
Sun Jun 28 15:28:03 CEST 2009


spencerg wrote:
>      I have not seen a reply to this question, so I will offer a 
> comment;  someone who knows more than I may correct or add to my comments.
> 
>      There are many different kinds of splines.  Perhaps the most common 
> are B-splines, which sum to 1 inside their range of definition and are 0 
> outside.  Natural splines are similar, but support extrapolation outside 
> the (finite) range of definition.  A natural cubic spline extrapolates 
> as straight lines (http://en.wikipedia.org/wiki/Spline_interpolation).

The rcs function in the Design package implements this kind of natural 
spline which I usually call a restricted cubic spline.  The Function and 
latex.Design functions in the Design package reformat the fitted 
regression equation into a more interpretable form.

Frank

> 
>      The coefficients are weights for a B-spline basis for the natural 
> spline, defined in terms of the knots.
> 
>      The "fda" package includes a "TaylorSpline" function to translate 
> spline coefficients into the coefficients of Taylor expansions about the 
> midpoints of the intervals between knots.  However, I do not know if it 
> will work with a natural spline.
> 
>      This is far from a complete answer to your question, but I hope it 
> helps.
> 
>      Spencer Graves
> 
> ltracy wrote:
>> Hello-
>>
>> I am trying to model infections counts over 120 months using a GLM in 
>> R. The model is simple really including a factor variable for year (10 
>> yrs in
>> total) and another variable consisting of a natural spline function 
>> for time
>> in months. 
>> My code for the GLM is as follows:
>> model1<-glm(ALL_COUNT~factor(FY)+ns(1:120, 10), offset=log(TOTAL_PTS),
>> family=poisson, data=TS1)
>>
>> The summary output pertaining to the smooth function consists of 10
>> coefficients for each df in the model.  Here are the coefficients:
>>
>> ns(1:120, 10)1  -0.72438    0.32773  -2.210 0.027084 *  ns(1:120, 
>> 10)2  -1.19097    0.37492  -3.177 0.001490 ** ns(1:120, 10)3  
>> -1.40250    0.42366  -3.310 0.000931 ***
>> ns(1:120, 10)4  -0.82722    0.47459  -1.743 0.081334 .  ns(1:120, 
>> 10)5  -0.46139    0.49657  -0.929 0.352812    ns(1:120, 10)6  
>> -0.44892    0.51909  -0.865 0.387137    ns(1:120, 10)7  -0.53060    
>> 0.54783  -0.969 0.332778    ns(1:120, 10)8  -0.25699    0.55582  
>> -0.462 0.643814    ns(1:120, 10)9  -0.74091    0.63899  -1.160 
>> 0.246249    ns(1:120, 10)10  0.41142    0.56317   0.731 0.465054  
>> What is still unclear to me is what these 10 coefficients from the 
>> natural
>> spline represent. 
>> Thanks in advace-
>>
>>
>>


-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the R-help mailing list