Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

OED for anisotropy — where to spend telescope time on r_a (B14)

The optimiser discovers that proper motions belong in the outskirts — without being told the physics

San Diego State University

This is the first worked example of optimal experimental design: given a fixed budget of stars, where on the sky and in which channel should you measure to pin one number — the cluster’s velocity anisotropy? The answer the optimiser returns, having been told none of the underlying physics, is the lesson: proper motions belong in the outskirts.

The physical question: how do you measure orbital anisotropy?

Our target is the velocity anisotropy of a star cluster — the degree to which stellar orbits are radially or tangentially biased, captured by the Binney parameter β(r)\beta(r) Equation. We adopt the Osipkov–Merritt law Merritt, 1985,

βOM(r)  =  r2r2+ra2,\beta_{\rm OM}(r) \;=\; \frac{r^2}{r^2 + r_a^2},

isotropic in the core and increasingly radial outward, with a single knob: the anisotropy radius rar_a, the radius where β=12\beta=\tfrac12. Measuring the cluster’s orbital structure is measuring rar_a.

Why does this matter physically? Anisotropy is a fossil of how a cluster formed and how it is being torn apart: violent relaxation, tidal stripping, and radial-orbit instability all leave their signature in β(r)\beta(r). In dwarf-galaxy dynamics the same β\beta is the dominant nuisance in the mass–anisotropy degeneracy that limits dark-matter cusp-versus-core measurements. So rar_a is both a number worth measuring and a number that is notoriously hard to measure — which is what makes it a perfect OED target.

Why proper motions, and why the outskirts

The three sky channels — line-of-sight RV, radial PM, tangential PM — are the B&M82 projection Equation of one internal σr(r)\sigma_r(r) and β(r)\beta(r). The key fact, derived there: in the isotropic limit the three channels are identical — the anisotropy lives only in their ratios. The tangential proper motion is the cleanest probe, σpm,T2(1β)\sigma_{{\rm pm},T}^2\propto(1-\beta), so as orbits turn radial it collapses while the other channels stay up. And because β(r)\beta(r) grows outward, the channels disagree most in the outskirts. A single σlos(R)\sigma_{\rm los}(R) profile cannot break the tie — a cold outer LOS profile can mean “low σr\sigma_ror “high β\beta.” Proper motions break it. Keep that picture in mind: it is the physics the optimiser is about to rediscover, having been told none of it.

Inputs and assumptions

The design optimises over a fixed budget of NtotalN_{\rm total} stars allocated across K=12K=12 projected-radius bins ×\times 3 kinematic channels (36 cells). The science target is rar_a; total mass MM and half-mass radius rhr_h are nuisances carried with fractional priors. Everything is computed pre-data — no mock catalogue enters the optimisation loop (a 64-draw calibration ensemble afterwards is a gate, not part of the design).

Model inputs

Input

Meaning and role

Status (fiducial)

rar_a

Osipkov–Merritt anisotropy radius — the science target; βOM(r)=r2/(r2+ra2)\beta_{\rm OM}(r)=r^2/(r^2+r_a^2). c-optimality minimises its marginal variance.

target (6.0 pc =2rh=2\,r_h; well inside OM validity ra0.75ar_a\gg0.75\,a)

MM, rhr_h

Total mass and Plummer half-mass radius — nuisances, profiled out; each carries a 30% fractional (dlnθd\ln\theta) prior (e.g. MM from integrated light, rhr_h from photometry).

nuisances (M=105MM=10^5\,\Msun, rh=3.0r_h=3.0 pc) with σprior/θ=0.3\sigma_{\rm prior}/\theta=0.3

3 kinematic channels

RV (σlos\sigma_{\rm los}), PM radial (σpm,R\sigma_{{\rm pm},R}), PM tangential (σpm,T\sigma_{{\rm pm},T}) — the design lever; each channel’s information content is set by the B&M82 kernels Equation.

fixed (the design allocates stars among them)

dd, σRV\sigma_{\rm RV}, σPM\sigma_{\rm PM}

Distance converts the astrometric error to velocity; per-star errors enter the per-datum variance δσ2=(σ2+ϵ2)/(2n)\delta\sigma^2=(\sigma^2+\epsilon^2)/(2n). At d=4d=4 kpc the two channels are at deliberate error parity — neither trivially dominates.

fixed (d=4d=4 kpc; σRV=1.0\sigma_{\rm RV}=1.0 km/s; σPM=0.05\sigma_{\rm PM}=0.05 mas/yr 4.74σPMd0.95\to 4.74\,\sigma_{\rm PM}\,d\approx0.95 km/s)

completeness c(R)c(R)

Fixed realism, identical across channels: a smooth logistic faint-end roll-off (1\approx1 in the core, <1<1 outside, turnover 2rh\sim2\,r_h). Illustrative, not a real survey curve, and not a design knob here — promoting depth to a knob is the dynamical-mass example.

fixed (folds into the per-star blocks)

KK bins, budget, optimiser

K=12K=12 log-spaced bin centres Rk[0.3,3]rhR_k\in[0.3,3]\,r_h; budget NtotalN_{\rm total} (default 4000, swept for the frontier); multi-start Adam over the softmax simplex.

numerical choices

units, GG

STELLAR (M\Msun, pc, Myr); errors converted to pc/Myr explicitly (1 km/s =1/0.977792=1/0.977792 pc/Myr).

known / fixed

The Fisher is built in the dimensionless lnθ\ln\theta metric Important, so σ(ra)/ra\sigma(r_a)/r_a is a fractional precision and the nuisance prior PRIOR_DIAG=[0,1/0.32,1/0.32]\mathtt{PRIOR\_DIAG}=[0,\,1/0.3^2,\,1/0.3^2] is fractional too (none on the target).

The method, specialised: c-optimality on the additive Fisher

This example pours the additive backbone Equation straight into a c-optimal allocation. The per-star blocks Mb,cM_{b,c} come from one jacrev of project_dispersion at the truth; the design enters only through the softmax weights Equation, multiplied by the fixed completeness c(Rb)c(R_b). The headline criterion minimises the rar_a variance with M,rhM,r_h profiled out:

c ⁣:minz  (F1)rara,F(z)=b,cnb,cc(Rb)Mb,c.c\!:\quad \min_{\mathbf z}\;(F^{-1})_{r_a r_a}, \qquad F(\mathbf z)=\sum_{b,c} n_{b,c}\,c(R_b)\,M_{b,c}.

We also run D (maxlogdetF\max\log\det F) and A (mintrF1\min\mathrm{tr}\,F^{-1}) as the contrast — see why c and D should disagree. Under the M ⁣ ⁣raM\!\leftrightarrow\!r_a (through GMGM) and rh ⁣ ⁣rar_h\!\leftrightarrow\!r_a degeneracies they put stars at different radii, which is the criterion-disagreement lesson made visible below.

Validating a pre-data calculation: the calibration ensemble

A Fisher forecast is a promise: “if you observe this way, your error bar will be this large.” A promise made before any data is only trustworthy if you check it, because the Cramér–Rao bound Equation is a local, Gaussian approximation — exact in the high-information limit, optimistic when the likelihood is curved or the estimator is biased.

So we close the loop once, as a gate (not inside the optimiser). We draw a 64-member ensemble of mock catalogues from the actual Osipkov–Merritt Plummer sampler, project each to the sky, bin it, and fit r^a\hat r_a by maximum a posteriori (with the same fractional prior the design Fisher used). The realised scatter should match the Fisher prediction,

Var(r^a)/ra2    (F1)rara,\mathrm{Var}(\hat r_a)\big/ r_a^2 \;\approx\; (F^{-1})_{r_a r_a},

both sides being fractional variances in the lnθ\ln\theta metric. The tolerance is not a free knob: the Monte-Carlo error on a variance estimated from ndrawsn_{\rm draws} draws is 2/ndraws\approx\sqrt{2/n_{\rm draws}}, so the gate is a principled 2σ2\sigma band, 22/640.352\sqrt{2/64}\approx0.35. The realised σ(ra)/ra=0.109\sigma(r_a)/r_a=0.109 sits just below the Fisher’s 0.121 — the pre-data Fisher is mildly conservative (the binned-dispersion estimator loses a little information relative to the idealised per-star Fisher), and the two agree well inside the band. The promise holds.

Figures

The headline — PMs to the outskirts

The c-optimal design tracks the OM anisotropy \beta(R). Left axis: the three
predicted dispersion channels \sigma_{\rm los}, \sigma_{{\rm pm},R},
\sigma_{{\rm pm},T} (km/s) vs projected radius. Right axis: the c-optimal PM
allocation fraction (n_{{\rm pm},R}+n_{{\rm pm},T})/\sum_c n per bin (purple)
plotted against \beta_{\rm OM}(R)=R^2/(R^2+r_a^2) (dashed). The design — told nothing
about anisotropy — pushes the PM share from 0.73 in the core to 0.95 in the
outskirts, following \beta(R): proper motions go where the anisotropy signal is.

The c-optimal design tracks the OM anisotropy β(R)\beta(R). Left axis: the three predicted dispersion channels σlos\sigma_{\rm los}, σpm,R\sigma_{{\rm pm},R}, σpm,T\sigma_{{\rm pm},T} (km/s) vs projected radius. Right axis: the c-optimal PM allocation fraction (npm,R+npm,T)/cn(n_{{\rm pm},R}+n_{{\rm pm},T})/\sum_c n per bin (purple) plotted against βOM(R)=R2/(R2+ra2)\beta_{\rm OM}(R)=R^2/(R^2+r_a^2) (dashed). The design — told nothing about anisotropy — pushes the PM share from 0.73 in the core to 0.95 in the outskirts, following β(R)\beta(R): proper motions go where the anisotropy signal is.

c vs D vs A — why the criteria disagree

The c-, D-, and A-optimal allocations differ. Each panel stacks the effective star
count n_{\rm eff} per channel over radius for one criterion. The c-design (targeting
r_a alone) loads the PM channels in the outskirts hardest; the D- and A-designs,
which must constrain M and r_h too, also load the core, where the density and
overall normalisation are best pinned. Different objectives genuinely want stars at
different radii — the disagreement is shown, not asserted.

The c-, D-, and A-optimal allocations differ. Each panel stacks the effective star count neffn_{\rm eff} per channel over radius for one criterion. The c-design (targeting rar_a alone) loads the PM channels in the outskirts hardest; the D- and A-designs, which must constrain MM and rhr_h too, also load the core, where the density and overall normalisation are best pinned. Different objectives genuinely want stars at different radii — the disagreement is shown, not asserted.

The precision frontier — fewer stars at equal precision

The c-optimal design reaches equal precision with \approx3.9\times fewer stars.
Realized fractional precision \sigma(r_a)/r_a=\sqrt{c} vs star budget N_{\rm total},
recomputed (not extrapolated) for the uniform and c-optimal designs. The horizontal
arrow is the equal-precision star factor at the reference precision. The curves are
mildly non-1/N because the fixed nuisance prior dilutes as N grows (the c-opt
slope departs slightly from -1/2) — the honest, real frontier rather than an idealised
c\propto1/N line.

The c-optimal design reaches equal precision with 3.9×\approx3.9\times fewer stars. Realized fractional precision σ(ra)/ra=c\sigma(r_a)/r_a=\sqrt{c} vs star budget NtotalN_{\rm total}, recomputed (not extrapolated) for the uniform and c-optimal designs. The horizontal arrow is the equal-precision star factor at the reference precision. The curves are mildly non-1/N1/N because the fixed nuisance prior dilutes as NN grows (the c-opt slope departs slightly from 1/2-1/2) — the honest, real frontier rather than an idealised c1/Nc\propto1/N line.

Calibration — the pre-data Fisher is trustworthy

A 64-draw mock ensemble confirms the design Fisher predicts the realized scatter. The
calibration is run at the uniform design (so the Fisher value here, 0.121, is the
uniform precision — not the c-optimal 0.063); this suffices because the per-star
Fisher blocks M_{b,c} are design-independent, so validating the Fisher machinery at
one design transitively validates it at the c-optimal design built from the same blocks.
The realized fractional precision \sigma(r_a)/r_a (orange, with its Monte-Carlo error
band from 64 draws) sits at 0.109, just below the Fisher-predicted 0.121 (blue): the
pre-data Fisher is mildly conservative, and the two agree within the MC error. This is
the gate that makes the pre-data design trustworthy.

A 64-draw mock ensemble confirms the design Fisher predicts the realized scatter. The calibration is run at the uniform design (so the Fisher value here, 0.121, is the uniform precision — not the c-optimal 0.063); this suffices because the per-star Fisher blocks Mb,cM_{b,c} are design-independent, so validating the Fisher machinery at one design transitively validates it at the c-optimal design built from the same blocks. The realized fractional precision σ(ra)/ra\sigma(r_a)/r_a (orange, with its Monte-Carlo error band from 64 draws) sits at 0.109, just below the Fisher-predicted 0.121 (blue): the pre-data Fisher is mildly conservative, and the two agree within the MC error. This is the gate that makes the pre-data design trustworthy.

Optimiser convergence

All three alphabet-optimality objectives converge cleanly. Each curve is the
best-start suboptimality gap (c_t-c_\infty)/(c_0-c_\infty) vs Adam iteration, normalised
to the initial gap (the c, D, A objectives live on different scales and signs, so the
normalised gap is the like-for-like view). Every objective descends monotonically to its
converged design.

All three alphabet-optimality objectives converge cleanly. Each curve is the best-start suboptimality gap (ctc)/(c0c)(c_t-c_\infty)/(c_0-c_\infty) vs Adam iteration, normalised to the initial gap (the c, D, A objectives live on different scales and signs, so the normalised gap is the like-for-like view). Every objective descends monotonically to its converged design.

Quantitative results

All numbers are from the gated CLI’s run-record (--full, 64-draw calibration, Ntotal=4000N_{\rm total}=4000):

OED anisotropy results

Quantity

Result

Equal-precision star factor (c-design vs uniform, fixed NN)

3.66×\mathbf{3.66\times} fewer stars (3.9×\approx3.9\times on the swept frontier)

σ(ra)/ra\sigma(r_a)/r_a, uniform \to c-optimal (at fixed NN)

12.1%6.3%\mathbf{12.1\% \to 6.3\%}

PM allocation fraction, inner-half \to outer-half (c-design)

0.730.95\mathbf{0.73 \to 0.95} (PMs favoured outward)

Calibration: realized σ(ra)/ra\sigma(r_a)/r_a vs Fisher

0.109 (realized) vs 0.121 (Fisher) — 19%19\% variance-space dev, gate 35%35\%

c-criterion (F1)rara(F^{-1})_{r_a r_a}: uniform / c-opt / D-opt / A-opt

1.46/0.40/0.59/0.59×1021.46 / 0.40 / 0.59 / 0.59 \times10^{-2} (c-design lowest on its own objective)

The equal-precision factor is exact at fixed NN (the fixed nuisance prior cancels in the cuniform/cdesignedc_{\rm uniform}/c_{\rm designed} ratio, because c1/Nc\propto1/N when the prior is held fixed); the “3.9×\approx3.9\times fewer stars” gloss on the frontier is the same physics read off the swept budget curve, where the prior no longer cancels and the slope departs mildly from 1/N1/N.

What the optimum means: science implications

The 3.66×3.66\times is not a free lunch — it is the optimiser discovering the physics of where information lives, and it generalises well beyond this mock.

1. Information is localised — in space and in channel. Anisotropy β(r)\beta(r) grows outward, and the tangential-PM sensitivity to rar_a grows with it. So the value of a star for measuring rar_a depends sharply on where it sits and how you measure it. OED makes that quantitative instead of intuitive: the headline figure shows the optimiser routing PM stars to exactly the radii where β(R)\beta(R) is turning over.

2. Proper motions break the mass–anisotropy degeneracy where it bites. A line-of-sight dispersion profile alone is degenerate — recall Equation: a cold outer σlos\sigma_{\rm los} can mean low σr\sigma_r or high β\beta. The two PM channels carry different β\beta-weightings Equation, so they lift the degeneracy — and the OED tells you where the lift is largest: the outskirts. The result — RV in the core, PM in the outskirts — is the observing strategy this degeneracy demands, derived from first principles. That is directly actionable for real Gaia-PM + spectroscopic campaigns on globular clusters and dwarf spheroidals.

3. Design for your target, not for “everything.” The c-vs-D-vs-A divergence is the deepest lesson. If your science is one number — anisotropy as a probe of a dark-matter cusp/core, an IMBH’s kinematic signature, a cluster’s tidal state — a design that minimises the joint ellipsoid (D) wastes stars tightening nuisances. c-optimality can buy a multiplicative factor in the precision you actually care about.

4. The honest caveat is itself a research direction. The optimum is optimal for the assumed OM-Plummer model. That model-dependence is the central limitation of all OED — and it points straight at the most valuable extension: robust and model-discriminating design (see the section’s capability map), which progenax is unusually well-placed to do because it ships more than one differentiable forward model for the same observable.

Current scope and planned extensions

How to run

# quick (12-draw calibration, ~1 min)
env -u VIRTUAL_ENV uv run --no-sync python scripts/demo_oed.py

# publication-grade (64-draw calibration, ~4 min) — regenerates the figures here
env -u VIRTUAL_ENV uv run --no-sync python scripts/demo_oed.py --full

The CLI is gated (exit 0 only if the headline factor, PM-outskirts trend, and calibration all pass) and writes a JSON run-record alongside the five figures.

References

The shared Fisher / Cramér–Rao / projection theory and its references are on the OED formalism page. The Osipkov–Merritt anisotropy law is Merritt (1985); the line-of-sight projection into σlos\sigma_{\rm los}, σpm,R\sigma_{{\rm pm},R}, σpm,T\sigma_{{\rm pm},T} is Binney & Mamon (1982, MNRAS 200, 361). The differentiable project_dispersion forward model is documented on the velocity-DF kinematics pages; the anisotropy recovery counterpart is the anisotropy demo (B6), and B8 introduces the same sky-projection helper.

References
  1. Merritt, D. (1985). Spherical stellar systems with spheroidal velocity distributions. The Astronomical Journal, 90, 1027–1037. 10.1086/113810