Compare commits

..
Author SHA1 Message Date
David Peter 49ebab2eb4 Correct the interpretation of Welch's t-test results 2026-10-02 11:29:44 +02:00
2 changed files with 22 additions and 10 deletions

No files matched your search

+15 -6
View File
@@ -4,14 +4,23 @@ This folder contains scripts that can be used in combination with hyperfines `--
```bash
hyperfine 'sleep 0.020' 'sleep 0.021' 'sleep 0.022' --export-json sleep.json
uv run plot_whisker.py sleep.json
./plot_whisker.py sleep.json
```
### Pre-requisites
Install [`uv`](https://docs.astral.sh/uv/getting-started/installation/) and run the
commands above from this directory.
To make these scripts work, you will need `numpy`, `matplotlib` and `scipy`.
The scripts declare their dependencies using [PEP 723](https://peps.python.org/pep-0723/)
inline script metadata. `uv run` automatically installs these dependencies in an
isolated environment before running the script.
If you have a Python package manager that understands [PEP-723](https://peps.python.org/pep-0723/)
inline script requirements like [`uv`](https://github.com/astral-sh/uv) or [`pipx`](https://github.com/pypa/pipx),
you can directly run the scripts using
```bash
uv run plot_whisker.py sleep.json
```
Otherwise, install the dependencies via your system package manager or using `pip`:
```bash
pip install numpy matplotlib scipy # pip3, if you are using python3
```
+7 -4
View File
@@ -7,8 +7,7 @@
# ///
"""This script performs Welch's t-test on a JSON export file with two
benchmark results to test whether or not the two distributions are
the same."""
benchmark results to test for a difference in their population mean runtimes."""
import argparse
import json
@@ -40,6 +39,10 @@ print(f"t = {t:.3}, p = {p:.3}")
print()
if dispose:
print(f"There is a difference between the two benchmarks (p < {th}).")
print(
f"A statistically significant difference in mean runtime was detected (p < {th})."
)
else:
print(f"The two benchmarks are almost the same (p >= {th}).")
print(
f"No statistically significant difference in mean runtime was detected (p >= {th})."
)