[R] Extracting the knots of a natural cubic spline fit

Marc Schwartz marc_schwartz at me.com
Tue Mar 12 22:15:17 CET 2013


On Mar 12, 2013, at 2:59 PM, Rajat Tayal <rajat at igidr.ac.in> wrote:

> Dear list members,
> 
> I am trying to fit a natural cubic spline to my dataset using the ns
> function in the splines package.
> Specifically, I do:
> 
> library(splines)
> lm(y ~ ns(x, df=3), data =data)
> 
> How do I extract the values of the interior knots of the fitted spline ?
> 
> Thanks,
> 
> Rajat


Using the example from ?ns:

require(splines)
fm1 <- lm(weight ~ ns(height, df = 5), data = women)


> attr(terms(fm1), "predvars")
list(weight, ns(height, knots = c(60.8, 63.6, 66.4, 69.2), Boundary.knots = c(58, 
72), intercept = FALSE))


or directly on the data:

> attr(ns(women$height, df = 5), "knots")
 20%  40%  60%  80% 
60.8 63.6 66.4 69.2 

> attr(ns(women$height, df = 5), "Boundary.knots")
[1] 58 72



Regards,

Marc Schwartz



More information about the R-help mailing list