Inner Newton-Raphson algorithm for regression parameters estimation
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.