## makes data for pbc complete case
data(mypbc)
pbc<-mypbc
pbc$time<-pbc$time+runif(418)*0.1; pbc$time<-pbc$time/365
pbc<-subset(pbc,complete.cases(pbc));
covs<-as.matrix(pbc[,-c(1:3,6)])
covs<-cbind(covs[,c(1:6,16)],log(covs[,7:15]))
covs<-scale(covs);
## computes the matrices needed for the least squares
## criterion
out<-additive.compSs(Surv(time,status>=1)~const(covs),data=pbc)
S<-out$intZHZ; s<-out$intZHdN
n<-nrow(pbc)
## lasso for survival data
if (require(lars)) {
fit<-surv.lars(S,s,n)
plot(fit)
cv<-surv.lars.cv(Surv(time,status>=1)~ const(covs),data=pbc)
beta<-mypredict.lars(fit,cv$cv.frac,type="coefficients",mode = "fraction")$coef
c(beta)
## fitting survival model with these coefficients
out<-aalen.test(Surv(time,status>=1)~ const(covs),data=pbc,fix.gam=1,n.sim=0,robust=0,
gamma=beta)
pout<-predict(out,Z=covs[1:20,],uniform=0,se=0)
plot(pout,multiple=1,se=0,uniform=0);
full<-fit$beta[nrow(fit$beta),] # least squares solution
c(full)
}Run the code above in your browser using DataLab