geostep.designer.StaircaseDesigner

class geostep.designer.StaircaseDesigner(num_sequences: int, clusters_per_sequence: int, control_periods: int, intervention_periods: int)

Methods

__init__(num_sequences, ...)

Initialize designer with configuration.

design()

Creates a design matrix for a staircase cluster randomized trial.

enable_monitoring([enabled])

Enable or disable performance monitoring.

get_metrics()

Get performance and execution metrics.

monitor_operation(operation_name[, ...])

Context manager for monitoring operations.

post_process_design(design_df)

Post-process design results.

prepare_data(*args, **kwargs)

Prepare data for staircase design.

set_metrics_collector(collector)

Set the metrics collector for this instance.

validate_inputs(*args, **kwargs)

Validate staircase design parameters.

Attributes

__init__(num_sequences: int, clusters_per_sequence: int, control_periods: int, intervention_periods: int)

Initialize designer with configuration.

validate_inputs(*args, **kwargs) None

Validate staircase design parameters.

Raises:

ValidationError – If any design parameter is invalid.

prepare_data(*args, **kwargs) None

Prepare data for staircase design.

For staircase design, no data preparation is needed as it’s parameter-based.

design() DataFrame

Creates a design matrix for a staircase cluster randomized trial.

Returns:

A design matrix with columns for sequence, cluster, period, and assignment. ‘assignment’ is ‘Control’ or ‘Treatment’.

Return type:

pd.DataFrame

Raises:

ValidationError – If input validation fails.

randomize(geos, seed: int = 42, geo_col: str = 'geo_id') DataFrame

Randomly allocate actual eligible geos to the generated sequences.

The returned table is the retained allocation and observation schedule. design() alone creates a synthetic schedule, not an allocation.