Per-cycle adverse event probability rescaled from a trial proportion

Turns the proportion of patients with an adverse event over the trial follow-up period T into the probability of a first episode within a model cycle of length t in two steps: it recovers the implied constant rate r, then converts that rate to the cycle probability with the constant-rate conversion HE-FM-TP-001 on the Transition Probability page. The second step also applies to a rate per person-time from HE-FM-AER-002. The two steps together equal the single-step form 1 minus (1 minus P) raised to the power t/T, the rescaling formula HE-FM-TP-003 applied to trial safety data. Dividing P by the number of cycles is not equivalent, because probabilities do not add over time in the way rates do. The function log is the natural logarithm and exp is the exponential function.

Signature

r = -log(1 - P) / T; p_t = 1 - exp(-r * t)
Inputs
InputsDefinitionUnit
PProportion of patients with at least one episode of the adverse event over the follow-up period T, below 1probability from 0 to 1
TLength of the follow-up period over which P was observedtime, in the same unit as t, for example weeks
tLength of one model cycletime, in the same unit as T
Output
rConstant adverse event rate implied by the proportion P over the period Tevents per patient per unit of time of T
p_tProbability that an event-free patient has a first episode of the adverse event within one cycle of length tprobability from 0 to 1

Function

Adverse event rate to model input function

Maps the adverse event counts in a trial safety table, with their denominators of patients or person-time, to the probability of an event in one model cycle, and maps those probabilities to the expected adverse event cost and QALY loss per patient. The general rate and probability conversions are on the Transition Probability page (HE-FN-TP-001); the records here apply them to adverse event data and add the cost and QALY weighting.

Computational function

  • Computational function: trial adverse event counts to a per-cycle probability

    Takes the counts in a trial safety table, the number of patients with an adverse event and the number at risk, with the follow-up period and the model cycle length, and returns the probability of a first episode in one model cycle. It computes the trial proportion with HE-FM-AER-001 and then rescales it with HE-FM-AER-004 through the implied constant rate, so the inputs are counts rather than the proportion the formula takes. The general conversion from an annual probability is HE-CF-TP-002 on the Transition Probability page.

    Inputs and outputs: n_event: Number of patients with at least one episode of the adverse event during follow-up; required, from 0 up to but not including n_risk. Unit: count of patients.; n_risk: Number of patients at risk at the start of follow-up; required, above zero. Unit: count of patients.; T_follow: Length of the follow-up period; required, above zero. Unit: time, for example weeks.; L_cycle: Length of one model cycle, in the same unit as T_follow; required, above zero. Unit: time.; P_trial: Proportion of patients with an event over follow-up, returned as an intermediate output. Unit: probability from 0 to 1.; r_AE: Constant adverse event rate implied by the proportion, returned as an intermediate output. Unit: events per patient per unit of time.; p_cycle: Probability of a first adverse event within one model cycle. Unit: probability from 0 to 1.

    Assumption: Every patient is followed for the whole period, the event rate is constant over follow-up, patients leave the at-risk pool after a first episode, and the adverse event is the only exit from the state. With competing exits such as death or progression the rates are converted jointly, as in HE-FM-TP-004.

    Worked example (Eighteen per cent over 24 weeks to four-week cycles): In the article's illustrative trial, 36 of 200 patients on the new drug have grade 3 or higher diarrhoea within 24 weeks. The proportion of 0.18 implies a rate of about 0.00827 per patient-week and a four-week probability of about 0.0325. n_event = 36; n_risk = 200; T_follow = 24; L_cycle = 4; P_trial = 0.18; r_AE = 0.0082688; p_cycle = 0.032534

    Worked example (Comparator arm at eight per cent over 24 weeks): 16 of 200 patients on the comparator give a proportion of 0.08, a rate of about 0.00347 per patient-week and a four-week probability of about 0.0138. n_event = 16; n_risk = 200; T_follow = 24; L_cycle = 4; P_trial = 0.08; r_AE = 0.0034742; p_cycle = 0.013801

    Worked example (Cycle as long as follow-up returns the trial proportion): With a 24-week cycle the function returns the observed proportion of 0.18, a limiting case that checks the implementation. n_event = 36; n_risk = 200; T_follow = 24; L_cycle = 24; P_trial = 0.18; r_AE = 0.0082688; p_cycle = 0.18

    Excel: =1-EXP(LN(1-PatientsWithEvent/PatientsAtRisk)*CycleLength/FollowUp) All three steps in one cell, with the counts in PatientsWithEvent and PatientsAtRisk and the two lengths, in the same time unit, in CycleLength and FollowUp. The equivalent form =1-(1-PatientsWithEvent/PatientsAtRisk)^(CycleLength/FollowUp) gives the same result.

    R: ae_cycle_prob <- function(n_event, n_risk, follow_up, cycle_length) { p_trial <- n_event / n_risk; ae_rate <- -log(1-p_trial) / follow_up; 1-exp(-ae_rate * cycle_length) } Vectorised, so one call can return the cycle probabilities for every arm or event type held in parallel vectors.

    Python: def ae_cycle_prob(n_event, n_risk, follow_up, cycle_length): p_trial = n_event / n_risk; ae_rate = -math.log(1-p_trial) / follow_up; return 1-math.exp(-ae_rate * cycle_length) Uses the math module, where math.log is the natural logarithm; replacing math with numpy gives the vectorised form.

    Test (Six cycles reproduce the trial proportion): Compounding the cycle probability over the number of cycles in the follow-up period returns the observed proportion. Expected result: TRUE. Excel check: =ABS(1-(1-AECycleProb)^(FollowUp/CycleLength)-PatientsWithEvent/PatientsAtRisk)<1E-9

    Test (Counts allow a conversion): The number of patients with an event is below the number at risk, since a proportion of 1 implies an infinite rate, and both lengths are positive. Expected result: TRUE. Excel check: =AND(PatientsWithEvent>=0,PatientsWithEvent<PatientsAtRisk,FollowUp>0,CycleLength>0)

    Common error (Dividing the trial proportion by the number of cycles): Dividing 0.18 by six gives 0.03 per cycle, which over six cycles implies a cumulative risk of about 0.167 rather than the 0.18 observed. The proportion has to pass through the rate before it is rescaled.

    Source: Gidwani R, Russell LB. Estimating transition probabilities from published evidence: a tutorial for decision modelers. PharmacoEconomics. 2020;38(11):1153-1164. Equations 8 to 10 on converting a probability observed over one period to a rate and back to a probability for the model cycle.

    P_trial = n_event / n_risk; r_AE = -log(1 - P_trial) / T_follow; p_cycle = 1 - exp(-r_AE * L_cycle)

Try this function

Implementations

  • Excel

    Rescaled adverse event probability in one cell

    Excel raises the complement of the trial proportion to the ratio of the cycle length to the follow-up period, using named cells in the same time unit.

    =1-(1-TrialProportion)^(CycleLength/FollowUp)
  • Excel

    Adverse event cycle probability from a rate in one cell

    Excel returns the cycle probability from named cells holding the adverse event rate and the cycle length in the same time unit.

    =1-EXP(-AERate*CycleLength)

Assumptions

  • Constant adverse event rate across the trial period

    The risk of a first episode is the same in every week of follow-up, so each cycle on treatment receives the same probability. If events concentrate early, the uniform cycle probability understates the risk in the first cycles.

  • Event-free patients as the adverse event risk pool

    p_t is the probability of a first episode among patients still event-free, so the model removes patients from the at-risk pool after a first episode. If the same probability is applied to the whole cohort in every cycle, recurrence is implied: in the article's example six cycles at about 0.0325 give about 0.195 episodes per patient rather than 0.18, and an adverse event cost of about £351 rather than £324 at £1,800 an episode.

  • Adverse event as the single exit during the trial period

    The rescaling is exact only when the adverse event is the single exit from the state. When death, progression or stopping treatment compete with it, converting each transition separately gives incorrect numbers of patients moving to each state, so the rates are converted jointly (HE-FM-TP-004) or the model is restructured.

Worked examples

  • Eighteen per cent over 24 weeks rescaled to four-week cycles

    The new drug's 24-week proportion of 0.18 implies a rate of about 0.00827 per patient-week and a four-week probability of about 0.0325. Compounded over six cycles, the probability reproduces the observed 0.18, as in the article.

    P = 0.18; T = 24; t = 4; r = 0.0082688; p_t = 0.032534
  • Eight per cent over 24 weeks rescaled to four-week cycles

    The comparator's 24-week proportion of 0.08 implies a rate of about 0.00347 per patient-week and a four-week probability of about 0.0138.

    P = 0.08; T = 24; t = 4; r = 0.0034742; p_t = 0.013801

Common errors

  • Dividing a 24-week adverse event proportion by six cycles

    Dividing 0.18 by six gives 0.03 per four-week cycle. Over six cycles that implies a cumulative risk of about 0.167, not the 0.18 observed. In a model that tracks event-free patients the shortcut understates the new drug's cumulative risk by 1.3 percentage points and its adverse event cost by about £23 per patient at £1,800 an episode.

  • Using a per patient-year adverse event rate with a cycle in weeks

    The rate of about 0.00827 per patient-week is about 0.430 per patient-year, taking 52 weeks to a year. Entering 0.430 with a cycle length of 4 gives a cycle probability of about 0.821 instead of 0.0325. The cycle length has to be 4/52 of a year when the rate is per year.

Sources

  • Rescaling an adverse event probability to the model cycle length

    Gidwani R, Russell LB. Estimating transition probabilities from published evidence: a tutorial for decision modelers. PharmacoEconomics. 2020;38(11):1153-1164. Equations 8 to 10, which convert a probability to a rate on the assumption that events occurred evenly over the study period and back to a probability for the cycle length, and the section showing that these two-state equations do not give correct probabilities when three or more transitions can occur in a cycle.

    View source →

  • Rate and probability conversion for adverse event cycle inputs

    Fleurence RL, Hollenbeak CS. Rates and probabilities in economic modelling: transformation, translation and appropriate application. PharmacoEconomics. 2007;25(1):3-6. Editorial on the appropriate conversion of rates and probabilities when changing time intervals in economic models.

    View source →

Canonical Identity

Stable URI · Machine-readable · Resolvable · CC BY 4.0