NR.beta | R Documentation |
Applies Newton-Raphson algorithm for beta estimation. Two specific modifications aims at guaranteeing convergence : first the hessian is perturbed whenever it is not positive definite and second, at each step, if the penalized log-likelihood is not maximized, the step is halved until it is.
NR.beta(build, beta.ini, detail.beta, max.it.beta = 200, tol.beta = 1e-04)
build |
list of objects returned by |
beta.ini |
vector of initial regression parameters; default is NULL, in which case the first beta will be |
detail.beta |
if TRUE, details concerning the optimization process in the regression parameters are displayed; default is FALSE |
max.it.beta |
maximum number of iterations to reach convergence in the regression parameters; default is 200 |
tol.beta |
convergence tolerance for regression parameters; default is |
If we note ll.pen
and beta
respectively the current penalized log-likelihood and estimated parameters and
ll.pen.old
and betaold
the previous ones, the algorithm goes on while
(abs(ll.pen-ll.pen.old)>tol.beta) or any(abs((beta-betaold)/betaold)>tol.beta)
List of objects:
beta |
estimated regression parameters |
ll.unpen |
log-likelihood at convergence |
ll.pen |
penalized log-likelihood at convergence |
haz.GL |
list of all the matrix-vector multiplications X.GL[[i]]%*%beta for Gauss Legendre integration. Useful to avoid repeating operations in |
iter.beta |
number of iterations needed to converge |
library(survPen)
# standard spline of time with 4 knots
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)
# Setting up the model before fitting
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=NULL,expected.name=NULL,type="overall",n.legendre=20,
cl="survPen(form,data,t1=time,event=event)",beta.ini=NULL)
# Estimating the regression parameters at given smoothing parameter (here lambda=0)
Newton1 <- NR.beta(model.c,beta.ini=rep(0,4),detail.beta=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.