Introduction
Before you can simulate anything — patient throughput across clinics, mission outcomes across regions, failure rates across product batches — you need a clean scaffold of trial rows to attach the random draws to. CreateSIPDataframe builds exactly that scaffold: a long-format "Stochastic Information Packet" (SIP) DataFrame that replicates each item in a list across a specified number of trials, giving every simulated scenario a unique, identifiable row to populate with subsequent simulation functions.
Creating SIP DataFrames is essential for:
- Healthcare: Simulating patient throughput scenarios across multiple hospital departments.
- Intelligence Analysis: Modeling mission success probabilities across various regional sectors.
- Cybersecurity: Simulating attack frequency and impact trials across different network nodes.
- Supply Chain: Generating demand-risk scenarios for a list of distribution centers.
- Epidemiology: Modeling infection spread trials across several demographic cohorts.
- Project Management: Simulating completion times for a list of interdependent tasks.
- Finance: Generating stochastic return profiles for a portfolio of different asset classes.
- Quality Assurance: Simulating failure rates for multiple batches of manufactured components.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
name_of_itemsrequired | str | — | The descriptive name for the column containing the items being simulated (e.g., 'Hospital Ward', 'Asset Class', 'Region'). |
list_of_itemsrequired | list | — | A list of unique identifiers or names for the objects being simulated. |
number_of_trials | int | 10000 | The number of stochastic trials (simulated scenarios) to generate for each item. Defaults to 10000. |
Returns
A long-format pandas DataFrame with two columns: 'Trial' (the trial index from 1 to number_of_trials) and the column specified by name_of_items.
Example
from analysistoolbox.simulations import CreateSIPDataframe
# Healthcare: creating a simulation shell for three different clinics
clinics_sip = CreateSIPDataframe(
name_of_items='Clinic Location',
list_of_items=['North', 'South', 'East'],
number_of_trials=1000
)
# Returns 3,000 rows (1,000 trials for each of the 3 clinics)