Skip to contents

Creates a time-indexed schedule of enrollment and dropout events across arms by sampling inter-event times from user-supplied distribution functions. Each call produces a different realization, capturing natural variability in study timelines.

Usage

stochastic_schedule(sample_size, arms, allocation, enrollment, dropout = NULL)

Arguments

sample_size

integer Trial sample size.

arms

character vector of arm identifiers.

allocation

numeric vector of allocation ratios.

enrollment

function that takes n and returns n inter-arrival times (e.g. function(n) rexp(n, rate = 1)).

dropout

function that takes n and returns n inter-dropout times.

Value

data.frame with columns: time, arm, enroll (always 1), drop (always 0 or 1). One row per subject event, sorted by arm, then time.

Details

Use this when trial-duration variability is substantively important. For a fixed, reproducible schedule see deterministic_schedule().

See also

deterministic_schedule() for piecewise-constant rates, Timer$add_schedule() to attach to a Timer.

Examples

stochastic_schedule(
  sample_size = 100,
  arms = c("A", "B"),
  allocation = c(2, 1),
  enrollment = function(n) rexp(n, rate = 0.5),
  dropout    = function(n) rexp(n, rate = 0.1)
)
#>            time arm enroll drop
#> 1      2.138888   A      1    0
#> 2      5.153133   A      1    0
#> 3      6.809122   A      1    0
#> 4      7.141244   A      1    0
#> 5     15.794766   A      1    0
#> 6     17.674250   A      1    0
#> 7     19.141605   A      1    0
#> 8     19.167919   A      0    1
#> 9     27.499409   A      1    0
#> 10    27.685114   A      1    0
#> 11    28.146922   A      0    1
#> 12    35.937856   A      1    0
#> 13    37.493785   A      1    0
#> 14    38.885187   A      1    0
#> 15    39.034750   A      1    0
#> 16    40.726927   A      1    0
#> 17    41.085161   A      0    1
#> 18    42.394469   A      0    1
#> 19    48.986946   A      0    1
#> 20    51.305409   A      1    0
#> 21    51.829223   A      0    1
#> 22    52.202823   A      1    0
#> 23    55.731013   A      1    0
#> 24    57.643810   A      1    0
#> 25    58.860835   A      1    0
#> 26    62.008714   A      1    0
#> 27    64.420644   A      0    1
#> 28    68.713206   A      1    0
#> 29    69.102620   A      1    0
#> 30    71.171258   A      1    0
#> 31    72.352946   A      1    0
#> 32    77.497755   A      1    0
#> 33    77.843506   A      1    0
#> 34    85.847857   A      1    0
#> 35    87.285035   A      1    0
#> 36    91.303265   A      0    1
#> 37    91.317525   A      1    0
#> 38    98.170226   A      1    0
#> 39   101.274155   A      1    0
#> 40   104.690755   A      1    0
#> 41   105.304466   A      1    0
#> 42   110.293065   A      1    0
#> 43   111.685587   A      1    0
#> 44   113.724258   A      1    0
#> 45   116.368706   A      1    0
#> 46   116.767295   A      0    1
#> 47   116.910177   A      1    0
#> 48   119.601329   A      1    0
#> 49   120.879197   A      1    0
#> 50   125.514770   A      0    1
#> 51   129.836557   A      1    0
#> 52   141.197623   A      1    0
#> 53   142.848979   A      1    0
#> 54   146.809684   A      0    1
#> 55   149.699507   A      1    0
#> 56   155.177160   A      1    0
#> 57   159.086000   A      1    0
#> 58   162.100666   A      1    0
#> 59   168.653439   A      1    0
#> 60   170.142104   A      1    0
#> 61   170.804506   A      1    0
#> 62   174.778502   A      0    1
#> 63   174.918456   A      0    1
#> 64   178.182842   A      1    0
#> 65   178.963263   A      1    0
#> 66   181.255650   A      1    0
#> 67   181.448627   A      1    0
#> 68   183.194996   A      1    0
#> 69   185.984909   A      1    0
#> 70   186.344516   A      1    0
#> 71   186.591218   A      1    0
#> 72   187.346103   A      1    0
#> 73   189.222563   A      1    0
#> 74   189.750071   A      1    0
#> 75   195.765972   A      1    0
#> 76   206.660424   A      1    0
#> 77   208.970692   A      1    0
#> 78   211.858075   A      0    1
#> 79   212.404234   A      1    0
#> 80   217.331796   A      0    1
#> 81   217.674780   A      1    0
#> 82   218.525097   A      0    1
#> 83   221.354350   A      0    1
#> 84   223.047336   A      1    0
#> 85   230.221254   A      0    1
#> 86   236.076021   A      0    1
#> 87   250.509163   A      0    1
#> 88   256.733910   A      0    1
#> 89   268.036853   A      0    1
#> 90   276.831528   A      0    1
#> 91   293.796791   A      0    1
#> 92   310.517306   A      0    1
#> 93   311.477191   A      0    1
#> 94   328.470589   A      0    1
#> 95   338.505490   A      0    1
#> 96   342.897235   A      0    1
#> 97   351.509292   A      0    1
#> 98   374.441441   A      0    1
#> 99   446.839784   A      0    1
#> 100  450.578695   A      0    1
#> 101  477.612773   A      0    1
#> 102  495.319160   A      0    1
#> 103  504.503082   A      0    1
#> 104  516.230845   A      0    1
#> 105  543.723713   A      0    1
#> 106  544.742167   A      0    1
#> 107  563.369574   A      0    1
#> 108  570.385301   A      0    1
#> 109  627.918899   A      0    1
#> 110  655.253946   A      0    1
#> 111  673.914334   A      0    1
#> 112  681.721414   A      0    1
#> 113  710.198273   A      0    1
#> 114  731.889734   A      0    1
#> 115  738.417387   A      0    1
#> 116  744.435744   A      0    1
#> 117  748.990998   A      0    1
#> 118  768.600725   A      0    1
#> 119  775.151957   A      0    1
#> 120  804.038857   A      0    1
#> 121  813.043690   A      0    1
#> 122  828.739905   A      0    1
#> 123  869.436383   A      0    1
#> 124  873.808618   A      0    1
#> 125  883.280805   A      0    1
#> 126  929.880265   A      0    1
#> 127  954.419451   A      0    1
#> 128  960.813101   A      0    1
#> 129  964.872692   A      0    1
#> 130  966.227659   A      0    1
#> 131  970.653844   A      0    1
#> 132  975.702729   A      0    1
#> 133  987.891104   A      0    1
#> 134 1004.293969   A      0    1
#> 135 1010.929775   A      0    1
#> 136 1024.075802   A      0    1
#> 137    1.441442   B      1    0
#> 138    1.980644   B      1    0
#> 139   10.554247   B      1    0
#> 140   26.703948   B      0    1
#> 141   27.035571   B      1    0
#> 142   30.082964   B      1    0
#> 143   33.829521   B      1    0
#> 144   36.576342   B      1    0
#> 145   39.877434   B      1    0
#> 146   48.583798   B      1    0
#> 147   58.862487   B      1    0
#> 148   68.612242   B      0    1
#> 149   71.059542   B      1    0
#> 150   76.717672   B      1    0
#> 151   81.167062   B      1    0
#> 152   85.618107   B      1    0
#> 153   91.372649   B      1    0
#> 154   94.813789   B      1    0
#> 155   95.091200   B      1    0
#> 156  103.958714   B      1    0
#> 157  106.241449   B      1    0
#> 158  107.471445   B      1    0
#> 159  107.980994   B      0    1
#> 160  111.293453   B      0    1
#> 161  118.144625   B      1    0
#> 162  133.863819   B      1    0
#> 163  143.601087   B      1    0
#> 164  147.052167   B      1    0
#> 165  156.104332   B      0    1
#> 166  156.807975   B      1    0
#> 167  160.546253   B      1    0
#> 168  171.475067   B      1    0
#> 169  189.644911   B      1    0
#> 170  205.572786   B      1    0
#> 171  209.258987   B      1    0
#> 172  210.074238   B      1    0
#> 173  210.703123   B      1    0
#> 174  218.524195   B      1    0
#> 175  237.787332   B      0    1
#> 176  266.407906   B      0    1
#> 177  308.082786   B      0    1
#> 178  327.279672   B      0    1
#> 179  387.024716   B      0    1
#> 180  435.392063   B      0    1
#> 181  440.305474   B      0    1
#> 182  458.567762   B      0    1
#> 183  461.751720   B      0    1
#> 184  539.460709   B      0    1
#> 185  559.474342   B      0    1
#> 186  567.806745   B      0    1
#> 187  578.173133   B      0    1
#> 188  615.294177   B      0    1
#> 189  645.536789   B      0    1
#> 190  668.727620   B      0    1
#> 191  702.719175   B      0    1
#> 192  737.031704   B      0    1
#> 193  768.012610   B      0    1
#> 194  770.573496   B      0    1
#> 195  797.512226   B      0    1
#> 196  830.111280   B      0    1
#> 197  850.148989   B      0    1
#> 198  898.214959   B      0    1
#> 199  996.342987   B      0    1
#> 200  996.976654   B      0    1