tsdive.switchback.make_design
¶
make_design(k: int, seed: int | Sequence[int]) -> Design
Observed assignment and reference set, deterministic in seed.
Enumerated designs list every balanced assignment, the observed one
included; larger designs draw the observed one and then 1000 fresh
ones. seed is anything numpy.random.default_rng accepts as a
seed, and the same seed gives the same design on every platform.
Raises:
| Type | Description |
|---|---|
DesignTooSmall
|
fewer than 20 balanced assignments, or a smallest attainable two-sided p above 0.05. |
Examples:
>>> from tsdive.switchback import make_design
>>> design = make_design(24, seed=7)
>>> design.k, design.enumerated, int(design.observed.sum()), design.matrix.shape
(24, False, 12, (1000, 24))
>>> make_design(4, seed=7)
Traceback (most recent call last):
...
tsdive.errors.DesignTooSmall: 4 blocks give 6 balanced assignments, fewer than 20; ...