Methodology & honest reporting

What was planned in advance, what was discovered afterwards, and how every number on this site was produced

1 · Why this page exists

Both artifacts on this site are exploratory self-directed projects built for PhD application evidence, not published papers. The purpose of this page is to separate what was committed to before seeing data from what emerged afterwards, to state the exact statistical caliber, and to list where every raw datum and script lives — so a reviewer can audit rather than take claims on faith.

2 · Exploratory phase vs confirmatory phase

Confirmatory (pre-registered)

  • Hypothesis written 2026-10-01 in PRE_REGISTRATION.md before any Hopper result was inspected.
  • Primary contrast: Baseline vs RewardScaled on asymptotic deterministic eval return.
  • Budget, seeds, eval protocol, and endpoint defined up front.
  • Result: null — p = 0.953; reported as-is.

Exploratory (post-hoc, uncorrected)

  • FixedAlpha control arm added after the first 60k pass to separate reward scaling from the auto-tuned α.
  • Pairwise Welch tests against FixedAlpha and the one-way ANOVA are descriptive only.
  • rl-deploy-bench pitfall catalog is engineering observation, not a controlled experiment.
  • No effect here is claimed as confirmed; all are labeled exploratory.

3 · Statistical caliber (Study 1)

ItemCaliber used
Unit of analysisOne per-seed tail mean per run; n = 3 seeds per arm (not individual eval episodes).
Asymptotic windowLast 4 deterministic eval points (105k–120k steps), mean per seed.
DispersionSample SD, ddof = 1; t-based 95% CI with df = n−1 = 2 (t0.975,2 = 4.303).
Pairwise testWelch t-test (scipy.stats.ttest_ind(equal_var=False)); mean-difference CI on Welch-Satterthwaite df.
OmnibusOne-way ANOVA (scipy.stats.f_oneway), uncorrected.
Effect sizeCohen's d and Hedges' g for the primary contrast; reported descriptively only at n = 3.
PowerNo power analysis was run. n = 3 with this seed variance has essentially no power; "p > 0.05" means not detectable, not "no effect".
Multiple comparisonsPost-hoc pairwise tests are not corrected (no Bonferroni/Holm); they are descriptive.

Recomputation: docs/assets/recompute_stats.py reads the committed raw CSVs directly and writes docs/assets/results.json; independent of plot.py. Numbers on the study page match both the README summary and this independent pass.

4 · Pre-registered vs post-hoc claims

Claim / analysisStatusEvidence source
RewardScaled ≥ Baseline on asymptotic returnPre-registeredPRE_REGISTRATION.md; tested Baseline vs RewardScaled, p = 0.953
Protocol: 120k steps, 3 seeds, 5 eval episodes/5k steps, last-4 windowPre-registeredPRE_REGISTRATION.md, configs/*.yaml
Hypothesis #2: higher eval at 50k (faster early learning)Pre-registered secondary, descriptive onlySingle 50k eval point per seed; Baseline ≈ 332, RewardScaled ≈ 354, FixedAlpha ≈ 667; no inferential test; results.json early_learning_50k_descriptive
FixedAlpha arm (α = 0.2 frozen, scale 0.1)Post-hoc controlAdded after 60k pass; configs/sac_hopper_fixedalpha.yaml
Baseline vs FixedAlpha, FixedAlpha vs RewardScaled Welch testsPost-hoc, uncorrecteddocs/assets/results.json
One-way ANOVA F = 0.22, p = 0.811Post-hoc, descriptivescipy.f_oneway over the three tail-mean vectors
Apparent ~3× win at the 60k pass being overturnedNarrative, old CSVs not committedRESEARCH_RETRO.md; not recomputed here
Training dynamics (final α, final Q1 per seed)DescriptiveLast train row of each committed CSV; recompute_stats.py
rl-deploy-bench pitfall taxonomyEngineering observationCommitted fix commits, CHANGELOG.md, regression tests

5 · Data & code availability

6 · Reproducibility limits, stated plainly

7 · About the author

Daizhi Liao (GitHub: dafahaha) — Network Engineering, Guangzhou University; interests in reinforcement learning, off-policy stability, embodied AI, and empirical auditing of deployed systems.

embodied-offpolicy-study · rl-deploy-bench · TransitTruth (live demo) · personal site