[R] Make natural splines constant outside boundary

Charles C. Berry cberry at tajo.ucsd.edu
Sat Dec 8 20:13:13 CET 2007


On Sat, 8 Dec 2007, Charles C. Berry wrote:

> 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)

Should have copy-and-pasted this here:

newage <- data.frame( age=seq(10,200,10 ) )

>> matplot(newage, cbind(predict(s,newdata=newage),predict(s2,newdata=newage)))

Sorry 'bout the line wraps and bad formatting.

Chuck

--
Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list