Figure Library / Learning paths
A quantitative companion to radar · Synthetic teaching data
Symptom changes with uncertainty
How large are the observed changes in each domain, and how precisely are their means estimated?
Adds actual pointwise intervals, paired changes and per-domain exclusions, while retaining the original radar as a different descriptive view.
Explore the executed results
Selection switches exact precomputed results. It changes the figure, denominators, table, summary and current-selection downloads together. No analysis runs in this browser.
Python · All participants · 10 computed rows. Review population counts and exact values in the table below.
Image unavailable. Use the numerical table and downloads below.
Values behind this selection
The table scrolls within this panel. All computed rows are included in the current-selection CSV and JSON.
Display rounded to three decimals. Downloaded CSV/JSON retains analysis precision. “Unavailable” is not zero.
| Population | Treatment arm | Symptom domain | Complete pairs n | Scheduled roster N | Missing n | Mean change (points) | SD (points) | 95% CI lower | 95% CI upper |
|---|---|---|---|---|---|---|---|---|---|
| All | Reference | Fatigue | 17 | 18 | 1 | -2.795 | 6.542 | -6.158 | 0.569 |
| All | Reference | Pain | 17 | 18 | 1 | -6.292 | 6.287 | -9.524 | -3.060 |
| All | Reference | Sleep | 17 | 18 | 1 | -2.743 | 4.690 | -5.154 | -0.332 |
| All | Reference | Appetite | 17 | 18 | 1 | -5.700 | 5.913 | -8.740 | -2.660 |
| All | Reference | Mobility | 17 | 18 | 1 | -5.067 | 4.022 | -7.135 | -2.999 |
| All | Investigational | Fatigue | 17 | 18 | 1 | -12.689 | 5.249 | -15.388 | -9.991 |
| All | Investigational | Pain | 17 | 18 | 1 | -13.007 | 5.773 | -15.975 | -10.039 |
| All | Investigational | Sleep | 17 | 18 | 1 | -12.919 | 5.049 | -15.515 | -10.324 |
| All | Investigational | Appetite | 17 | 18 | 1 | -16.297 | 4.856 | -18.793 | -13.800 |
| All | Investigational | Mobility | 17 | 18 | 1 | -19.389 | 3.991 | -21.440 | -17.337 |
Why this figure, and what it estimates
A common linear axis supports direct magnitude comparisons, while separate points and intervals avoid interpreting radar polygon area as an effect. Each point represents a mean within-person change.
Analysis contract
For each arm/domain/stratum, calculate complete-pair Week-12 minus baseline change, sample SD, and a pointwise 95% t interval using n-1 degrees of freedom. n=1 retains the mean with no interval; n=0 is unavailable. No multiplicity adjustment; no imputation or covariate adjustment.
Assigned fictional arms; baseline = scheduled Week 0. No visit windows or treatment switching. Subjects are independent; domain scores are invented 0–100 points. Missing outcomes stay missing; missing scheduled rows are rejected.
Full input, units, missingness, interval, rounding and tolerance specification
Do not overinterpret
Intervals describe arm means, not the between-arm contrast. Overlap is not an interaction or treatment test. The five scales are invented, and observed pairs may be selected by missingness. Do not pair subjects across arms or call these confirmatory results.
Alternative views
Use a forest plot of adjusted between-arm contrasts for treatment inference. Use individual paired plots to inspect heterogeneous changes. Radar remains a compact descriptive profile but omits precision.
Read, reproduce, then adapt
Four-step review guide · Compare complementary figures
Choose Male and inspect each domain's n. Recompute SE = SD / sqrt(n), then the t interval. Explain why five pointwise intervals are not a simultaneous 95% statement.
- Open the selected CSV and reconcile counts before comparing outcomes.
- Run the minimal example locally, then inspect the native Figure or ggplot object.
- For your own authorized data, explicitly map subject, arm, scheduled time and units. Keep expected missing visits as rows, document exclusions, and revise the contract for your trial design.
- Run invalid-input and known-answer checks before comparing R/Python outputs.
Executed source and separate QC layers
Original author: Jaime Yan. Personal noncommercial use only. License · Required citation · Upstream attribution
Python reusable implementation · R reusable implementation · Complete reproducible source bundle
Extract the complete bundle and run these commands from its root. Recorded environments: Python · R.
python examples/extensions.py domain-intervals All
Rscript --vanilla examples/extensions.R domain-intervals All
python scripts/render_extensions.py
Rscript --vanilla scripts/render_extensions.R
Rscript --vanilla scripts/verify_extensions.R
python scripts/verify_extensions.py- Numerical validation
- 670 values across three templates; max absolute difference 5.329e-14. Tolerance 1e-9 absolute/relative; counts exact.
- Data QC
- Keys, schedules, units, finite ranges, empty and sparse populations tested.
- Export QC
- CSV/JSON selection, parsed SVG, PNG dimensions, readable PDF text and Python text bounds checked.
- Package-risk assessment
- Not run. Numerical agreement is not package-risk or regulatory validation.
- Browser evidence
- Recorded separately in the local delivery report; no accessibility certification claimed.
Machine-readable numerical QC · Source, input and artifact hashes
Input: the library's original synthetic generator, seed 20260921, 36 fictional participants. Separate from CDISC Pilot. The deterministic missingness mechanism is described in the contract. No patient or employer records.