Description Usage Arguments Details Value Author(s) References Examples
This function allows the estimation of an optimal cut-off for medical decision making between two treatments A and B from a prognostic marker by maximizing the expected utility in a time-dependent context.
1 2 | EUt2(times, failures, variable, treatment, pro.time, u.A0, u.A1, u.B0, u.B1,
n.boot)
|
times |
A numeric vector with the follow up times. |
failures |
A numeric vector with the event indicator (0=right censoring, 1=event). |
variable |
A numeric vector with the observed values of the marker/variable under interest |
treatment |
A character vector with the observed treatment. Only character strings "A" and "B" are allowed. |
pro.time |
The prognostic time for which the capacities of the marker and the patient outcomes are considered in the same unit than the one used in the argument |
u.A0 |
A value of the utility of a patient receiving the treatment A before the event occurrence. This value should respect the 0-1 scale (from death to perfect health). |
u.A1 |
A value of the utility of a patient receiving the treatment A after the event occurrence. This value should respect the 0-1 scale. |
u.B0 |
A value of the utility of a patient receiving the treatment B before the event occurrence. This value should respect the 0-1 scale. |
u.B1 |
A value of the utility of a patient receiving the treatment B after the event occurrence. This value should respect the 0-1 scale. |
n.boot |
Number of bootstrap iterations to compute the 95% confidence interval of the optimal cut-off. The default value is NULL: no confidence interval is estimated. |
This function computes the expected time-dependent utility for the cut-off
values defined by the user. The data may be right-censored. The user has to define the utilities (qualities of life related to the possible health-states after the marker-based decision). A positive test is defined by a marker value higher than the cut-off (X>k
): by convention the patient will receive preferentially the treatment A. A negative test is defined by a marker value lower than or equal to the cut-off (X>k
): by convention the patients will receive preferentially the treatment B. For example, the user has data from a clinical trial in which treatments A and B independently to the value of the marker X. She(he) assumes that an alternative treatment A will be more convenient for patients with high value of the marker X. She(he) aims to compute the optimal cot-off value for a future stratified medical decision rule: treatment A for patients with X>k
and treatment B for patients with X<k
.
estimation |
his is a single value if |
max.eu |
This value corresponds to the maximum expected utility associated with the |
table |
This data frame is composed by 8 columns representing respectively the cut-off values ( |
delta.rmst |
This is a vector with two values. The first value, entitled |
delta.qaly |
This is a vector with two values. The fist value, entitled |
missing |
Number of deleted observations due to missing data. |
Y. Foucher <Yohann.Foucher@univ-nantes.fr>
Schlichting et al. (1983) Prognostic factors in cirrhosis identified by Cox's regression model. Hepatol Baltim Md, 3(6):889-95. <doi: 10.1002/hep.1840030601>
Royston P. and Parmar M.K. (2011) The use of restricted mean survival time to estimate the treatment effect in randomized clinical trials when the proportional hazards assumption is in doubt. Statistics in Medicine, 30(19):2409-21. <doi:10.1002/sim.4274>
Dantan E., Foucher Y., Lorent M., Giral M., Tessier P. (2016) Optimal threshold estimator of a prognostic marker by maximizing a time-dependent expected utility function for a patient-centered stratified medicine. Statistical Methods in Medical Research, 0, 1-13. <doi:10.1177/ 0962280216671161>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # import and attach the data example
data(csl)
csl <- csl[order(csl$id, csl$time),]
csl$ordre <-0
for (i in unique(csl$id)) {csl$ordre[csl$id==i] <- 1:sum(csl$id==i)}
csl$ttt[csl$treat==0]<-"A"
csl$ttt[csl$treat==1]<-"B"
csl0 <- csl[csl$ordre==1,]
csl0<-csl0[,c(1,4,5,14,9)]
# the expected utility function for a prognostic up to 8 years
EUt.obj <- EUt2(csl0$eventT, csl0$dc, csl0$prot.base, treatment= csl0$ttt,
pro.time=8, u.A0=0.75*0.95, u.A1=0, u.B0=0.75, u.B1=0)
plot(EUt.obj$table$cut.off, EUt.obj$table$utility, type="l",
xlab="Cut-off values", ylab="Expected utility",col=1, lty=1)
segments(EUt.obj$estimation, 0, EUt.obj$estimation, EUt.obj$max.eu, lty=3)
segments(0, EUt.obj$max.eu, EUt.obj$estimation, EUt.obj$max.eu, lty=3)
text(EUt.obj$estimation-2, 3.38,
paste("Optimal cut-off=",round(EUt.obj$estimation,2)), srt=90, cex=0.8)
text(min(csl0$prot.base)+40, EUt.obj$max.eu-0.005,
paste("Expected utility=",round(EUt.obj$max.eu,2)), cex=0.8)
# the optimal cut-off: patients with an higher value should receive the treatment A
EUt.obj$estimation
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.