library(MedicalRiskPredictionModels) prepareExamples()
# Chunk2 # logistic regression in learn data nullmodel <- glm(ohss~1,data=ivftrain,family="binomial") # predicted risk in test data ivftest$risk.null <- predictRisk(nullmodel,newdata=ivftest) # result does not depend on predictor variables ivftest[1:5,c("cyclelen","bmi","age","smoking","ant.foll","risk.null")]
# Chunk3 library(riskRegression) # Kaplan-Meier estimate in training set km <- prodlim(Hist(survtime,survstatus)~1,data=octrain) # Predicted risk at 5 and 10 years in test set octest$km.risk5 <- round(100*predictRisk(km,newdata=octest,times=60),1) octest$km.risk10 <- round(100*predictRisk(km,newdata=octest,times=120),1) # Predicted risks do not depend on predictor variables octest[1:5,c("age","gender","tobacco","tumorthickness","km.risk5","km.risk10")]
# Chunk4 library(riskRegression) # Aalen-Johansen estimate in training set aj <- prodlim(Hist(asprogtime,asprog)~1,data=astrain) # Predict the risks at 3 year horizon in the test set astest$aj.progrisk3 <- round(100*predictRisk(aj,newdata=astest,times=3,cause="progression"),1) astest$aj.deathrisk3 <- round(100*predictRisk(aj,newdata=astest,times=3,cause="death"),1) # Predicted risks do not depend on predictor variables astest[1:5,c("age5","psa","ct1","diaggs","aj.progrisk3","aj.deathrisk3")]
# Chunk5 fit <- glm(ohss~smoking,data=ivftrain,family="binomial") publish(fit,intercept=1)
# Chunk6 library(data.table) fit <- glm(ohss~smoking,data=ivftrain,family="binomial") nd <- data.table(smoking=c("No","Yes")) nd$risk.ohss <- predictRisk(fit,newdata=nd) nd
# Chunk7 fit <- coxph(Surv(survtime, survstatus)~grade+gender, data=octrain,x=TRUE) publish(fit)
# Chunk8 fit <- coxph(Surv(survtime, survstatus)~grade+gender, data=octrain,x=1) nd <- data.table(expand.grid(grade=c("Well","Moderate","Poor"),gender=c("Male","Female"))) nd$risk.10years <- round(100*predictRisk(fit,times=120,newdata=nd),1) nd
# Chunk9 fit <- CSC(Hist(asprogtime,asprog)~diaggs+ct1,data=astrain) publish(fit,diaggs="Gleason score",ct1="Clinical stage")
# Chunk10 fit <- FGR(Hist(asprogtime,asprog)~diaggs+ct1,data=astrain, cause="progression") publish(fit)
# Chunk11 ivftrain$age5 <- ivftrain$age/5 # odds ratio per 5 year increase of age fit <- glm(ohss~age5,data=ivftrain,family="binomial")
# Chunk12 library(rms) fit <- lrm(ohss~rcs(age),data=ivftrain)
# Chunk13 fit <- coxph(Surv(survtime,survstatus)~tumorthickness,data=octrain, y=TRUE,x=TRUE)
# Chunk14 library(rms) # fit Cox regression models fit1=cph(Surv(survtime,survstatus)~tumorthickness, data=octrain,x=1,y=1) # lsp means linear spline fit2=cph(Surv(survtime,survstatus)~lsp(tumorthickness,c(.5,1,3)), data=octrain,x=1,y=1) # rcs means restricted cubic spline fit3=cph(Surv(survtime,survstatus)~rcs(tumorthickness,3), data=octrain,x=1,y=1) # select tumor thickness values for which to predict nd=data.frame(tumorthickness=c(0.1,.5,.75,seq(1,8,1))) # extract 10 year predicted risks from Cox regression R1=predictRisk(fit1, newdata=nd,times=120) R2=predictRisk(fit2, newdata=nd,times=120) R3=predictRisk(fit3, newdata=nd,times=120) # put results in a table nd$"10-year risk linear" <- 100*R1 nd$"10-year risk linear spline" <- 100*R2 nd$"10-year risk cubic spline" <- 100*R3 publish(nd,digits=1)
# Chunk15 fit1 <- CSC(Hist(asprogtime,asprog)~psa+ct1+diaggs,data=astrain,cause="progression") fit2 <- CSC(Hist(asprogtime,asprog)~psa*ct1+diaggs,data=astrain,cause="progression") # select 12 examples nd=expand.grid(diaggs=c("GNA","3 and 3","3 and 4"), ct1=c("cT1","cT2"), psa=c(-3,-1)) # predict 3-year risk of progression R1 <- 100*predictRisk(fit1,newdata=nd,cause="progression",times=3) R2 <- 100*predictRisk(fit2,newdata=nd,cause="progression",times=3) cbind(nd,"No interaction term"=R1,"With interaction term"=R2)
# Chunk16 fit1 <- glm(ohss~ant.foll+smoking+age,data=ivftrain,family="binomial") fit2 <- glm(ohss~ant.foll*smoking+age,data=ivftrain,family="binomial") # select 6 examples nd <- expand.grid(ant.foll=c(10,30,50), age=c(30), smoking=factor(c("Yes","No"))) R1 <- 100*predictRisk(fit1,newdata=nd) R2 <- 100*predictRisk(fit2,newdata=nd) cbind(nd,"Without interaction term"=R1,"With interaction term"=R2)
# Chunk17 library(rms) fit1 <- lrm(ohss~rcs(ant.foll,3)+rcs(age,3)+rcs(cyclelen,3)+smoking,data=ivftrain) fit2 <- lrm(ohss~rcs(ant.foll,3)+rcs(age,3)+rcs(cyclelen,3)+smoking,data=ivftrain,penalty=5) fit3 <- lrm(ohss~rcs(ant.foll,3)+rcs(age,3)+rcs(cyclelen,3)+smoking,data=ivftrain,penalty=10) # select 5 covariate patterns nd=expand.grid(ant.foll=c(10,20), age=28, cyclelen=c(27,32), smoking="No") # predict risks R1=100*predictRisk(fit1,nd) R2=100*predictRisk(fit2,nd) R3=100*predictRisk(fit3,nd) cbind(nd,"no penalty"=R1,"penalty 5"=R2,"penalty 10"=R3)
# Chunk18 fit <- coxph(Surv(survtime,survstatus)~tumorthickness + age + gender * race * tobacco * site ,data=octrain,y=1,x=1)
# Chunk19 tab1 <- summary(utable(gender~age+deep.invasion+tobacco+tumorthickness+grade,data=octrain, summary.format="median(x) (IQR(x)) [range(x)]"),show.pvalue=0) tab1
# Chunk20 ivf$set <- factor(ivf$train,levels=c(TRUE,FALSE), labels=c("Training","Validation")) tab1 <- summary(utable(set~Q(age)+cyclelen+Q(bmi)+fsh+ant.foll+smoking,data=ivf), show.pvalues=0) tab1
# Chunk21 tab2 <- followupTable(Hist(asprogtime,asprog)~age+ct1+erg.status,data=as,followup.time=5) tab2
# Chunk22 fit <- coxph(Surv(survtime,survstatus)~age+gender+tumorthickness+grade,data=octrain) publish(fit,probindex=TRUE)
# Chunk23 fit <- ARR(Hist(asprogtime, asprog)~ct1+erg.status+age5+psa+ppb5+lmax, data=astrain, times=5, cause="progression") publish(fit)
# Chunk24 uu <- datadist(ivf) options(datadist="uu") fit <- lrm(ohss~age+rcs(ant.foll)+smoking,data=ivf) plot(nomogram(fit,fun=function(x)1/(1+exp(-x)), # or fun=plogis funlabel=paste0("Risk of OHSS")))
# Chunk25 u <- datadist(octrain) options(datadist="u") fit <- cph(Surv(survtime,survstatus)~age*grade+gender+rcs(tumorthickness), data=octrain, surv=1) surv <- Survival(fit) nom <- nomogram(fit, fun=list(function(x) 1-surv(60, x), function(x) 1-surv(120, x)), funlabel=c("5-year risk", "10-year risk")) plot(nom, xfrac=.5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.