
Test the imbalance of randomisation via simulation
imbalance_test.Rd
This function tests whether the observed imbalance is less than might be expected via a random draw, via a permutation test.
Usage
imbalance_test(
data,
randovar,
n_iter = 1000,
stratavars = NULL,
arms = NULL,
cross = TRUE,
...
)
Arguments
- data
a dataframe with the variables indicated in
randovar
and, optionally,stratavars
- randovar
character with the variable name indicating the randomisation
- n_iter
integer. number of simulations to perform
- stratavars
character vector with the variable names indicating the stratification variables
- arms
character vector of arms in the appropriate balance. If NULL the levels in
randovar
are used and assumed to be balanced- cross
logical. Whether to cross the stratification variables.
- ...
other arguments passed onto other methods
Value
a list with:
n_rando
: the number of randomisationsstratavars
: the names of the stratification variablesarms
: the armsobserved
: a dataframe with the observed imbalancesimulated
: a dataframe with the simulated imbalances (number of rows =nrow(n_iter)
)tests
: a dataframe with the p-values
Examples
data(rando_balance)
# without stratification variables
imbalance_test(rando_balance, "rando_res")
#> assuming balanced randomisation between arms
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 88% | ETA: 0s
#> Randomisations to date: 100
#> Overall imbalance: 0
#> Probability of equal or less imbalance from random allocation: 0.069
imb <- imbalance_test(rando_balance, "rando_res", stratavars = "strat1")
#> assuming balanced randomisation between arms
#> Simulating randomisations ■■■■■■■ 19% | ETA: 10s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■ 65% | ETA: 5s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 89% | ETA: 1s
imbalance_test(rando_balance, "rando_res", stratavars = c("strat1", "strat2"))
#> assuming balanced randomisation between arms
#> Simulating randomisations ■■■■■■ 16% | ETA: 25s
#> Simulating randomisations ■■■■■■■■■■■■ 36% | ETA: 19s
#> Simulating randomisations ■■■■■■■■■■■■■■■ 46% | ETA: 16s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■ 56% | ETA: 13s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■ 66% | ETA: 10s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■ 76% | ETA: 7s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 86% | ETA: 4s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 96% | ETA: 1s
#> Randomisations to date: 100
#> Overall imbalance: 0
#> Probability of equal or less imbalance from random allocation: 0.083
#>
#> Randomisation stratified by strat1 and strat2
#> Maximum observed imbalanced within stratifying variables: 0
#> Probability of equal or less imbalance from random allocation: 0.083
#> Maximum observed imbalanced within individual strata: 3
#> Probability of equal or less imbalance from random allocation: 0.108
imb <- imbalance_test(rando_balance, "rando_res2", stratavars = c("strat1", "strat2"))
#> assuming balanced randomisation between arms
#> Simulating randomisations ■■■■■■ 16% | ETA: 25s
#> Simulating randomisations ■■■■■■■■■■■■ 36% | ETA: 19s
#> Simulating randomisations ■■■■■■■■■■■■■■■ 47% | ETA: 16s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■ 57% | ETA: 13s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■ 67% | ETA: 10s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■ 77% | ETA: 7s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 87% | ETA: 4s
#> Simulating randomisations ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 98% | ETA: 1s