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.

How large are the observed changes in each domain, and how precisely are their means estimated? All participants. 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. Exact values follow in the table.

CSV · all three strata (overlapping; do not sum)

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.

Symptom changes with uncertainty · Python · All participants
PopulationTreatment armSymptom domainComplete pairs nScheduled roster NMissing nMean change (points)SD (points)95% CI lower95% CI upper
AllReferenceFatigue17181-2.7956.542-6.1580.569
AllReferencePain17181-6.2926.287-9.524-3.060
AllReferenceSleep17181-2.7434.690-5.154-0.332
AllReferenceAppetite17181-5.7005.913-8.740-2.660
AllReferenceMobility17181-5.0674.022-7.135-2.999
AllInvestigationalFatigue17181-12.6895.249-15.388-9.991
AllInvestigationalPain17181-13.0075.773-15.975-10.039
AllInvestigationalSleep17181-12.9195.049-15.515-10.324
AllInvestigationalAppetite17181-16.2974.856-18.793-13.800
AllInvestigationalMobility17181-19.3893.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.

  1. Open the selected CSV and reconcile counts before comparing outcomes.
  2. Run the minimal example locally, then inspect the native Figure or ggplot object.
  3. 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.
  4. Run invalid-input and known-answer checks before comparing R/Python outputs.

Cross-domain adaptation notes and clinical coverage matrix

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.