calPlot | R Documentation |
Calibration plots for risk prediction models in right censored survival and competing risks data
calPlot(
object,
time,
formula,
data,
splitMethod = "none",
B = 1,
M,
pseudo,
type,
showPseudo,
pseudo.col = NULL,
pseudo.pch = NULL,
method = "nne",
round = TRUE,
bandwidth = NULL,
q = 10,
bars = FALSE,
hanging = FALSE,
names = "quantiles",
showFrequencies = FALSE,
jack.density = 55,
plot = TRUE,
add = FALSE,
diag = !add,
legend = !add,
axes = !add,
xlim = c(0, 1),
ylim = c(0, 1),
xlab,
ylab,
col,
lwd,
lty,
pch,
cause = 1,
percent = TRUE,
giveToModel = NULL,
na.action = na.fail,
cores = 1,
verbose = FALSE,
cex = 1,
...
)
object |
A named list of prediction models, where allowed
entries are (1) R-objects for which a predictSurvProb method
exists (see details), (2) a |
time |
The evaluation time point at predicted event probabilities are plotted against pseudo-observed event status. |
formula |
A survival or event history formula. The left hand
side is used to compute the expected event status. If
|
data |
A data frame in which to validate the prediction models
and to fit the censoring model. If |
splitMethod |
Defines the internal validation design:
|
B |
The number of cross-validation steps. |
M |
The size of the subsamples for cross-validation. |
pseudo |
Logical. Determines the method for estimating expected event status:
|
type |
Either "risk" or "survival". |
showPseudo |
If |
pseudo.col |
Colour for pseudo-values. |
pseudo.pch |
Dot type (see par) for pseudo-values. |
method |
The method for estimating the calibration curve(s):
|
round |
If |
bandwidth |
The bandwidth for |
q |
The number of quantiles for |
bars |
If |
hanging |
Barplots only. If |
names |
Barplots only. Names argument passed to |
showFrequencies |
Barplots only. If |
jack.density |
Gray scale for pseudo-observations. |
plot |
If |
add |
If |
diag |
If |
legend |
If |
axes |
If |
xlim |
Limits of x-axis. |
ylim |
Limits of y-axis. |
xlab |
Label for y-axis. |
ylab |
Label for x-axis. |
col |
Vector with colors, one for each element of
object. Passed to |
lwd |
Vector with line widths, one for each element of
object. Passed to |
lty |
lwd Vector with line style, one for each element of
object. Passed to |
pch |
Passed to |
cause |
For competing risks models, the cause of failure or event of interest |
percent |
If TRUE axes labels are multiplied by 100 and thus interpretable on a percent scale. |
giveToModel |
List of with exactly one entry for each entry in
|
na.action |
Passed to |
cores |
Number of cores for parallel computing. Passed as
value of argument |
verbose |
if |
cex |
Default cex used for legend and labels. |
... |
Used to control the subroutines: plot, axis, lines, barplot,
legend. See |
For method "nne" the optimal bandwidth with respect to is obtained with the
function dpik
from the package KernSmooth
for a box
kernel function.
list with elements: time, pseudoFrame and bandwidth (NULL for method quantile).
Thomas Alexander Gerds tag@biostat.ku.dk
library(prodlim)
library(lava)
library(riskRegression)
library(survival)
# survival
dlearn <- SimSurv(40)
dval <- SimSurv(100)
f <- coxph(Surv(time,status)~X1+X2,data=dlearn,x=TRUE,y=TRUE)
cf=calPlot(f,time=3,data=dval)
print(cf)
plot(cf)
g <- coxph(Surv(time,status)~X2,data=dlearn,x=TRUE,y=TRUE)
cf2=calPlot(list("Cox regression X1+X2"=f,"Cox regression X2"=g),
time=3,
type="risk",
data=dval)
print(cf2)
plot(cf2)
calPlot(f,time=3,data=dval,type="survival")
calPlot(f,time=3,data=dval,bars=TRUE,pseudo=FALSE)
calPlot(f,time=3,data=dval,bars=TRUE,type="risk",pseudo=FALSE)
## show a red line which follows the hanging bars
calPlot(f,time=3,data=dval,bars=TRUE,hanging=TRUE)
a <- calPlot(f,time=3,data=dval,bars=TRUE,hanging=TRUE,abline.col=NULL)
lines(c(0,1,ceiling(a$xcoord)),
c(a$offset[1],a$offset,a$offset[length(a$offset)]),
col=2,lwd=5,type="s")
calPlot(f,time=3,data=dval,bars=TRUE,type="risk",hanging=TRUE)
set.seed(13)
m <- crModel()
regression(m, from = "X1", to = "eventtime1") <- 1
regression(m, from = "X2", to = "eventtime1") <- 1
m <- addvar(m,c("X3","X4","X5"))
distribution(m, "X1") <- binomial.lvm()
distribution(m, "X4") <- binomial.lvm()
d1 <- sim(m,100)
d2 <- sim(m,100)
csc <- CSC(Hist(time,event)~X1+X2+X3+X4+X5,data=d1)
fgr <- FGR(Hist(time,event)~X1+X2+X3+X4+X5,data=d1,cause=1)
if ((requireNamespace("cmprsk",quietly=TRUE))){
predict.crr <- cmprsk:::predict.crr
cf3=calPlot(list("Cause-specific Cox"=csc,"Fine-Gray"=fgr),
time=5,
legend.x=-0.3,
legend.y=1.35,
ylab="Observed event status",
legend.legend=c("Cause-specific Cox regression","Fine-Gray regression"),
legend.xpd=NA)
print(cf3)
plot(cf3)
b1 <- calPlot(list("Fine-Gray"=fgr),time=5,bars=TRUE,hanging=FALSE)
print(b1)
plot(b1)
calPlot(fgr,time=5,bars=TRUE,hanging=TRUE)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.