There are currently two implemented models in BayesGP
that use the partial likelihood function for inference: the
case-crossover model and the Cox Proportional Hazard (Coxph) model.
With BayesGP
, one can specify the argument
family
to "cc"
, "casecrossover"
or "CaseCrossover"
to fit a case-crossover model.
Here we will use a simulated dataset:
data <- as.data.frame(ccData)
data$exposure <- data$exposure
mod <- model_fit(formula = case ~ f(x = exposure,
model = "IWP",
order = 2, k = 30,
initial_location = median(data$exposure),
sd.prior = list(prior = "exp", param = list(u = 1, alpha = 0.5), h = 1)),
family = "cc",
strata = "subject",
weight = NULL,
data = data,
method = "aghq")
To take a look at its result:
lines(I(true_effect(seq(0,1,by = 0.1)) - true_effect(median(data$exposure))) ~ seq(0,1,by = 0.1), col = "red")
Here the true effect used to simulate the data is shown as the red
line. It is important to know that for case-crossover model, the
intercept parameter and the strata
level effects will not
be identifiable.
For Cox Proportional Hazard Model, one can specify the argument
family
to "coxph
to fit a CoxPH model with its
partial likelihood.
Here we will illustrate with the kidney
example from the
survival
package.
data <- survival::kidney
head(data)
#> id time status age sex disease frail
#> 1 1 8 1 28 1 Other 2.3
#> 2 1 16 1 28 1 Other 2.3
#> 3 2 23 1 48 2 GN 1.9
#> 4 2 13 0 48 2 GN 1.9
#> 5 3 22 1 32 1 Other 1.2
#> 6 3 28 1 32 1 Other 1.2
mod <- model_fit(formula = time ~ age + sex + f(x = id,
model = "IID",
sd.prior = list(prior = "exp", param = list(u = 1, alpha = 0.5))),
family = "coxph",
cens = "status",
data = data,
method = "aghq")
Take a look at the posterior for each fixed effect: