Back to Experiments

Predictive S: Information Content of the Convergence Score

Hypothesis

Even in chaotic regimes, the convergence score \(S\) retains partial predictability and its derivative \(S'\) carries additional information about future dynamics. Furthermore, the gradient of \(S\) (computed via dual numbers) should fire as an early-warning signal before the level of \(S\) itself responds, and \(S\) should detect abrupt belief-distribution changes instantaneously.

Method

  1. Chaotic predictability. Run the logistic map at \(r = 3.7\) (fully chaotic) for 1000 iterations. Fit a linear autoregressive model to the \(S\) time series. Report RMSE and the regression coefficient of \(S'\) on next-step \(S\).
  2. Multi-scale gradient. Run viscous Burgers at multiple viscosities. At each scale, record when the gradient \(S'\) (via dual numbers) first exceeds a threshold vs when \(S\) itself first goes negative.
  3. Belief change detection. Run a belief-updating agent where the data distribution shifts abruptly at step 100 (mean jumps from 0 to 5). Track \(S\) through the shift.

Results

Chaotic Regime (r = 3.7): Partial Predictability

MetricValue
Autoregressive RMSE0.104
Baseline RMSE (mean predictor)0.312
Predictability ratio3.0×
\(S'\) regression coeff \(b\)-0.25
\(S'\) significance (\(p\))<0.001

At \(r = 3.7\), the underlying state \(x_t\) is unpredictable, but \(S_t\) retains 3× better predictability than a naive baseline. The derivative \(S'\) carries significant additional information: when \(S' < 0\) (convergence decelerating), the next \(S\) value tends to be lower (\(b = -0.25\), \(p < 0.001\)).

Multi-Scale: Gradient S Fires First

\(\nu\)\(S' > \theta\) (step)\(S < 0\) (step)Lead (steps)
0.00131239987
0.002485612127
0.0051,2401,580340
0.0082,8103,420610

At all viscosities tested, the gradient \(S'\) exceeds the warning threshold before \(S\) itself goes negative. Lead time increases with viscosity (slower dynamics = more advance warning).

Belief Change Detection

Step\(S\)Event
99+0.98Pre-shift (stable)
100-150Distribution shift
101-82Recovery begins
110-3.1Rapid recovery
140+0.91Re-converged

\(S\) crashes to \(-150\) at the exact step of the distribution shift — instant detection with zero lag. Recovery takes ~40 steps.

Analysis

  • S retains structure in chaos. Even when the underlying map is fully chaotic (\(\lambda > 0\)), the convergence score \(S\) is partially predictable. This is because \(S\) aggregates over the interaction matrix, smoothing out per-iterate chaos.
  • \(S'\) as leading indicator. The derivative carries advance information: the regression coefficient \(b = -0.25\) means decelerating convergence today predicts lower \(S\) tomorrow. This supports using \(S'\) in PID-style controllers.
  • Gradient-before-level. The multi-scale result confirms that the dual-number gradient of \(S\) fires before the level crosses zero. This is the standard derivative-leads-level phenomenon, but here it is computed exactly via dual numbers rather than estimated via finite differences.
  • Instant regime detection. The crash to \(-150\) is not a gradual decline — it is a one-step discontinuity, consistent with \(S\) being a function of force balance that is immediately disrupted by a distribution shift.
Caveats. (1) The autoregressive model for \(S\) predictability is linear; nonlinear models may do better. (2) The multi-scale gradient lead times are threshold-dependent. (3) The belief-change experiment uses a simple Gaussian shift; more complex distribution changes may show different \(S\) dynamics.

Conclusion

The convergence score \(S\) retains partial predictability even in chaotic regimes (3× over baseline at \(r = 3.7\)). Its derivative \(S'\) carries additional information (\(b = -0.25\)) and fires as an early warning before \(S\) itself crosses zero at all tested viscosity scales. Distribution shifts are detected instantaneously (\(S\) crash to \(-150\) at step 100). These results support using \(S\) and its derivatives as real-time diagnostics for adaptive systems.

Reproducibility

../simplex/build/sxc exp_predictive_s.sx -o build/exp_predictive_s.ll

OPENSSL_PREFIX=$(brew --prefix openssl)
clang -O2 build/exp_predictive_s.ll \
  ../simplex/runtime/standalone_runtime.c \
  -o build/exp_predictive_s \
  -lm -lssl -lcrypto -L${OPENSSL_PREFIX}/lib

./build/exp_predictive_s

Related