
Piecewise Exponential Multi-Arm Survival Time
Source:R/f_piecewise_survival_time_multiarm.R
getPiecewiseSurvivalTimeMultiArm.RdCreates a validated piecewise exponential survival specification for a patient-wise multi-arm simulation.
Usage
getPiecewiseSurvivalTimeMultiArm(
piecewiseSurvivalTime = NULL,
lambdaControl = NULL,
hazardRatio = NULL,
medianControl = NULL,
medianTreatments = NULL
)Arguments
- piecewiseSurvivalTime
Numeric interval start times beginning with 0.
- lambdaControl
Non-negative, finite control hazards, one per interval. Specify either
lambdaControlormedianControl.- hazardRatio
One active-arm-by-interval matrix, a named list of such matrices (one per situation), or an active-arm-by-interval-by-situation array. In the array, situation is the slowest-changing dimension. Specify either
hazardRatioormedianTreatments.- medianControl
Positive, finite exponential control medians, one per interval, as an alternative to
lambdaControl. Values are not recycled.- medianTreatments
Positive, finite exponential treatment medians, in the same matrix, list, or array format as
hazardRatio, as an alternative to it.
Details
At least two finite, strictly increasing interval starts are required. The last
interval is open-ended. Hazards must be finite and non-negative; zero denotes
an interval without events. Hazard ratios must be finite and strictly positive.
Group and situation names must be unique and non-empty. Unnamed groups are positional;
named groups must agree in order. Interval columns are positional and receive
labels derived from the interval starts. Only piecewise exponential event times
are supported; simulation requires kappa = 1.
The returned time definition inherits from ParameterSet and supports names(),
print(), summary(), as.data.frame(), as.matrix(), and getObjectRCode().
Hazard ratios specify the data-generating distribution, rather than separate
interval-specific analysis estimands.
Median inputs parameterize each interval's exponential hazard through
getLambdaByMedian(median, kappa = 1). They are not the actual medians of the
complete piecewise survival distributions. The original interval medians are
retained as user-defined parameters; hazards and hazard ratios calculated from
them are marked as derived. No automatic recycling across intervals or groups
is performed.
Examples
hazardRatio <- getPiecewiseHazardRatioArray(
favorable = rbind(lowDose = c(0.9, 0.8), highDose = c(0.8, 0.6)),
conservative = rbind(lowDose = c(1, 0.9), highDose = c(0.9, 0.75))
)
piecewiseTime <- getPiecewiseSurvivalTimeMultiArm(
piecewiseSurvivalTime = c(0, 6),
lambdaControl = c(0.08, 0.12),
hazardRatio = hazardRatio
)
piecewiseTime
#> Piecewise exponential multi-arm survival time
#>
#> Control hazards (common to all comparisons):
#> Group
#> Interval Control
#> 0 - <6 0.080
#> >=6 0.120
#>
#> Details:
#>
#> User defined parameters:
#> Piecewise survival times : 0.00, 6.00
#> Control hazards (common) : 0.080, 0.120
#>
#> Hazard ratios - favorable:
#> Group
#> Interval lowDose highDose
#> 0 - <6 0.900 0.800
#> >=6 0.800 0.600
#>
#> Hazard ratios - conservative:
#> Group
#> Interval lowDose highDose
#> 0 - <6 1.000 0.900
#> >=6 0.900 0.750
#>
#> Default parameters: not available
#>
#> Generated parameters:
#> Group type : multi-arm
#>
getPiecewiseSurvivalTimeMultiArm(
piecewiseSurvivalTime = c(0, 6),
medianControl = c(12, 24),
medianTreatments = rbind(lowDose = c(15, 30), highDose = c(18, 36))
)
#> Piecewise exponential multi-arm survival time
#>
#> Control hazards (common to all comparisons):
#> Group
#> Interval Control
#> 0 - <6 0.0578
#> >=6 0.0289
#>
#> Details:
#>
#> User defined parameters:
#> Piecewise survival times : 0.00, 6.00
#> Control medians (exponential per interval) : 12.000, 24.000
#>
#> Treatment medians - Situation 1 (exponential per interval):
#> Group
#> Interval lowDose highDose
#> 0 - <6 15.000 18.000
#> >=6 30.000 36.000
#>
#> Default parameters: not available
#>
#> Generated parameters:
#> Control hazards (common) : 0.0578, 0.0289
#>
#> Hazard ratios - Situation 1:
#> Group
#> Interval lowDose highDose
#> 0 - <6 0.800 0.667
#> >=6 0.800 0.667
#> Group type : multi-arm
#>