Computes the predicted survivor function for a yppe model.
Usage
# S3 method for yppe
survfit(formula, newdata, ...)
Arguments
- formula
an object of the class yppe
- newdata
a data frame containing the set of explanatory variables.
- ...
further arguments passed to or from other methods.
Examples
# \donttest{
# ML approach:
library(YPPE)
mle <- yppe(Surv(time, status)~arm, data=ipass, n_int=10, approach="mle")
summary(mle)
#> Call:
#> yppe(formula = Surv(time, status) ~ arm, data = ipass, n_int = 10,
#> approach = "mle")
#>
#> Short-term coefficients:
#> Estimate StdErr z.value p.value
#> arm 1.04164 0.16656 6.2538 4.005e-10 ***
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Long-term coefficients:
#> Estimate StdErr z.value p.value
#> arm -1.238480 0.084556 -14.647 < 2.2e-16 ***
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> ---
#> loglik = -2759.652 AIC = 5543.305
ekm <- survival::survfit(Surv(time, status)~arm, data=ipass)
newdata <- data.frame(arm=0:1)
St <- survfit(mle, newdata)
plot(ekm, col=1:2)
with(St, lines(time, surv[[1]]))
with(St, lines(time, surv[[2]], col=2))
# Bayesian approach:
bayes <- yppe(Surv(time, status)~arm, data=ipass, n_int=10, approach="bayes")
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 1).
#> Chain 1:
#> Chain 1: Gradient evaluation took 0.000828 seconds
#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 8.28 seconds.
#> Chain 1: Adjust your expectations accordingly!
#> Chain 1:
#> Chain 1:
#> Chain 1: Iteration: 1 / 2000 [ 0%] (Warmup)
#> Chain 1: Iteration: 200 / 2000 [ 10%] (Warmup)
#> Chain 1: Iteration: 400 / 2000 [ 20%] (Warmup)
#> Chain 1: Iteration: 600 / 2000 [ 30%] (Warmup)
#> Chain 1: Iteration: 800 / 2000 [ 40%] (Warmup)
#> Chain 1: Iteration: 1000 / 2000 [ 50%] (Warmup)
#> Chain 1: Iteration: 1001 / 2000 [ 50%] (Sampling)
#> Chain 1: Iteration: 1200 / 2000 [ 60%] (Sampling)
#> Chain 1: Iteration: 1400 / 2000 [ 70%] (Sampling)
#> Chain 1: Iteration: 1600 / 2000 [ 80%] (Sampling)
#> Chain 1: Iteration: 1800 / 2000 [ 90%] (Sampling)
#> Chain 1: Iteration: 2000 / 2000 [100%] (Sampling)
#> Chain 1:
#> Chain 1: Elapsed Time: 6.589 seconds (Warm-up)
#> Chain 1: 5.665 seconds (Sampling)
#> Chain 1: 12.254 seconds (Total)
#> Chain 1:
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 2).
#> Chain 2:
#> Chain 2: Gradient evaluation took 0.000781 seconds
#> Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 7.81 seconds.
#> Chain 2: Adjust your expectations accordingly!
#> Chain 2:
#> Chain 2:
#> Chain 2: Iteration: 1 / 2000 [ 0%] (Warmup)
#> Chain 2: Iteration: 200 / 2000 [ 10%] (Warmup)
#> Chain 2: Iteration: 400 / 2000 [ 20%] (Warmup)
#> Chain 2: Iteration: 600 / 2000 [ 30%] (Warmup)
#> Chain 2: Iteration: 800 / 2000 [ 40%] (Warmup)
#> Chain 2: Iteration: 1000 / 2000 [ 50%] (Warmup)
#> Chain 2: Iteration: 1001 / 2000 [ 50%] (Sampling)
#> Chain 2: Iteration: 1200 / 2000 [ 60%] (Sampling)
#> Chain 2: Iteration: 1400 / 2000 [ 70%] (Sampling)
#> Chain 2: Iteration: 1600 / 2000 [ 80%] (Sampling)
#> Chain 2: Iteration: 1800 / 2000 [ 90%] (Sampling)
#> Chain 2: Iteration: 2000 / 2000 [100%] (Sampling)
#> Chain 2:
#> Chain 2: Elapsed Time: 6.682 seconds (Warm-up)
#> Chain 2: 5.645 seconds (Sampling)
#> Chain 2: 12.327 seconds (Total)
#> Chain 2:
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 3).
#> Chain 3:
#> Chain 3: Gradient evaluation took 0.000728 seconds
#> Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 7.28 seconds.
#> Chain 3: Adjust your expectations accordingly!
#> Chain 3:
#> Chain 3:
#> Chain 3: Iteration: 1 / 2000 [ 0%] (Warmup)
#> Chain 3: Iteration: 200 / 2000 [ 10%] (Warmup)
#> Chain 3: Iteration: 400 / 2000 [ 20%] (Warmup)
#> Chain 3: Iteration: 600 / 2000 [ 30%] (Warmup)
#> Chain 3: Iteration: 800 / 2000 [ 40%] (Warmup)
#> Chain 3: Iteration: 1000 / 2000 [ 50%] (Warmup)
#> Chain 3: Iteration: 1001 / 2000 [ 50%] (Sampling)
#> Chain 3: Iteration: 1200 / 2000 [ 60%] (Sampling)
#> Chain 3: Iteration: 1400 / 2000 [ 70%] (Sampling)
#> Chain 3: Iteration: 1600 / 2000 [ 80%] (Sampling)
#> Chain 3: Iteration: 1800 / 2000 [ 90%] (Sampling)
#> Chain 3: Iteration: 2000 / 2000 [100%] (Sampling)
#> Chain 3:
#> Chain 3: Elapsed Time: 6.639 seconds (Warm-up)
#> Chain 3: 5.914 seconds (Sampling)
#> Chain 3: 12.553 seconds (Total)
#> Chain 3:
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 4).
#> Chain 4:
#> Chain 4: Gradient evaluation took 0.000725 seconds
#> Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 7.25 seconds.
#> Chain 4: Adjust your expectations accordingly!
#> Chain 4:
#> Chain 4:
#> Chain 4: Iteration: 1 / 2000 [ 0%] (Warmup)
#> Chain 4: Iteration: 200 / 2000 [ 10%] (Warmup)
#> Chain 4: Iteration: 400 / 2000 [ 20%] (Warmup)
#> Chain 4: Iteration: 600 / 2000 [ 30%] (Warmup)
#> Chain 4: Iteration: 800 / 2000 [ 40%] (Warmup)
#> Chain 4: Iteration: 1000 / 2000 [ 50%] (Warmup)
#> Chain 4: Iteration: 1001 / 2000 [ 50%] (Sampling)
#> Chain 4: Iteration: 1200 / 2000 [ 60%] (Sampling)
#> Chain 4: Iteration: 1400 / 2000 [ 70%] (Sampling)
#> Chain 4: Iteration: 1600 / 2000 [ 80%] (Sampling)
#> Chain 4: Iteration: 1800 / 2000 [ 90%] (Sampling)
#> Chain 4: Iteration: 2000 / 2000 [100%] (Sampling)
#> Chain 4:
#> Chain 4: Elapsed Time: 6.443 seconds (Warm-up)
#> Chain 4: 5.859 seconds (Sampling)
#> Chain 4: 12.302 seconds (Total)
#> Chain 4:
summary(bayes)
#> Call:
#> yppe(formula = Surv(time, status) ~ arm, data = ipass, n_int = 10,
#> approach = "bayes")
#>
#> Short-term coefficients:
#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
#> arm 1.044 0.003 0.164 0.733 0.928 1.041 1.154 1.374 2860.672 1
#>
#> Long-term coefficients:
#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
#> arm -1.236 0.001 0.083 -1.396 -1.292 -1.236 -1.182 -1.07 3093.555 1
#>
#> ---
#> Inference for Stan model: yppe.
#> 4 chains, each with iter=2000; warmup=1000; thin=1;
#> post-warmup draws per chain=1000, total post-warmup draws=4000.
#>
ekm <- survival::survfit(Surv(time, status)~arm, data=ipass)
newdata <- data.frame(arm=0:1)
St <- survfit(bayes, newdata)
plot(ekm, col=1:2)
with(St, lines(time, surv[[1]]))
with(St, lines(time, surv[[2]], col=2))
# }