
Generate Time-to-Event Endpoint from Piecewise Constant Exponential Distribution
Source:R/PiecewiseConstantExponentialRNG.R
PiecewiseConstantExponentialRNG.RdThis function can be used as generator to define endpoint. Implementation is based on this algorithm. This distribution can be used to simulate delayed treatment effect.
Arguments
- n
integer. Number of random numbers
- risk
a data frame of columns
end_timeEnd time for a constant risk in a time window. The start time of the first time window is 0.
piecewise_riskA constant risk in a time window, which is absolute risk * relative risk, or (h0 * g) in the link.
hazard_ratioAn optional column for simulating an active arm. If absent, a column of 1s will be added. Equivalently, user can multiply
piecewise_riskbyhazard_ratiomanually and ignore this column.
- endpoint_name
character. Name of endpoint. This should be the same as the
nameargument when calling functionendpoint().
Value
a data frame of n rows and two columns
<endpoint_name>name of endpoint specified by users in
endpoint_name.- <endpoint_name>_event
event indicator with 0/1 as censoring and event, respectively. Note that due to the nature of the algorithm to generate data from this distribution, it is possible to have the endpoint being censoring at the last
end_timeunless it is set toInf.
Examples
# example code
# In this example, absolute risk in [0, 1) and [26, 52] are 0.0181 and
# 0.0027, respectively.
risk <- data.frame(
end_time = c(1, 4.33, 26.0, 52.0),
piecewise_risk = c(1, 1.01, 0.381, 0.150) * exp(-4.01)
)
PiecewiseConstantExponentialRNG(10, risk, 'PFS')
#> PFS PFS_event
#> 1 52 0
#> 2 52 0
#> 3 52 0
#> 4 52 0
#> 5 52 0
#> 6 52 0
#> 7 52 0
#> 8 52 0
#> 9 52 0
#> 10 52 0