Experiment Results
This page shows what an experiment compares, checks and writes: the comparison of designs, the checks, the observed values, the files and the report.
How to Use It
Compare Designs
Each compare pair gives, for each measure and each sweep point, the variant's value minus the baseline's in each replication, the mean of those differences and its Student t half-width. An interval that does not contain 0 says the designs differ at that confidence level.
Check Results
A check bounds one measure of one variant, or of every variant when variant is left out:
maxandmin: the bound, or both for a range.on: interval, the default, compares the far end of the interval with the bound: the upper end withmaxand the lower end withmin. A mean below the bound only by chance does not pass.on: meancompares the mean, for a quick look, not a decision.
A check whose measure is not in measures is refused. The experiment writes every file before it reports a failed check, so the report shows what failed.
Compare With Observed Values
observed names a CSV of values measured in the real system, with the columns measure, value, unit, population and horizon. Each row is placed beside the simulated interval of variant (the first variant when it is not given), and the report says whether the value lies inside it. A value means something only beside a simulated value of the same kind, so the experiment refuses a row whose unit, population or horizon differs from the measure's:
| Statistic | Unit | Population |
|---|---|---|
wait_* of a task, recorded when an instance starts work |
s |
started instances |
service_* of a task, recorded when an instance finishes |
s |
finished instances |
utilization and utilization_avg |
percent |
end of run and time average |
other *_avg, such as queue_length_avg |
count, or amount for a container |
time average |
task and flow counts, such as finished and started |
count |
count over the horizon |
in_system of a flow and in_progress of a task |
count |
end of run |
other readings, such as queue_length |
count, or amount for a container |
end of run |
The horizon is until minus the warm-up, in seconds or a duration such as 57 min; it describes a run that ends at until, so with a stop or a drain the observed values must cover the same entities as the simulated ones. This compares the model's output with the real system's; it is not the fitting of an input distribution, which Input Fitting covers.
Files
An experiment writes six files to its output folder:
| File | Holds |
|---|---|
experiment.json |
the settings, the question, assumptions, inputs and limits; the model's source and its SHA-256, its sim id and its compiled parameters; desflow, SimPy, NumPy and Python versions; each design's registry values, seeds and the streams each run drew from; the counts' names; the observed comparison |
results.csv |
one row per design, replication and statistic: design, variant, a column per swept path, replication, seed, statistic, kind (measure or count), unit, population and value |
summary.csv |
one row per design and statistic: unit, population, n, mean, half_width, low, high and level |
comparisons.csv |
one row per compared pair, sweep point and measure: both means, difference, half_width, low, high, and the streams in streams_both, streams_baseline_only and streams_variant_only |
checks.csv |
one row per check, design and bound: on, bound, limit, the checked value and passed |
report.md |
the report, built from the five files above |
Read the Report
report.md has these sections, and one with nothing to report says so: Question, Model, Assumptions, Inputs and Provenance (every distribution of the model with its parameters, and its provenance from inputs or "not stated"), Run Settings, Counts (the mean of each count the statistics publish, such as finished orders, for each design), Results (with the population each measure is taken over), Comparisons, Checks, Observed Comparison, Limits and Missing Inputs. Missing Inputs names what the experiment does not state, such as an input without a provenance, rather than filling it in. This is the middle of the example's report:
desflow report results/packers builds the report again from the other five files, such as after editing experiment.json by hand.