Nothing
context("Newton")
# Newton-Raphson algorithm for regression parameters
data <- data.frame(time=seq(0,5,length=100),event=1,t0=0)
form <- ~ smf(time,knots=c(0,1,3,5))
t1 <- eval(substitute(time), data)
t0 <- eval(substitute(t0), data)
event <- eval(substitute(event), data)
model.c <- model.cons(form,lambda=0,data.spec=data,t1=t1,t1.name="time",
t0=rep(0,100),t0.name="t0",event=event,event.name="event",
expected=rep(0,100),expected.name=NULL,type="overall",n.legendre=20,cl="survPen(form,data,t1=time,event=event)",beta.ini=NULL)
mod <- survPen.fit(model.c,data,form)
Newton1 <- NR.beta(model.c,beta.ini=rep(0,4),detail.beta=FALSE)
test_that("NR.beta ok", {
expect_true(max(abs(mod$coef - Newton1$beta)) < 1e-10)
})
# Newton-Raphson algorithm for smoothing and regression parameters
mod2 <- survPen(form,data,t1=time,event=event)
# we need to reparameterize the model before fitting
constructor <- repam(model.c)$build # model constructor
constructor$optim.rho <- 1 # we tell it we want to estimate the log smoothing parameters (rho)
Newton2 <- NR.rho(constructor,rho.ini=-1,data,form,nb.smooth=1,detail.rho=FALSE)
# we then return to the initial parameterization
coef.Newton2 <- as.vector(Newton2$U%*%Newton2$coef )
test_that("NR.rho coef ok", {
expect_true(max(abs(mod2$coef - coef.Newton2)) < 1e-10)
})
test_that("NR.rho lambda ok", {
expect_true(abs(mod2$lambda - Newton2$lambda) < 1e-10)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.