pope: Fit Proportional Odds Regression Model with Piecewise Exponential baseline distribution.
Source:R/pope.R
pope.Rd
pope: Fit Proportional Odds Regression Model with Piecewise Exponential baseline distribution.
Arguments
- formula
an object of class "formula" (or one that can be coerced to that class): a symbolic description of the model to be fitted.
- data
an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which pope is called.
- n_int
number of intervals of the PE distribution. If NULL, default value (square root of n) is used.
- rho
the time grid of the PE distribution. If NULL, the function timeGrid is used to compute rho.
- tau
the maximum time of follow-up. If NULL, tau = max(time), where time is the vector of observed survival times.
- hessian
logical; If TRUE (default), the hessian matrix is returned when approach="mle".
- approach
approach to be used to fit the model (mle: maximum likelihood; bayes: Bayesian approach).
- hyper_parms
a list containing the hyper-parameters of the prior distributions (when approach = "bayes"). If not specified, default values are used.
- ...
Arguments passed to either `rstan::optimizing` or `rstan::sampling` .
Examples
# \donttest{
# ML approach:
library(YPPE)
mle <- pope(Surv(time, status)~arm, data=ipass, n_int=10, approach="mle")
summary(mle)
#> Call:
#> pope(formula = Surv(time, status) ~ arm, data = ipass, n_int = 10,
#> approach = "mle")
#>
#> Proportional odds coefficients:
#> Estimate StdErr z.value p.value
#> arm -0.051702 0.103114 -0.5014 0.6161
#>
#> ---
#> loglik = -2821.851 AIC = 5665.702
# Bayesian approach:
bayes <- pope(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.000534 seconds
#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 5.34 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: 3.691 seconds (Warm-up)
#> Chain 1: 3.589 seconds (Sampling)
#> Chain 1: 7.28 seconds (Total)
#> Chain 1:
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 2).
#> Chain 2:
#> Chain 2: Gradient evaluation took 0.000483 seconds
#> Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 4.83 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: 3.723 seconds (Warm-up)
#> Chain 2: 3.62 seconds (Sampling)
#> Chain 2: 7.343 seconds (Total)
#> Chain 2:
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 3).
#> Chain 3:
#> Chain 3: Gradient evaluation took 0.000444 seconds
#> Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 4.44 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: 3.77 seconds (Warm-up)
#> Chain 3: 3.495 seconds (Sampling)
#> Chain 3: 7.265 seconds (Total)
#> Chain 3:
#>
#> SAMPLING FOR MODEL 'yppe' NOW (CHAIN 4).
#> Chain 4:
#> Chain 4: Gradient evaluation took 0.000482 seconds
#> Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 4.82 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: 3.792 seconds (Warm-up)
#> Chain 4: 3.607 seconds (Sampling)
#> Chain 4: 7.399 seconds (Total)
#> Chain 4:
summary(bayes)
#> Call:
#> pope(formula = Surv(time, status) ~ arm, data = ipass, n_int = 10,
#> approach = "bayes")
#>
#> Proportional hazards coefficients:
#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat
#> arm -0.049 0.002 0.107 -0.257 -0.12 -0.049 0.023 0.16 4362.482 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.
#>
# }