calc_power_prior_weibull {beastt} | R Documentation |
Calculate Power Prior Weibull
Description
Calculate an approximate (potentially inverse probability weighted) multivariate normal power prior for the log-shape and log-inverse-scale parameters of a Weibull likelihood for external time-to-event control data.
Usage
calc_power_prior_weibull(
external_data,
response,
event,
intercept,
shape,
approximation = c("Laplace", "MCMC"),
...
)
Arguments
external_data |
This can either be a |
response |
Name of response variable |
event |
Name of event indicator variable (1: event; 0: censored) |
intercept |
Normal distributional object that is the initial prior for the intercept (i.e., log-inverse-scale) parameter |
shape |
Integer value that is the scale of the half-normal prior for the shape parameter |
approximation |
Type of approximation to be used. Either |
... |
Arguments passed to |
Details
Weighted participant-level response data from the control arm of an
external study are incorporated into an approximated inverse probability
weighted (IPW) power prior for the parameter vector
\boldsymbol{\theta}_C = \{\log(\alpha), \beta\}
, where \beta = -\log(\sigma)
is the intercept parameter of a Weibull proportional hazards regression model
and \alpha
and \sigma
are the Weibull shape and scale parameters,
respectively. When borrowing information from an external dataset of size N_{E}
,
the IPW likelihood of the external response data \boldsymbol{y}_E
with
event indicators \boldsymbol{\nu}_E
and weights \hat{\boldsymbol{a}}_0
is defined as
\mathcal{L}_E(\alpha, \sigma \mid \boldsymbol{y}_E, \boldsymbol{\nu}_E,
\hat{\boldsymbol{a}}_0) \propto \prod_{i=1}^{N_E} \left\{ \left( \frac{\alpha}{\sigma} \right)
\left( \frac{y_i}{\sigma} \right)^{\alpha - 1} \exp \left( -\left( \frac{y_i}{\sigma} \right)^\alpha
\right) \right\}^{\hat{a}_{0i} \nu_i} \left\{ \exp \left( -\left( \frac{y_i}{\sigma} \right)^\alpha
\right) \right\}^{\hat{a}_{0i}(1 - \nu_i)}.
The initial priors for the intercept parameter \beta
and the shape parameter
\alpha
are assumed to be normal and half-normal, respectively, which can
be defined using the intercept
and shape
arguments.
The power prior for \boldsymbol{\theta}_C
does not have a closed form, and
thus we approximate it via a bivariate normal distribution; i.e.,
\boldsymbol{\theta}_C \mid \boldsymbol{y}_E, \boldsymbol{\nu}_E, \hat{\boldsymbol{a}}_0
\; \dot\sim \; \mbox{MVN} \left( \tilde{\boldsymbol{\mu}}_0, \tilde{\boldsymbol{\Sigma}}_0 \right).
If approximation = Laplace
, then \tilde{\boldsymbol{\mu}}_0
is the mode vector
of the IPW power prior and \tilde{\boldsymbol{\Sigma}}_0
is the negative
inverse of the Hessian of the log IPW power prior evaluated at the mode. If
approximation = MCMC
, then MCMC samples are obtained from the IPW power prior,
and \tilde{\boldsymbol{\mu}}_0
and \tilde{\boldsymbol{\Sigma}}_0
are the estimated mean vector and covariance matrix of these MCMC samples.
Note that the Laplace approximation method is faster due to its use of
optimization instead of MCMC sampling.
The first element of the mean vector and the first row/column of covariance
matrix correspond to the log-shape parameter (\log(\alpha)
), and the
second element corresponds to the intercept (\beta
, the log-inverse-scale)
parameter.
Value
Multivariate Normal Distributional Object
See Also
Other power prior:
calc_power_prior_beta()
,
calc_power_prior_norm()
Examples
library(distributional)
library(dplyr)
# This function can be used directly on the data
calc_power_prior_weibull(ex_tte_df,
response = y,
event = event,
intercept = dist_normal(0, 10),
shape = 50,
approximation = "Laplace")
# Or this function can be used with a propensity score object
ps_obj <- calc_prop_scr(internal_df = filter(int_tte_df, trt == 0),
external_df = ex_tte_df,
id_col = subjid,
model = ~ cov1 + cov2 + cov3 + cov4)
calc_power_prior_weibull(ps_obj,
response = y,
event = event,
intercept = dist_normal(0, 10),
shape = 50,
approximation = "Laplace")