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)

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 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, add_timepoints() 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     1.456704   A      1    0
#> 2     2.734573   A      1    0
#> 3     9.093571   A      0    1
#> 4    10.299181   A      0    1
#> 5    11.691932   B      1    0
#> 6    15.719194   A      1    0
#> 7    23.052998   A      1    0
#> 8    24.704354   B      1    0
#> 9    25.456462   A      1    0
#> 10   26.632057   B      0    1
#> 11   26.936810   B      0    1
#> 12   27.361450   A      0    1
#> 13   28.907542   A      1    0
#> 14   31.554882   A      1    0
#> 15   37.032535   A      1    0
#> 16   38.663351   B      1    0
#> 17   40.690759   A      0    1
#> 18   40.941375   A      1    0
#> 19   42.401628   A      1    0
#> 20   43.956041   B      1    0
#> 21   50.508814   B      1    0
#> 22   50.738620   A      0    1
#> 23   51.997479   A      1    0
#> 24   52.659881   A      1    0
#> 25   53.203848   A      0    1
#> 26   53.330442   A      1    0
#> 27   60.038217   A      1    0
#> 28   60.818638   B      1    0
#> 29   63.111025   A      1    0
#> 30   63.304002   A      1    0
#> 31   65.050371   A      1    0
#> 32   67.840284   A      1    0
#> 33   68.199891   A      1    0
#> 34   68.265026   B      0    1
#> 35   68.446593   A      1    0
#> 36   69.201478   B      1    0
#> 37   71.077938   A      1    0
#> 38   71.500286   A      1    0
#> 39   71.605446   A      1    0
#> 40   72.065417   A      0    1
#> 41   77.621347   A      1    0
#> 42   87.428161   B      1    0
#> 43   88.515799   B      1    0
#> 44   90.826067   A      1    0
#> 45   91.114362   A      1    0
#> 46   91.929614   B      1    0
#> 47   92.558498   B      1    0
#> 48   94.259609   A      1    0
#> 49   96.175637   A      0    1
#> 50   99.530155   A      1    0
#> 51  100.379570   A      1    0
#> 52  101.815015   B      0    1
#> 53  104.902711   A      1    0
#> 54  104.915437   B      1    0
#> 55  107.768739   B      1    0
#> 56  109.764899   B      1    0
#> 57  110.670494   A      1    0
#> 58  111.274985   B      1    0
#> 59  111.379158   A      1    0
#> 60  111.437882   A      1    0
#> 61  112.027651   A      1    0
#> 62  113.789375   A      1    0
#> 63  117.078688   A      1    0
#> 64  121.941369   A      1    0
#> 65  124.964297   B      1    0
#> 66  128.453191   B      1    0
#> 67  129.501132   A      1    0
#> 68  129.610712   A      1    0
#> 69  129.628790   A      1    0
#> 70  130.401586   A      1    0
#> 71  130.550328   A      1    0
#> 72  130.756323   B      1    0
#> 73  131.737690   A      1    0
#> 74  132.150422   B      1    0
#> 75  133.612130   B      1    0
#> 76  134.269398   A      0    1
#> 77  137.168882   A      1    0
#> 78  137.847296   A      1    0
#> 79  138.033387   B      1    0
#> 80  139.279242   B      1    0
#> 81  140.315909   A      1    0
#> 82  140.666292   A      0    1
#> 83  147.816144   A      1    0
#> 84  148.374101   A      0    1
#> 85  150.249668   A      1    0
#> 86  156.619590   A      0    1
#> 87  157.051173   A      1    0
#> 88  158.242785   B      1    0
#> 89  158.994986   A      1    0
#> 90  159.329237   A      1    0
#> 91  159.484021   A      0    1
#> 92  159.532530   B      0    1
#> 93  160.002532   A      1    0
#> 94  160.047790   A      1    0
#> 95  161.098793   B      1    0
#> 96  161.197818   A      1    0
#> 97  172.360536   A      1    0
#> 98  173.097226   A      1    0
#> 99  173.225831   A      0    1
#> 100 175.555013   A      1    0
#> 101 177.497733   B      1    0
#> 102 178.731278   B      1    0
#> 103 184.959304   B      1    0
#> 104 185.090380   A      0    1
#> 105 187.255540   A      1    0
#> 106 187.632594   B      0    1
#> 107 188.204440   A      1    0
#> 108 188.588156   A      0    1
#> 109 190.374854   B      1    0
#> 110 190.593582   B      1    0
#> 111 193.562068   A      1    0
#> 112 194.701794   B      1    0
#> 113 194.984731   B      1    0
#> 114 195.370183   A      1    0
#> 115 195.590172   A      1    0
#> 116 195.623012   A      1    0
#> 117 196.162516   A      1    0
#> 118 201.295025   B      1    0
#> 119 204.656562   A      1    0
#> 120 204.711489   B      0    1
#> 121 207.286188   A      1    0
#> 122 209.406998   A      1    0
#> 123 212.115352   B      1    0
#> 124 223.879408   A      0    1
#> 125 231.415438   B      0    1
#> 126 232.858411   A      0    1
#> 127 245.796650   A      0    1
#> 128 247.105958   B      0    1
#> 129 253.698436   A      0    1
#> 130 256.540712   B      0    1
#> 131 269.132134   A      0    1
#> 132 273.323731   A      0    1
#> 133 296.014755   A      0    1
#> 134 312.692483   A      0    1
#> 135 316.004942   B      0    1
#> 136 321.478785   A      0    1
#> 137 330.226260   B      0    1
#> 138 351.521173   A      0    1
#> 139 360.815822   A      0    1
#> 140 379.489991   B      0    1
#> 141 379.629946   A      0    1
#> 142 416.569564   A      0    1
#> 143 422.043285   A      0    1
#> 144 423.236587   B      0    1
#> 145 426.065839   A      0    1
#> 146 434.932743   A      0    1
#> 147 440.787510   B      0    1
#> 148 442.498821   A      0    1
#> 149 455.220653   A      0    1
#> 150 461.445400   B      0    1
#> 151 471.119395   B      0    1
#> 152 472.748342   B      0    1
#> 153 481.543017   A      0    1
#> 154 498.508281   A      0    1
#> 155 512.794275   A      0    1
#> 156 515.228795   A      0    1
#> 157 516.188681   B      0    1
#> 158 531.991161   B      0    1
#> 159 533.182079   A      0    1
#> 160 543.216979   A      0    1
#> 161 547.608725   A      0    1
#> 162 556.220781   B      0    1
#> 163 579.152930   A      0    1
#> 164 591.736205   A      0    1
#> 165 640.103553   A      0    1
#> 166 645.016964   B      0    1
#> 167 651.551274   A      0    1
#> 168 655.290184   B      0    1
#> 169 663.279251   A      0    1
#> 170 666.463210   B      0    1
#> 171 682.324262   A      0    1
#> 172 700.030649   A      0    1
#> 173 709.214571   A      0    1
#> 174 720.942334   B      0    1
#> 175 744.172198   A      0    1
#> 176 748.435202   B      0    1
#> 177 749.453656   A      0    1
#> 178 764.185832   B      0    1
#> 179 768.081064   A      0    1
#> 180 772.518235   A      0    1
#> 181 775.096790   A      0    1
#> 182 782.884622   A      0    1
#> 183 820.005666   A      0    1
#> 184 832.630388   A      0    1
#> 185 850.248279   A      0    1
#> 186 859.965435   A      0    1
#> 187 873.439110   A      0    1
#> 188 878.625823   A      0    1
#> 189 886.432903   A      0    1
#> 190 907.430665   B      0    1
#> 191 914.909762   B      0    1
#> 192 936.601223   B      0    1
#> 193 941.743194   A      0    1
#> 194 943.128877   A      0    1
#> 195 949.147234   A      0    1
#> 196 953.702488   A      0    1
#> 197 972.724100   A      0    1
#> 198 973.312215   A      0    1
#> 199 975.284986   B      0    1
#> 200 979.863447   A      0    1