[R] Make natural splines constant outside boundary

Charles C. Berry cberry at tajo.ucsd.edu
Sat Dec 8 18:38:44 CET 2007


Gad Abraham <g.abraham <at> ms.unimelb.edu.au> writes:

> 
> Hi,
> 
> I'm using natural cubic splines from splines::ns() in survival 
> regression (regressing inter-arrival times of patients to a queue on 
> queue size). The queue size fluctuates between 3600 and 3900.
> 
> I would like to be able to run predict.survreg() for sizes <3600 and 
>  >3900 by assuming that the rate for <3600 is the same as for 3600 and 
> that for >4000 it's the same as for 4000 (i.e., keep the splines cubic 
> within the boundaries but make them constant outside the boundaries).
> 

[snip]

> Any suggestions?

Here is one.

> range(ovarian$age)
[1] 38.8932 74.5041
> trim <- function(x) pmin(74.5041 ,pmax(38.8932 , x))
> s <- survreg(Surv(futime, fustat) ~ ns(age, knots=c(50,
60),Boundary.knots=c(38.8932, 74.5041)),data=ovarian)
> s2 <- survreg(Surv(futime, fustat) ~ ns(trim(age), knots=c(50,
60),Boundary.knots=c(38.8932, 74.5041)),data=ovarian)
> matplot(newage, cbind(predict(s,newdata=newage),predict(s2,newdata=newage)))
> 

HTH,

Chuck

> 
> Thanks,
> Gad
>



More information about the R-help mailing list