In the code below we show how to simulate a sample of type I
right-censored survival data, assuming that the failure times are
generated from an accelerated failure time model with loglogistic
baseline distribution. In addition, assume that we wish to consider two
exploratory variables, say age and sex, and we want to include an
interaction effect between them. Such a task can be easily accomplished
by using the function raftreg() along with the function
qllogis() available in the package
flexsurv.
library(rsurv)
library(dplyr)
library(survstan)
library(flexsurv)
set.seed(1234567890)
n <- 1000
tau <- 10 # maximum follow up time
simdata <- data.frame(
age = rnorm(n),
sex = sample(c("f", "m"), size = n, replace = TRUE)
) %>%
mutate(
t = raftreg(runif(n), ~ age*sex, beta = c(1, 2, -0.5),
dist = "llogis", shape = 1.5, scale = 1),
) %>%
rowwise() %>%
mutate(
time = min(t, tau),
status = as.numeric(time == t)
)
glimpse(simdata)
#> Rows: 1,000
#> Columns: 5
#> Rowwise:
#> $ age <dbl> 1.34592454, 0.99527131, 0.54622688, -1.91272392, 1.92128431, 1.…
#> $ sex <chr> "m", "f", "f", "m", "m", "m", "m", "f", "f", "m", "f", "m", "m"…
#> $ t <dbl> 15.2363453, 1.5259533, 2.1783746, 2.4354995, 58.7932958, 16.714…
#> $ time <dbl> 10.0000000, 1.5259533, 2.1783746, 2.4354995, 10.0000000, 10.000…
#> $ status <dbl> 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, …
fit <- aftreg(
Surv(time, status) ~ age*sex,
data = simdata, dist = "loglogistic"
)
estimates(fit)
#> age sexm age:sexm alpha gamma
#> 0.9494630 2.0094422 -0.4812641 1.4946497 1.0226847
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.