lab · corrected · entrylib:2026.000002 · version 3 · 2026-11-10 · Management Science and Operations Research

Corrected · 10 November 2026 at 22:09 UTC

Limitations L2 and L4 are answered by a planned independent check (new evidence E25): an exact oracle in rational arithmetic with certified root enclosures, written by a new contributor (P5) without the prototype, compared on the models of the planned tests; it agrees with the PBH reference, the cyclotomic cancellation, the step-down test and the bisection on every model it decides, and its four hypotheses are reported as claims C29-C32, one of them inconclusive by its rule. The assumptions C14 (reworded to the band the tests leave out) and C19 are tested by it; claims C1-C5, C10, C11 and C16 carry its checks; claims C3, C4, C16 and C24-C26 relate to the earlier work they extend, supersede or contradict. The lab record (A9) and the results file (A18) are updated to the record's current version. No earlier claim's conclusion or ID changed.

By Ivan Svetunkov (ORCID 0000-0001-7826-0281)

Admissibility of lagged state space models through the ARIMA form of the whole model

Guarantor: Ivan Svetunkov (0000-0001-7826-0281)

Authors: AI agentClaude Code research agent

CC-BY-4.0 · Keywords: exponential smoothing, state space models, admissible parameter space, invertibility, ARIMA reduced form, Schur-Cohn stability test, cyclotomic polynomials, time series forecasting, ARIMA, forecastability

Made with claimset-lab. Lab record

Copies a message for ChatGPT, Claude or Gemini: paste it there.

The message

Read https://entrylib.org/p/[email protected], a research paper written as claims with their evidence. Give me a brief summary of its main findings and how well each is supported. If you cannot open the link, tell me instead of guessing. Then wait for my questions.

In brief

Context

Contradicts Svetunkov (2016), gum(), documentation of the argument bounds · own earlier work · from C1
The documentation of gum() states that bounds = "admissible" guarantees the stability of the model.
Extends Hyndman et al. (2008), Chapter 11 · from C3
Hyndman, Koehler, Ord and Snyder relate the reduced forms of linear innovations state space models to ARIMA models.
Extends Barndorff-Nielsen and Schou (1973) · from C4
Barndorff-Nielsen and Schou parametrise stationary autoregressions by their partial autocorrelations, which all lie in (-1, 1) exactly when every root of the autoregressive polynomial lies outside the unit circle.
Supersedes Svetunkov (2016), smoothEigensCpp(), smooth 4.6.0 · own earlier work · from C16
smooth 4.6.0 decides admissibility from the eigenvalues of the per-lag discount matrices, one block per lag.
Extends Hyndman et al. (2008), Chapter 11 · from C6
Hyndman, Koehler, Ord and Snyder relate the reduced forms of linear innovations state space models to ARIMA models.
Contradicts Svetunkov (2023), Section 5.4, equations 5.20 to 5.22 · own earlier work · from C22
The monograph states that the model is stable when all the nonzero eigenvalues of the per-lag discount matrices D_{m_i} are below one in absolute value, and forecastable when the effect of the initial states through each D_{m_i} tends to a constant (eq. 5.22).
Contradicts Svetunkov (2016), adam(), bounds = "admissible", smooth 4.6.0 · own earlier work · from C24
adam() of smooth 4.6.0 with bounds = "admissible" accepts an ETS+ARIMA model when its ETS part passes the per-lag eigenvalue check and its ARIMA polynomials pass their own checks, each apart.
Extends Hyndman et al. (2008), Chapter 11 · from C25
Hyndman, Koehler, Ord and Snyder relate the reduced forms of linear innovations state space models to ARIMA models.
Supersedes Svetunkov (2016), adam(), bounds = "admissible", smooth 4.6.0 · own earlier work · from C26
The bounds checker of adam() in smooth 4.6.0 checks the ETS part and the ARIMA polynomials of an ETS+ARIMA model apart.

Definitions

Methods 16

D1 lagged SSOE model: A pure additive single-source-of-error state space model with kk components, yt=w′vt−l+ϵtvt=Fvt−l+gϵt,\begin{aligned} y_t &= w' v_{t-l} + \epsilon_t \\ v_t &= F v_{t-l} + g \epsilon_t, \end{aligned} in which component jj of vt−lv_{t-l} enters with its own lag ljl_j; its discount matrix is D=F−gw′D = F - g w' and its lag matrix is L(B)=diag(Bl1,…,Blk)L(B) = \mathrm{diag}(B^{l_1}, \dots, B^{l_k}) for the backshift operator BB; Λ(λ)=diag(λl1,…,λlk)\Lambda(\lambda) = \mathrm{diag}(\lambda^{l_1}, \dots, \lambda^{l_k}) for a complex number λ\lambda.

D4 per-lag check: The test applied by smoothEigens() of smooth 4.6.0 and of its repository until commit 4a44c1c (src/headers/eigenCalc.h) to models without adaptive regressors: every eigenvalue of every diagonal block of DD, one block per unique lag, has modulus below 1; reimplemented in numpy as per_lag_max().

D5 PBH reference: The largest modulus among the eigenvalues λ\lambda of the expanded discount matrix for which the smallest singular values of [λI−D~;w~′][\lambda I - \tilde D;\ \tilde w'] and of [λI−D~,g~][\lambda I - \tilde D,\ \tilde g] both exceed 10−7(‖D~‖2+‖g~‖+‖w~‖)10^{-7}(\|\tilde D\|_2 + \|\tilde g\| + \|\tilde w\|) (Popov-Belevitch-Hautus rank tests), computed with numpy as pbh_max().

D6 cyclotomic cancellation: The procedure that computes the coefficients of θ(B)=det⁡(I−DL(B))ϕ(B)=det⁡(I−FL(B))\begin{aligned} \theta(B) &= \det(I - D L(B)) \\ \phi(B) &= \det(I - F L(B)) \end{aligned} by an inverse discrete Fourier transform of their values at the NN-th roots of unity (NN the smallest power of 2 above ∑jlj\sum_j l_j), and divides both by every cyclotomic polynomial Φn(B)\Phi_n(B), nn dividing one of the lags, for as long as it divides both with a remainder at most 10−910^{-9} times the sum of absolute coefficients; the quotient of θ\theta is the cancelled MA polynomial θ*(B)\theta^*(B).

D7 step-down test: The Levinson-Durbin step-down (Schur-Cohn) recursion on 1+c1B+…+cnBn1 + c_1 B + \dots + c_n B^n: for j=n,…,1j = n, \dots, 1, κj=cj,ci←ci−κjcj−i1−κj2;\kappa_j = c_j, \qquad c_i \leftarrow \frac{c_i - \kappa_j c_{j-i}}{1 - \kappa_j^2}; the test passes when every |κj|<1|\kappa_j| < 1, which holds if and only if all roots lie outside the unit circle (the κj\kappa_j are the partial autocorrelations of the autoregression with this polynomial). Source: Barndorff-Nielsen and Schou (1973).

D8 GUM: Generalised Univariate Model of the smooth package: a lagged SSOE model whose FF, gg and ww are all estimated. Source: Svetunkov (2016).

D9 ETS(A,N,A): Exponential smoothing with additive error, no trend and additive seasonality of period mm; here in the lagged form with a level of lag 1 and one seasonal state of lag mm, F=IF = I, w=(1,1)′w = (1, 1)', g=(α,γ)′g = (\alpha, \gamma)'. Source: Hyndman et al. (2008).

D10 check of the whole model: Admissibility of a lagged SSOE model from the MA polynomial θ(B)=det⁡(I−DL(B))\theta(B) = \det(I - D L(B)) of its ARIMA form: θ\theta is divided by its common factors with ϕ(B)=det⁡(I−FL(B))\phi(B) = \det(I - F L(B)) by cyclotomic cancellation, and the model is accepted when the cancelled polynomial θ*\theta^* has no root in |B|≤1|B| \le 1 and, for a model with ARIMA components, the AR polynomial of its ARIMA part is stationary; its largest mode modulus is 1/min⁡|B|1/\min|B| over the roots of θ*\theta^*. In the numpy prototype (admissibility.py, confirm.py, ets_arima.py) the roots come from numpy; in smooth the step-down test decides and bisection gives the modulus.

D11 · part of D10 bisection for the largest root modulus: Bisection on rr over the step-down test applied to θ*(B/r)\theta^*(B/r), which passes exactly when 1/|B|<r1/|B| < r for every root BB of θ*\theta^*, so that the smallest such rr is the largest mode modulus; run to a width of 1e-10 in the prototype and to a tolerance of 1e-6 in smooth.

D12 · a kind of D10 smoothEigensCpp(): The check of the whole model as implemented in smooth (src/headers/eigenCalc.h, shared by R and Python): the coefficients of θ\theta and ϕ\phi by inverse discrete Fourier transform, cyclotomic cancellation, the step-down test and bisection with tolerance 1e-6; called in R through smoothEigensR().

D14 · a kind of D10 bounds checker of adam(): adam_bounds_checker() of adam(), om() and omg() in R (R/utils-adam.R) and of ADAM, OM and OMG in Python, with bounds="admissible" after this study: smoothEigensCpp() on the whole model, with a shortcut that accepts a pure ARIMA model (without ETS and adaptive regressors) whose MA factors are invertible without running it; the penalty is zero, or 1e100 times the largest root modulus.

D13 check of the parts apart: The check that adam() applied with bounds="admissible" to models combining ETS and ARIMA before this study: the ETS part by the per-lag check, and the AR and MA polynomials of the ARIMA part for stationarity and invertibility, each apart from the others.

D15 roots by numpy: The roots of a polynomial by numpy's roots (the eigenvalues of its companion matrix), and the admissibility decision and largest modulus 1/min⁡|B|1/\min|B| they give.

D16 stability condition of the ADAM monograph: The condition of Section 5.4 of the ADAM monograph (eqs 5.20-5.22): every nonzero eigenvalue of each per-lag discount matrix Dmi=Fmi−gmiwmi′D_{m_i} = F_{m_i} - g_{m_i} w_{m_i}' has modulus below 1. Source: Svetunkov (2023).

D39 exact gcd oracle: Admissibility by rational determinants and the exact greatest common divisor of θ\theta and ϕ\phi, which cancels any shared factor (code/checker/exact_oracle.py of the checker P4).

D41 exact oracle: Admissibility decided in exact rational arithmetic with certified root enclosures (independent/oracle.py, python-flint 0.9.0), written by the contributor P5 from the definitions of this claimset without the prototype: each float of FF, gg, ww is converted exactly to a rational, D=F−gw′D = F - g w', and θ(B)=det⁡(I−DL(B)),ϕ(B)=det⁡(I−FL(B))\theta(B) = \det(I - D L(B)), \qquad \phi(B) = \det(I - F L(B)) by fraction-free elimination over ℚ[B]\mathbb{Q}[B]; G=gcd⁡(θ,ϕ)G = \gcd(\theta, \phi) exactly and θG=θ/G\theta_G = \theta / G; CC is the product of the cyclotomic polynomials Φn\Phi_n, nn dividing a lag, at the multiplicity dividing both, and θC=θ/C\theta_C = \theta / C; the roots of θG\theta_G, θC\theta_C and G/CG / C are enclosed in Arb balls of 128 bits, raised to 512 and 2048 bits while a modulus ball contains 1, and a root counts as on the unit circle only when it is proved a root of unity whose Φn\Phi_n divides the polynomial. The largest mode modulus is 1/min⁡|B|1/\min|B| over the roots; a model is admissible when it is below 1.

Data 15

D17 ETS(A,N,A) grid: The 3042 ETS(A,N,A) models with m=4m = 4 and m=12m = 12 and α\alpha and γ\gamma on the grid 0.05, 0.10, ..., 1.95 (confirm.py, plan PL1).

D18 random GUM models with lags (1, 12): 200 GUM models with lags (1, 12): entries of FF normal with mean 0 and standard deviation 0.35, of gg with mean 0 and standard deviation 0.175, of ww with mean 1 and standard deviation 0.175 (confirm.py, seed 2026).

D20 random additive ETS and GUM models with long seasonal lags: The 575 models of plan PL4 (confirm.py --test stepdown --seed 2026 --n 200): the 500 models of plan PL3 generated afresh, 50 additive ETS models with seasonal lags from {24, 168, 365} and 25 GUM models with lags (1, 24, 168) and normal FF (standard deviation 0.3). The generator allows MA polynomial degrees up to 536 (level, trend, seasonal lags 168 and 365, constant).

D19 · part of D20 random additive ETS and GUM models: The 500 models of plan PL3 (confirm.py --test cancel --seed 2026 --n 200): 200 additive ETS models (level; no, additive or damped trend with ϕ\phi in (0.8, 0.99); 0 to 2 seasonal lags from {4, 7, 12, 24, 52}; a constant with probability 0.3; β=0\beta = 0 with probability 0.1 and each γ=0\gamma = 0 with probability 0.15; α\alpha in (0.01, 1.9)), 100 GUM models with F=IF = I, lags from {1, 4, 12}, gg uniform on (-0.3, 0.6) and ww normal with mean 1 and standard deviation 0.3, and 200 GUM models with lags from {1, 4, 12, 24} and normal FF (standard deviation 0.35).

D21 four model families of the implementation test: 200 models in each of four families (cpp_check.py --seed 2027 --n 200, plan PL6): additive ETS with 0 to 2 seasonal lags from {4, 7, 12, 24, 52}; additive ETS with 0 to 2 seasonal lags from {24, 168, 365}; GUM with F=IF = I and lags from {1, 4, 12}; GUM with normal FF (standard deviation 0.35) and lags from {1, 4, 12, 24}.

D22 random ETS+ARIMA models: Random ADAM models combining additive ETS with ARIMA (ets_arima.py), 500 with ARIMA at lag 1 and 500 with seasonal ARIMA per seed (seed 2 for plans PL7 and PL8, seed 3 for plan PL9): ETS with a level; no, additive or damped trend; no or one seasonal lag mm in {4, 12}; smoothing parameters drawn from wide ranges, some fixed at 0; ARIMA with a stationary AR polynomial, differences and MA up to order 2 at lag 1 and 1 at lag mm, 15% over-differenced (an MA root at one on the unit circle of a differenced lag); built in ADAM's state space form (one state per lag of the ARI and MA polynomials).

D23 ETS+ARIMA models of the checker's generator: Random ADAM ETS+ARIMA models from the generator of the checker P4 (code/checker/exact_oracle.py with lib.py), wider than the random ETS+ARIMA models: 250 models for each of seeds 21-23 and 31-34.

D24 ETS(A,N,A,A) with seasonal lags 24 and 168: The additive ETS model with a level and two seasonal states of lags 24 and 168, α=0.3\alpha = 0.3 and γ=(0.1,0.05)\gamma = (0.1, 0.05), in the lagged form.

D25 starting point of gum(): The default starting point of gum() with orders (2, 2) and lags (1, 12): F=IF = I, g=0.1g = 0.1, w=1w = 1.

D35 ETS(A,N,A) with m = 12: ETS(A,N,A) with m=12m = 12 at (α,γ)=(0.1,0.1)(\alpha, \gamma) = (0.1, 0.1) and (1.2,0.9)(1.2, 0.9) (book_check.py).

D36 AirPassengers: Monthly totals of international airline passengers, 1949-1960 (144 observations): the AirPassengers series of R's datasets package.

D37 BJsales: The sales series BJsales of R's datasets package (150 observations).

D38 synthetic hourly series: 1008 hourly observations 100+10sin⁡(2πt/24)+5sin⁡(2πt/168)100 + 10 \sin(2\pi t/24) + 5 \sin(2\pi t/168) plus standard normal noise, generated by bench_eigens.R after set.seed(41), as a ts of frequency 24, fitted with seasonal lags 24 and 168.

D40 random GUM models with lags (1, 24, 168): GUM models with lags (1, 24, 168) and normal FF (standard deviation 0.3), as generated by confirm.py and timing.py.

D42 models of the planned tests: The models of the planned tests PL1-PL6 and the two examples of C10 and C11, drawn again by export_models.py exactly as confirm.py and cpp_check.py draw them (the counts of the original tests are reproduced), with the prototype's values for each: 3242 models of PL1 and PL2, 500 of PL3, 575 of PL4 and PL5 (MA degree up to 535), 800 of PL6 and 2 examples; 5119 in all.

Variables and measures 7

D29 admissibility decision: Whether a method accepts a model as admissible (decaying weights); compared between a method and a reference as the number of models on which the two differ.

D30 largest mode modulus: The largest modulus of the modes that decide admissibility: for the PBH reference the largest |λ||\lambda| of the reachable and observable eigenvalues of the expanded discount matrix, for the check of the whole model 1/min⁡|B|1/\min|B| over the roots BB of the cancelled MA polynomial, for the per-lag check the largest |λ||\lambda| of its blocks; a model is admissible when it is below 1.

D31 time of a computation: The time of one call of a computation, as the mean over repeated calls.

D32 time of a fit: The time of one fit, as the median over repeated fits.

D33 log-likelihood of a fit: The log-likelihood of a fitted model at its estimates.

D34 growth per period: The growth per period, over the second half of the recursion, of the effect |w′vt−l||w' v_{t-l}| of initial states set to one on the fitted value, and of the weight of one unit observation.

D44 non-cyclotomic shared factor in the closed unit disc: Whether G/CG / C, the factor shared by θ\theta and ϕ\phi after removing the cyclotomic polynomials Φn\Phi_n (nn dividing a lag), has a root in |B|≤1|B| \le 1, certified by the exact oracle; counted over models.

Study design 4

D26 comparison with a reference: Each model's admissibility decision, and its largest mode modulus where both find it inadmissible, computed by the method studied and by a reference on the same model (the PBH reference, the roots by numpy, the numpy prototype of the check of the whole model or an exact oracle); the result is the number of models whose decisions differ and the largest absolute difference of the modulus. In the planned tests, models whose reference modulus lies within 1e-8 of 1 are left out and counted.

D27 timing benchmark: The time of a computation as the mean over 50 repeated calls (timing.py), or the time of a fit with bounds="admissible" as the median over five or seven repeated fits of the package installed at -O2 from a worktree of each version (bench_eigens.R, timing_ets_arima.R), on one x86_64 machine.

D28 discount recursion over 2400 periods: The full discount recursion vt=Dvt−lv_t = D v_{t-l} of a lagged SSOE model run for 2400 periods, from initial states set to one with no data and from zero states with one unit observation, its growth per period measured over the second half (book_check.py).

D43 comparison with the exact oracle: For each model, the admissibility decision and largest mode modulus of a method of the study against those of the exact oracle: the PBH reference against θG\theta_G; the prototype's cancellation, step-down test and bisection against θC\theta_C. Counted are the models whose decisions differ and the largest absolute difference of the modulus on the models both find inadmissible (for the bisection, on every model with a value). Models the oracle cannot decide, and models whose certified largest modulus lies within 10−810^{-8} of 1, are left out and counted.

Concepts 2

D2 expanded discount matrix: The transition matrix D~\tilde D of size ∑jlj\sum_j l_j of the lag-1 system equivalent to vt=Dvt−lv_t = D v_{t-l}, in which component jj carries itself and its lj−1l_j - 1 lagged copies; F~\tilde F, g~\tilde g and w~\tilde w are expanded in the same way, so that D~=F~−g~w~′\tilde D = \tilde F - \tilde g \tilde w'.

D3 decaying weights: A lagged SSOE model has decaying weights when the weights w~′D~jg~\tilde w' \tilde D^j \tilde g of the past observations in its fitted values tend to zero, that is, when every eigenvalue λ\lambda of its expanded discount matrix that is reachable from g~\tilde g and observable through w~\tilde w has |λ|<1|\lambda| < 1; the largest such |λ||\lambda| is its largest mode modulus. A mode that g~\tilde g does not reach but w~\tilde w sees carries an initial state whose effect is not covered: with |λ|>1|\lambda| > 1 it grows.

Assumptions

C13 · methodological · unchecked

The numpy function per_lag_max() returns the same largest eigenvalue modulus as smoothEigensCpp() of smooth 4.6.0 (replaced in commit 4a44c1c) for models with a constant measurement vector and without adaptive regressors. Rested on by C1, C2.

C14 · methodological · tested

The PBH reference with relative rank tolerance 1e-7 classifies every eigenvalue of modulus at least 1 of the expanded discount matrix of the tested models correctly as both reachable and observable or not, outside the band of 1e-8 around the unit circle that the tests leave out. Rested on by C1, C2, C3, C10, C11.

C19 · theoretical · tested

In additive ETS models, and in GUM models with an identity transition or with transition, persistence and measurement in general position, every factor shared by θ(B)\theta(B) and ϕ(B)\phi(B) with a root in |B|≤1|B| \le 1 is a product of cyclotomic polynomials Φn(B)\Phi_n(B) with nn dividing a lag of the model. Rested on by C4, C16.

C28 · theorem_condition · tested

For ETS+ARIMA models with a stationary AR polynomial, θ(B)\theta(B) and ϕ(B)\phi(B) of the whole model share no factor with a root in |B|≤1|B| \le 1 that is not cyclotomic, so the PBH reference and the cancelled MA polynomial decide the same admissibility. Rested on by C24, C25, C26.

Principal claims

93C1 · descriptive · refutes earlier work · planned test · novelty: refutes earlier work, by the authors · no close match on EntryLib

The per-lag check accepted all 3042 ETS(A,N,A) grid models, 1482 of which do not have decaying weights, and 193 of 200 random GUM models with lags (1, 12), 10 of which do not have decaying weights.

95C3 · methodological · planned test · novelty: new, by the authors · no close match on EntryLib

On 500 random additive ETS and GUM models, the admissibility decision from the roots of the MA polynomial after cyclotomic cancellation differed from the PBH reference on 0 models, and on the 172 models that both found inadmissible the largest mode modulus differed from the reference by at most 4.4e-13.

88C4 · methodological · novelty: new, by the authors · no close match on EntryLib

On 575 random additive ETS and GUM models, including ETS models with up to two seasonal lags from {24, 168, 365} whose generator allows MA polynomial degrees up to 536, the step-down test on the MA polynomial after cyclotomic cancellation gave an admissibility decision different from the roots of that polynomial on 0 models.

88C16 · methodological · planned test · novelty: new, by the authors · no close match on EntryLib

On 800 random additive ETS and GUM models in four families, the implementation of the check in smooth (smoothEigensCpp() through smoothEigensR()) gave the same decision as the numpy prototype on every model, a largest root modulus within the bisection tolerance of it on the models both found inadmissible, and the same modulus and MA polynomial on three consecutive calls with each model.

99C22 · descriptive · refutes earlier work · novelty: refutes earlier work, by the authors · no close match on EntryLib

For ETS(A,N,A) with m=12m = 12, α=1.2\alpha = 1.2 and γ=0.9\gamma = 0.9, the stability condition of Section 5.4 of the ADAM monograph holds, while in the full discount recursion the effect of the initial states on the fitted values and the weight of a past observation both grow from period to period, and the largest root modulus of the cancelled MA polynomial exceeds one.

90C24 · descriptive · planned test · novelty: new, by the authors · no close match on EntryLib

On 1,000 new random ADAM ETS+ARIMA models (500 with ARIMA at lag 1, 500 with seasonal ARIMA), checking the ETS part and the ARIMA polynomials apart, as adam() did with bounds="admissible", gave an admissibility decision different from the PBH reference of the whole model on about a third of the models in each family, accepting models that are not forecastable and rejecting models that are.

90C25 · methodological · planned test · novelty: new, by the authors · no close match on EntryLib

On the same 1,000 random ETS+ARIMA models, the check of the whole model (the MA polynomial of the ARIMA form of the whole lagged SSOE after cyclotomic cancellation, with the AR polynomial of the ARIMA part stationary), gave the same admissibility decision as the PBH reference on every model, and the same largest modulus to within rounding error on the models both found inadmissible.

92C26 · methodological · planned test · novelty: new, by the authors · no close match on EntryLib

On 1,000 further random ETS+ARIMA models, the bounds checker of adam() in R and of ADAM in Python with bounds="admissible", which run smoothEigensCpp() on the whole model, gave the same admissibility decision as the prototype check of the whole model on every model, and a penalty slope (the largest root modulus) within the bisection tolerance of it in both families.

Supporting claims

92C2 · descriptive · planned test · novelty: new, by the authors

The per-lag check rejected 1 of 200 random GUM models with lags (1, 12) that have decaying weights.

89C5 · methodological · novelty: new, by the authors

On the 198 models among 575 random additive ETS and GUM models whose cancelled MA polynomial θ*\theta^* has a root inside the unit circle, bisection on rr with the step-down test applied to θ*(B/r)\theta^*(B/r) gave 1/min⁡|B|1/\min|B| over the roots BB of θ*\theta^*, the largest mode modulus, within 5.8e-11 of the value from numpy's roots.

100C6 · formal · extends earlier work · novelty: extends earlier work, by the authors

For a lagged SSOE model, ignoring the initial states, det⁡(I−DL(B))ϵt=det⁡(I−FL(B))yt,\det(I - D L(B))\, \epsilon_t = \det(I - F L(B))\, y_t, so the model has the ARIMA form with AR polynomial ϕ(B)=det⁡(I−FL(B))\phi(B) = \det(I - F L(B)) and MA polynomial θ(B)=det⁡(I−DL(B))\theta(B) = \det(I - D L(B)).

100C7 · formal · novelty: new, by the authors

If the discount matrix DD of a lagged SSOE model is block-diagonal with one block DllD_{ll} per unique lag ll, every eigenvalue of the expanded discount matrix has modulus |μ|1/l|\mu|^{1/l} for an eigenvalue μ\mu of some DllD_{ll}, so all of them lie inside the unit circle exactly when the per-lag check passes.

100C8 · formal · novelty: new, by the authors

An eigenvalue λ≠0\lambda \neq 0 of the expanded transition matrix F~\tilde F with an eigenvector unobservable through w~\tilde w or a left eigenvector unreachable from g~\tilde g is an eigenvalue of the expanded discount matrix, and 1/λ1/\lambda is a common root of ϕ(B)=det⁡(I−FL(B))\phi(B) = \det(I - F L(B)) and θ(B)=det⁡(I−DL(B))\theta(B) = \det(I - D L(B)).

100C9 · formal · novelty: new, by the authors

For ETS(A,N,A) with any period mm and any α\alpha and γ\gamma, B=1B = 1 is a root of both θ(B)=(1−(1−α)B)(1−(1−γ)Bm)−αγBm+1ϕ(B)=(1−B)(1−Bm),\begin{aligned} \theta(B) &= (1 - (1-\alpha)B)(1 - (1-\gamma)B^m) - \alpha\gamma B^{m+1} \\ \phi(B) &= (1 - B)(1 - B^m), \end{aligned} so the expanded discount matrix has an eigenvalue equal to 1.

100C10 · descriptive · novelty: new, by the authors

For ETS(A,N,A,A) with seasonal lags 24 and 168, α=0.3\alpha = 0.3 and γ=(0.1,0.05)\gamma = (0.1, 0.05), cyclotomic cancellation removed a common factor from the MA polynomial, and the largest mode modulus after cancellation, just below one, equalled the PBH reference to within rounding error.

100C11 · descriptive · novelty: new, by the authors

For the default starting point of gum() with orders (2, 2) and lags (1, 12) (F=IF = I, g=0.1g = 0.1, w=1w = 1), cyclotomic cancellation removed a common factor from the MA polynomial, and the largest mode modulus after cancellation equalled the PBH reference to within rounding error.

100C12 · descriptive · novelty: new, by the authors

For an admissible and an inadmissible random GUM model with lags (1, 24, 168) and the cancelled MA polynomial of an ETS(A,N,A,A) model with seasonal lags 24 and 168, the step-down test was more than twenty times faster than all roots by numpy's companion-matrix eigenvalues.

100C15 · formal · novelty: new, by the authors

For the lag-1 expansion M~\tilde M of vt=Mvt−lv_t = M v_{t-l} in a lagged SSOE model, det⁡(λI−M~)=det⁡(Λ(λ)−M),\det(\lambda I - \tilde M) = \det(\Lambda(\lambda) - M), which equals λ∑jljdet⁡(I−ML(1/λ))\lambda^{\sum_j l_j} \det(I - M L(1/\lambda)) for λ≠0\lambda \neq 0.

100C17 · formal · novelty: new, by the authors

For a lagged SSOE model with θ(B)=det⁡(I−DL(B))\theta(B) = \det(I - D L(B)) and ϕ(B)=det⁡(I−FL(B))\phi(B) = \det(I - F L(B)), the roots of θ(B)/gcd⁡(θ(B),ϕ(B))\theta(B) / \gcd(\theta(B), \phi(B)) are exactly the reciprocals 1/λ1/\lambda of the nonzero eigenvalues λ\lambda of the reachable and observable part of the expanded discount matrix (its Kalman decomposition), with their multiplicities.

100C18 · formal · novelty: new, by the authors

For a polynomial cc with c(0)≠0c(0) \neq 0 and r>0r > 0, the step-down test passes on c(B/r)c(B/r) if and only if 1/|B|<r1/|B| < r for every root BB of cc.

100C20 · formal · novelty: new, by the authors

For a square matrix MM of size kk and lags l1,…,lkl_1, \dots, l_k, det⁡(I−ML(B))=∑S⊆{1,…,k}(−1)|S|det⁡(MSS)B∑j∈Slj,\det(I - M L(B)) = \sum_{S \subseteq \{1, \dots, k\}} (-1)^{|S|} \det(M_{SS})\, B^{\sum_{j \in S} l_j}, with det⁡(M∅∅)=1\det(M_{\emptyset\emptyset}) = 1.

100C21 · formal · novelty: new, by the authors

The per-lag discount matrices Dmi=Fmi−gmiwmi′D_{m_i} = F_{m_i} - g_{m_i} w_{m_i}' of Section 5.4 of the ADAM monograph have as nonzero eigenvalues those of the diagonal block of D=F−gw′D = F - g w' for the lag mim_i (the per-lag check), and their sum is D+∑i≠jgmiwmj′,D + \sum_{i \neq j} g_{m_i} w_{m_j}', which differs from DD whenever gw′g w' links components of distinct lags.

95C23 · descriptive · novelty: new, by the authors

Over five fits with bounds="admissible", the median time of a fit with the polynomial check was comparable to that with the per-lag check, also for adam() with seasonal lags 24 and 168 on hourly data, with optimisation paths that differ between the checks.

95C27 · descriptive · novelty: new, by the authors

With the check of the whole model and its shortcut for pure ARIMA, the median time of five fits with bounds="admissible" of two ARIMA and two ETS+ARIMA models was close to that with the check of the parts apart; the log-likelihood of SARIMA(1,1,1)(1,1,1)[12] on AirPassengers rose slightly, and that of ETS(A,N,A)+ARIMA(1,0,1) fell, to another local optimum.

97C29 · descriptive · planned test · novelty: new, by the authors

On the 5119 models of the planned tests, the exact oracle gave the same admissibility decision as the PBH reference and as the prototype's cyclotomic cancellation on every model outside the band of 1e-8 around 1, with largest mode moduli equal to within rounding error on the models both find inadmissible (E25.T1), but the planned test is inconclusive by its rule: the band left out more models than the 1% fixed in the plan, ETS(A,N,A) grid models with α+γ=2\alpha + \gamma = 2 and three high-degree ETS models (E25.T4).

97C30 · descriptive · planned test · novelty: new, by the authors

On the 575 models of PL4 and PL5, with MA polynomials of degree up to 535 before cancellation, the step-down test and the prototype's numpy roots gave the same admissibility decision as the certified roots of the exact oracle on every model, and the roots and the bisection a largest mode modulus within the bisection's width of the certified one (E25.T2).

97C31 · descriptive · planned test · novelty: new, by the authors

On every one of the 5119 models of the planned tests, every factor shared by θ(B)\theta(B) and ϕ(B)\phi(B) with a root in |B|≤1|B| \le 1 was a product of cyclotomic polynomials Φn\Phi_n with nn dividing a lag (no non-cyclotomic shared factor in the closed unit disc); 24 models shared a non-cyclotomic factor, all of whose roots lie outside the unit disc.

97C32 · descriptive · planned test · novelty: new, by the authors

With the exact oracle in place of the PBH reference as the admissibility decision, the per-lag check accepted and rejected the same numbers of models that do and do not forget their initial states among the 3042 ETS(A,N,A) grid models and the 200 random GUM models with lags (1, 12) as with the reference, the counts of C1 and C2 (E25.T3).

Evidence

E1 · simulation · cited by C1

Planned test of the per-lag check (lab plan PL1, run RN7): confirm.py --test perlag --seed 2026 --n 200 computed, for 3042 ETS(A,N,A) models (m = 4 and 12, alpha and gamma on the grid 0.05, 0.10, ..., 1.95) and 200 GUM models with lags (1, 12) (entries of F normal with mean 0 and standard deviation 0.35, of g with mean 0 and standard deviation 0.175, of w with mean 1 and standard deviation 0.175), the per-lag check's largest eigenvalue modulus and the PBH reference, and counted the models on which the two decisions disagree beyond a band of 1e-8 around 1.

  • R1 models accepted by the per-lag check that do not forget their initial states = 1482 (family: ETS(A,N,A), models: 3042)
  • R2 models rejected by the per-lag check that forget their initial states = 0 (family: ETS(A,N,A), models: 3042)
  • R3 models accepted by the per-lag check = 3042 (family: ETS(A,N,A), models: 3042)
  • R4 models accepted by the per-lag check that do not forget their initial states = 10 (family: GUM, models: 200)
  • R5 models rejected by the per-lag check that forget their initial states = 1 (family: GUM, models: 200)
  • R6 models accepted by the per-lag check = 193 (family: GUM, models: 200)

E2 · simulation · cited by C2

Planned test of the per-lag check on GUM models (lab plan PL2, run RN8): the same computation and seed as for plan PL1, counting the GUM models with lags (1, 12) that the per-lag check rejects while their PBH reference lies below 1 - 1e-8.

  • R1 models accepted by the per-lag check that do not forget their initial states = 1482 (family: ETS(A,N,A), models: 3042)
  • R2 models rejected by the per-lag check that forget their initial states = 0 (family: ETS(A,N,A), models: 3042)
  • R3 models accepted by the per-lag check = 3042 (family: ETS(A,N,A), models: 3042)
  • R4 models accepted by the per-lag check that do not forget their initial states = 10 (family: GUM, models: 200)
  • R5 models rejected by the per-lag check that forget their initial states = 1 (family: GUM, models: 200)
  • R6 models accepted by the per-lag check = 193 (family: GUM, models: 200)

E3 · simulation · cited by C3

Planned test of the cyclotomic cancellation (lab plan PL3, run RN9): confirm.py --test cancel --seed 2026 --n 200 generated 200 additive ETS models (level; no, additive or damped trend with phi in (0.8, 0.99); 0 to 2 seasonal lags from {4, 7, 12, 24, 52}; a constant with probability 0.3; beta = 0 with probability 0.1 and each gamma = 0 with probability 0.15; alpha in (0.01, 1.9)), 100 GUM models with F = I, lags from {1, 4, 12}, g uniform on (-0.3, 0.6) and w normal with mean 1 and standard deviation 0.3, and 200 GUM models with lags from {1, 4, 12, 24} and normal F (standard deviation 0.35); for each it compared the largest root modulus of the cancelled MA polynomial with the PBH reference.

  • R1 admissibility decisions that differ from the PBH reference = 0
  • R2 max abs difference of max |lambda| from the PBH reference, inadmissible models = 0.0000 (inadmissible_models: 172)
  • R3 models within 1e-8 of the unit circle, excluded = 0
  • R4 models compared = 500

E4 · simulation · cited by C4

Planned test of the step-down test (lab plan PL4, run RN10): confirm.py --test stepdown --seed 2026 --n 200 generated the 500 models of plan PL3 afresh plus 50 additive ETS models with seasonal lags from {24, 168, 365} and 25 GUM models with lags (1, 24, 168) and normal F (standard deviation 0.3), and compared the step-down decision on the cancelled MA polynomial with the decision from its roots computed by numpy. The generator allows MA polynomial degrees up to 536 (level, trend, seasonal lags 168 and 365, constant); the realised maximum was not recorded as a result.

  • R1 step-down decisions that differ from the decision by the roots = 0
  • R2 models within 1e-8 of the unit circle, excluded = 0
  • R3 models compared = 575

E5 · simulation · cited by C5

Planned test of the bisection (lab plan PL5, run RN11): on the 575 models of plan PL4, for each model whose cancelled MA polynomial has a root-based largest mode modulus above 1 + 1e-8, bisection on r to width 1e-10 with the step-down test on theta*(B/r) was compared with the root-based value. The generator allows MA polynomial degrees up to 536 (level, trend, seasonal lags 168 and 365, constant); the realised maximum was not recorded as a result.

  • R1 max abs difference of max |lambda|, bisection against roots = 0.0000 (inadmissible_models: 198)
  • R2 models within 1e-8 of the unit circle, excluded = 0
  • R3 models compared = 575

E13 · simulation · cited by C16

Planned test of the implementation in smooth (lab plan PL6, run RN43): cpp_check.py --seed 2027 --n 200 generated 200 models in each of four families (additive ETS with 0-2 seasonal lags from {4, 7, 12, 24, 52}; additive ETS with 0-2 seasonal lags from {24, 168, 365}; GUM with F = I and lags from {1, 4, 12}; GUM with normal F, standard deviation 0.35, and lags from {1, 4, 12, 24}), called smoothEigensR() of the repository (through pkgload::load_all) three times on each, and compared its decision and modulus with the numpy prototype (roots of the cancelled MA polynomial).

E13.T1 · Comparison of the C++ core (smoothEigensR()) with the numpy prototype on 200 models in each of four families: admissibility decisions that differ, largest absolute difference of the root modulus on the models found inadmissible, models whose cancelled polynomials differ in degree, largest absolute difference between three calls on the same model, and the number of models found inadmissible (models: 200)
Rowfamilyadmissibility decisions of the C++ core that differ from the prototypemax abs difference of the largest root modulus on inadmissible models, C++ core against prototypemodels whose cancelled polynomials differ in degree, C++ core against prototypemax abs difference between three calls of the C++ core on the same modelinadmissible
r1ETS00.00000086
r2ETS high degree00.00000095
r3GUM identity00.00000084
r4GUM random00.00000027

E10 · simulation · cited by C6, C10, C11

Exploratory run RN2 of explore.py --seed 0: the ARIMA-form polynomials, their cyclotomic cancellation and the PBH reference for ETS(A,N,A,A) with seasonal lags 24 and 168 (alpha = 0.3, gamma = (0.1, 0.05)) and for GUM with orders (2, 2), lags (1, 12), F = I, g = 0.1 and w = 1 (the default starting point of gum()); the determinant identity at random complex B on 100 random GUM models; the expanded discount matrix of a block-diagonal D; and mean times over 50 repeats of three computations for a random GUM with lags (1, 24, 168). The result labelled 'block-diagonal D, lags (1,12)' comes from D = [[0.7, 0], [-0.1, 0.3]], which is lower-triangular rather than block-diagonal.

  • R11 max relative error of the determinant identity = 0.0000 (models: 100)
  • R12 max |lambda|, per-lag check = 0.7 (model: block-diagonal D, lags (1,12))
  • R13 max |lambda|, all modes of the expanded discount matrix = 0.9045 (model: block-diagonal D, lags (1,12))
  • R14 mean time, ms = 4.6963 (task: coefficients by DFT, degree: 193)
  • R15 mean time, ms = 0.0069 (task: step-down test, degree: 193)
  • R16 mean time, ms = 22.2257 (task: all roots, numpy companion eigenvalues, degree: 193)
E10.T1 · Degree of the MA polynomial theta and of its shared cyclotomic factor, and the largest mode modulus from the roots of theta before and after cancellation and from the PBH reference, for ETS(A,N,A,A) with seasonal lags 24 and 168 and for the default starting point of gum() with orders (2, 2) and lags (1, 12)
Rowmodeldegree of thetadegree of the shared cyclotomic factormax |lambda|, roots of theta before cancellationmax |lambda|, roots of theta after cancellationmax |lambda|, controllable and observable modes (PBH)
r1ETS(A,N,A,A), alpha=0.3, gamma=(0.1,0.05)19325111
r2GUM start, orders (2,2), lags (1,12)261410.98290.9829

E6 · formal · cited by C6

Derivation of the ARIMA form of a lagged SSOE model by the matrix determinant lemma.

  1. ϵt=yt−w′vt−l⇒vt=Dvt−l+gyt,D=F−gw′\epsilon_t = y_t - w' v_{t-l} \Rightarrow v_t = D v_{t-l} + g y_t,\ D = F - g w' (substitution; from D1)
  2. vt−l=L(B)vt⇒(I−DL(B))vt=gytv_{t-l} = L(B) v_t \Rightarrow (I - D L(B)) v_t = g y_t (definition of $L(B)$; from S1, D1)
  3. det⁡(I−DL(B))|B=0=1⇒I−DL(B) is invertible over rational functions\det(I - D L(B))|_{B=0} = 1 \Rightarrow I - D L(B) \text{ is invertible over rational functions} (evaluation at $B = 0$; from S2)
  4. ϵt=(1−w′L(B)(I−DL(B))−1g)yt\epsilon_t = \left(1 - w' L(B) (I - D L(B))^{-1} g\right) y_t (substitution; from S1, S2, S3)
  5. I−DL(B)−gw′L(B)=I−FL(B)I - D L(B) - g\, w' L(B) = I - F L(B) (definition of $D$; from D1)
  6. det⁡(I−FL(B))=det⁡(I−DL(B))(1−w′L(B)(I−DL(B))−1g)\det(I - F L(B)) = \det(I - D L(B))\left(1 - w' L(B)(I - D L(B))^{-1} g\right) (matrix determinant lemma $\det(A - g u') = \det(A)(1 - u' A^{-1} g)$; from S3, S5)
  7. det⁡(I−DL(B))ϵt=det⁡(I−FL(B))yt\det(I - D L(B))\, \epsilon_t = \det(I - F L(B))\, y_t (substitution; from S4, S6)

E7 · formal · cited by C7

Characteristic polynomial of the expanded matrix and its factorisation for a block-diagonal discount matrix.

  1. det⁡(λI−M~)=det⁡(Λ(λ)−M) for the lag-1 expansion M~ of vt=Mvt−l\det(\lambda I - \tilde M) = \det(\Lambda(\lambda) - M) \text{ for the lag-1 expansion } \tilde M \text{ of } v_t = M v_{t-l} (identity of the lag-1 expansion; from C15)
  2. D=blockdiag(Dll)⇒det⁡(Λ(λ)−D)=∏ldet⁡(λlI−Dll)D = \mathrm{blockdiag}(D_{ll}) \Rightarrow \det(\Lambda(\lambda) - D) = \prod_l \det(\lambda^l I - D_{ll}) (determinant of a block-diagonal matrix; from S1, D1)
  3. det⁡(λlI−Dll)=0⟺λl=μ,μ∈eig(Dll)⇒|λ|=|μ|1/l\det(\lambda^l I - D_{ll}) = 0 \iff \lambda^l = \mu,\ \mu \in \mathrm{eig}(D_{ll}) \Rightarrow |\lambda| = |\mu|^{1/l} (eigenvalue equation; from S2)
  4. |λ|<1⟺|μ|<1|\lambda| < 1 \iff |\mu| < 1 (monotonicity of $x \mapsto x^{1/l}$ on $[0, \infty)$; from S3)

E8 · formal · cited by C8

Unobservable or unreachable modes of the expanded transition matrix are modes of the expanded discount matrix and give common roots of the two ARIMA-form polynomials.

  1. F~u=λu,w~′u=0⇒D~u=F~u−g~(w~′u)=λu\tilde F u = \lambda u,\ \tilde w' u = 0 \Rightarrow \tilde D u = \tilde F u - \tilde g (\tilde w' u) = \lambda u (substitution of $\tilde D = \tilde F - \tilde g \tilde w'$; from D2)
  2. u′F~=λu′,u′g~=0⇒u′D~=u′F~−(u′g~)w~′=λu′u' \tilde F = \lambda u',\ u' \tilde g = 0 \Rightarrow u' \tilde D = u' \tilde F - (u' \tilde g) \tilde w' = \lambda u' (substitution of $\tilde D = \tilde F - \tilde g \tilde w'$; from D2)
  3. det⁡(λI−M~)=λ∑jljdet⁡(I−ML(1/λ)),λ≠0\det(\lambda I - \tilde M) = \lambda^{\sum_j l_j} \det(I - M L(1/\lambda)),\ \lambda \neq 0 (identity of the lag-1 expansion; from C15)
  4. ϕ(1/λ)=det⁡(I−FL(1/λ))=0,θ(1/λ)=det⁡(I−DL(1/λ))=0\phi(1/\lambda) = \det(I - F L(1/\lambda)) = 0,\ \theta(1/\lambda) = \det(I - D L(1/\lambda)) = 0 (substitution; from S1, S2, S3)

E9 · formal · cited by C9

Evaluation of the ARIMA-form polynomials of ETS(A,N,A) at B=1B = 1.

  1. D=(1−α−α−γ1−γ),L(B)=diag(B,Bm)D = \begin{pmatrix} 1-\alpha & -\alpha \\ -\gamma & 1-\gamma \end{pmatrix},\ L(B) = \mathrm{diag}(B, B^m) (definition; from D9, D1)
  2. θ(B)=det⁡(I−DL(B))=(1−(1−α)B)(1−(1−γ)Bm)−αγBm+1\theta(B) = \det(I - D L(B)) = (1 - (1-\alpha)B)(1 - (1-\gamma)B^m) - \alpha\gamma B^{m+1} (determinant of a $2 \times 2$ matrix; from S1)
  3. θ(1)=αγ−αγ=0\theta(1) = \alpha\gamma - \alpha\gamma = 0 (evaluation at $B = 1$; from S2)
  4. ϕ(B)=det⁡(I−L(B))=(1−B)(1−Bm),ϕ(1)=0\phi(B) = \det(I - L(B)) = (1 - B)(1 - B^m),\ \phi(1) = 0 (determinant of a diagonal matrix; from D9, D1)
  5. det⁡(I−D~)=1m+1θ(1)=0\det(I - \tilde D) = 1^{m+1} \theta(1) = 0 (identity of the lag-1 expansion at $\lambda = 1$; from S3, C15)

E11 · formal · cited by C15

Schur-complement derivation of the characteristic polynomial of the lag-1 expansion.

  1. λI−M~=(λIk−A−B−CλI−S)\lambda I - \tilde M = \begin{pmatrix} \lambda I_k - A & -B \\ -C & \lambda I - S \end{pmatrix} (partition of the states into the $k$ current values (heads) and the $\sum_j (l_j - 1)$ lagged copies (tails); $S$ shifts each tail chain, $C$ feeds each head into its first copy, $A$ and $B$ hold the entries of $M$ that act on heads with lag 1 and on last copies; from D2)
  2. det⁡(λI−S)=λ∑j(lj−1)\det(\lambda I - S) = \lambda^{\sum_j (l_j - 1)} (determinant of a lower-triangular matrix with diagonal $\lambda$; from S1)
  3. A+B(λI−S)−1C=Mdiag(λ1−l1,…,λ1−lk),λ≠0A + B (\lambda I - S)^{-1} C = M\, \mathrm{diag}(\lambda^{1 - l_1}, \dots, \lambda^{1 - l_k}),\ \lambda \neq 0 ($(\lambda I - S)^{-1} C$ maps head $j$ to its copies $\lambda^{-s}$, $s = 1, \dots, l_j - 1$, and $B$ reads copy $l_i - 1$ of component $i$; from S1)
  4. det⁡(λI−M~)=λ∑j(lj−1)det⁡(λIk−Mdiag(λ1−lj))=det⁡(Λ(λ)−M),λ≠0\det(\lambda I - \tilde M) = \lambda^{\sum_j (l_j - 1)} \det(\lambda I_k - M\, \mathrm{diag}(\lambda^{1 - l_j})) = \det(\Lambda(\lambda) - M),\ \lambda \neq 0 (Schur complement, then factoring $\lambda\, \Lambda(\lambda)^{-1}$ out on the right; from S2, S3)
  5. det⁡(λI−M~)=det⁡(Λ(λ)−M) for all λ\det(\lambda I - \tilde M) = \det(\Lambda(\lambda) - M) \text{ for all } \lambda (two polynomials equal on $\lambda \neq 0$ are equal; from S4)
  6. det⁡(λI−M~)=λ∑jljdet⁡(I−ML(1/λ)),λ≠0\det(\lambda I - \tilde M) = \lambda^{\sum_j l_j} \det(I - M L(1/\lambda)),\ \lambda \neq 0 (factoring $\Lambda(\lambda)$ out on the right: $\Lambda(\lambda) - M = (I - M \Lambda(\lambda)^{-1}) \Lambda(\lambda)$; from S5, D1)

E12 · simulation · cited by C12

Exploratory run RN13 of timing.py --seed 3 --repeats 50: for the first admissible and the first inadmissible random GUM with lags (1, 24, 168) (normal F with standard deviation 0.3) and for the cancelled MA polynomial of ETS(A,N,A,A) with seasonal lags 24 and 168 (alpha = 0.3, gamma = (0.1, 0.05)), the number of recursion steps of the step-down test and the mean times over 50 repeats of the step-down test, of all roots by numpy's companion-matrix eigenvalues and of the coefficients by inverse discrete Fourier transform.

E12.T1 · Recursion steps and mean times over 50 repeats of the step-down test, of all roots by numpy's companion-matrix eigenvalues and of the coefficients of theta and phi by inverse DFT, for an admissible and an inadmissible random GUM with lags (1, 24, 168) and for the cancelled MA polynomial of ETS(A,N,A,A) with seasonal lags 24 and 168 (repeats: 50)
Rowmodeldegreemean time of the step-down test, msmean time of all roots by numpy companion eigenvalues, msrecursion steps run by the step-down testmean time of the coefficients of theta and phi by inverse DFT, ms
r1random GUM, lags (1, 24, 168), admissible1930.74323.75991936.5728
r2random GUM, lags (1, 24, 168), inadmissible1930.813920.8541170
r3ETS(A,N,A,A), lags 24 and 168, cancelled theta1680.417217.4571

E14 · formal · cited by C17

The reduced form of the ARIMA polynomials through the Kalman decomposition of the expanded system.

  1. ∃T:T−1F~T block-triangular with a reachable and observable block (Fco,gco,wco),w~′(zI−F~)−1g~=wco′(zI−Fco)−1gco\exists T: T^{-1}\tilde F T \text{ block-triangular with a reachable and observable block } (F_{co}, g_{co}, w_{co}),\ \tilde w'(zI - \tilde F)^{-1}\tilde g = w_{co}'(zI - F_{co})^{-1} g_{co} (Kalman canonical decomposition; from D2)
  2. D~=F~−g~w~′ keeps the reachable and the unobservable subspaces, so Dco=Fco−gcowco′\tilde D = \tilde F - \tilde g \tilde w' \text{ keeps the reachable and the unobservable subspaces, so } D_{co} = F_{co} - g_{co} w_{co}' (reachability is invariant under state feedback and observability under output injection; from S1, D2)
  3. 1+wco′(zI−Fco)−1gco=det⁡(zI−Dco)det⁡(zI−Fco),gcd⁡(det⁡(zI−Dco),det⁡(zI−Fco))=11 + w_{co}'(zI - F_{co})^{-1} g_{co} = \frac{\det(zI - D_{co})}{\det(zI - F_{co})},\ \gcd(\det(zI - D_{co}), \det(zI - F_{co})) = 1 (matrix determinant lemma; a single-input single-output realisation is minimal if and only if the numerator and denominator of its transfer function are coprime; from S2)
  4. 1+w~′(zI−F~)−1g~=det⁡(zI−D~)det⁡(zI−F~)=θ(1/z)ϕ(1/z)1 + \tilde w'(zI - \tilde F)^{-1}\tilde g = \frac{\det(zI - \tilde D)}{\det(zI - \tilde F)} = \frac{\theta(1/z)}{\phi(1/z)} (matrix determinant lemma and the identity of the lag-1 expansion; from C15, D1)
  5. θ(B)gcd⁡(θ,ϕ)(B)=0⟺B=1/λ,λ∈spec(Dco)∖{0} (with multiplicity)\frac{\theta(B)}{\gcd(\theta, \phi)}(B) = 0 \iff B = 1/\lambda,\ \lambda \in \mathrm{spec}(D_{co}) \setminus \{0\} \text{ (with multiplicity)} (uniqueness of the reduced fraction, with z = 1/B: the eigenvalues at zero give no root, theta(0) = phi(0) = 1 makes theta / gcd the reduced numerator, and the reversal keeps coprimality away from B = 0; from S3, S4)

E15 · formal · cited by C18

Scaling the argument of a polynomial scales its roots.

  1. c(Bi)=0⟺c((rBi)/r)=0c(B_i) = 0 \iff c((r B_i) / r) = 0 (substitution)
  2. |rBi|>1∀i⟺1/|Bi|<r∀i|r B_i| > 1\ \forall i \iff 1/|B_i| < r\ \forall i (r > 0; from S1)
  3. c(B/r)/c(0)=1+∑i(ci/c0)r−iBi has the roots of c(B/r)c(B/r) / c(0) = 1 + \sum_i (c_i / c_0)\, r^{-i} B^i \text{ has the roots of } c(B/r) ($c(0) \neq 0$; from S1)
  4. the step-down passes on c(B/r)⟺|rBi|>1∀i\text{the step-down passes on } c(B/r) \iff |r B_i| > 1\ \forall i (the step-down test passes exactly when all roots lie outside the unit circle; from D7, S1, S3)

E16 · formal · cited by C20

Expansion of det(I - M L(B)) by multilinearity in the columns.

  1. column j of I−ML(B)=ej−Bljmj\text{column } j \text{ of } I - M L(B) = e_j - B^{l_j} m_j (definition of $L(B)$; from D1)
  2. det⁡(I−ML(B))=∑Sdet⁡[ej(j∉S),−Bljmj(j∈S)]\det(I - M L(B)) = \sum_{S} \det\left[\, e_j\ (j \notin S),\ -B^{l_j} m_j\ (j \in S) \right] (multilinearity of the determinant in the columns; from S1)
  3. det⁡[ej(j∉S),−Bljmj(j∈S)]=(−1)|S|B∑j∈Sljdet⁡(MSS)\det\left[\, e_j\ (j \notin S),\ -B^{l_j} m_j\ (j \in S) \right] = (-1)^{|S|} B^{\sum_{j \in S} l_j} \det(M_{SS}) (Laplace expansion along the unit columns, and pulling the scalars out of the other columns; from S2)

E17 · formal · cited by C21

The per-lag discount matrices of Section 5.4 of the ADAM monograph against D.

  1. Fmi=F⋅Si,gmi=gSi,wmi=wSi (zero elsewhere), Si the components of lag miF_{m_i} = F_{\cdot S_i},\ g_{m_i} = g_{S_i},\ w_{m_i} = w_{S_i} \text{ (zero elsewhere), } S_i \text{ the components of lag } m_i (the split of Section 5.2 of the monograph; from D1)
  2. Dmi=Fmi−gmiwmi′ has non-zero columns only in SiD_{m_i} = F_{m_i} - g_{m_i} w_{m_i}' \text{ has non-zero columns only in } S_i (definition; from S1)
  3. Dmi∼(DSiSi0∗0)⇒spec(Dmi)∖{0}=spec(DSiSi)∖{0}D_{m_i} \sim \begin{pmatrix} D_{S_i S_i} & 0 \\ \ast & 0 \end{pmatrix} \Rightarrow \mathrm{spec}(D_{m_i}) \setminus \{0\} = \mathrm{spec}(D_{S_i S_i}) \setminus \{0\} (a symmetric permutation and the eigenvalues of a block-triangular matrix; from S2)
  4. ∑iDmi=F−∑igmiwmi′=D+∑i≠jgmiwmj′\sum_i D_{m_i} = F - \sum_i g_{m_i} w_{m_i}' = D + \sum_{i \neq j} g_{m_i} w_{m_j}' ($g w' = \sum_i \sum_j g_{m_i} w_{m_j}'$; from S1)
  5. (a,b) with lags mi≠mj:(∑i≠jgmiwmj′)ab=gawb(a, b) \text{ with lags } m_i \neq m_j: \left(\sum_{i \neq j} g_{m_i} w_{m_j}'\right)_{ab} = g_a w_b (a single term, so the sum differs from D exactly where g w' links components of different lags; from S4)

E18 · simulation · cited by C22

Exploratory run RN44 of book_check.py --periods 2400: for ETS(A,N,A) with m = 12 and (alpha, gamma) = (0.1, 0.1) and (1.2, 0.9), the largest nonzero eigenvalue modulus of the per-lag discount matrices of the monograph, the effect |w′vt−l||w' v_{t-l}| of initial states set to one in the full recursion vt=Dvt−lv_t = D v_{t-l} (y=0y = 0) over 2400 periods and its growth per period over the second half, the growth of the weight of an observation (the same recursion from zero states with one unit observation), and the largest root modulus of the cancelled MA polynomial.

E18.T1 · For ETS(A,N,A) with m = 12 at two parameter pairs: the largest nonzero eigenvalue modulus of the monograph's per-lag discount matrices, the effect of the initial states on the fitted value at period 2400 and its growth per period over the second half, the growth of the weight of an observation, and the largest root modulus of the cancelled MA polynomial (model: ETS(A,N,A), m: 12)
Rowalphagammalargest nonzero eigenvalue modulus of the book's per-lag discount matriceseffect of the initial states on the fitted value at the last period (period: 2400)growth of the effect of the initial states per period over the second halfgrowth of the weight of an observation per period over the second halflargest root modulus of the cancelled MA polynomial
r10.10.10.90.00000.98960.99090.9911
r21.20.90.25.96878e+161.01641.01641.0165

E19 · simulation · cited by C23

Exploratory run RN40 of bench_eigens.R: the package installed at -O2 from a worktree at commit b963693 (the polynomial check with the step-down multiplying by 1 / (1 - k^2), the algorithm kept in the final code), each fit run seven times with smoothEigens() switched in the namespace between the per-lag and the polynomial check; the median time of a fit and its calls of smoothEigens(). The optimisation paths differ between the two checks, whose admissible regions differ.

E19.T1 · Median time of a fit with bounds="admissible" over seven runs and its calls of smoothEigens(), per-lag against polynomial check (build: R 4.3.3, -O2, repeats: 7)
Rowfitper-lag, secondsper-lag, callspolynomial, secondspolynomial, callspolynomial, inadmissible callsratio of the times, polynomial / per-lag
r1gum(AirPassengers, orders=c(1,1), lags=c(1,12))0.0974840.08484400.8247
r2gum(AirPassengers, orders=c(2,1), lags=c(1,12))0.1639640.195964431.1963
r3adam(AirPassengers, "AAdA")0.0521620.046162600.8846
r4adam(hourly, "ANA", lags=c(24,168))0.1441220.156122521.0833
r5ces(AirPassengers, "full")0.063240.056310680.9333

E20 · simulation · other · cited by C24

Planned tests (lab plans PL7 and PL8, runs RN49 and RN50, the same command): ets_arima.py --seed 2 --n 500 --adam 20 generated 500 ETS+ARIMA and 500 ETS+SARIMA models (seed 2, new against the exploratory runs RN46-RN48, seed 1), built each in ADAM's form, compared the matrices of 20 of them with adam() (0 lags differed, matrices within 4.4e-15), and decided admissibility by the check of the parts apart, the check of the whole model and the PBH reference.

  • R17 max abs difference between the ARIMA form of the ARIMA part and its ARI and MA polynomials = 0.0000 (models: 1000)
  • R18 models whose component lags differ from those of adam() = 0 (models: 20)
  • R19 max abs difference between the matrices built here and those of adam() = 0.0000 (models: 20)
E20.T1 · Admissibility decisions of the check of the parts apart ('split') and of the check of the whole model ('joint') against the PBH reference on 500 models of each family: models whose decision differs, models accepted by the check and rejected by the reference, and models rejected by the check and accepted by the reference (models: 500)
Rowfamilycheckmodels whose admissibility decision differs from the PBH referencemodels accepted by the check and rejected by the PBH referencemodels rejected by the check and accepted by the PBH reference
r1ETS+ARIMAsplit16610462
r2ETS+ARIMAjoint000
r3ETS+SARIMAsplit15912831
r4ETS+SARIMAjoint000
E20.T2 · Per family of 500 models: models found admissible by the PBH reference, and the largest absolute difference of the largest modulus between the check of the whole model and the PBH reference on the models both find inadmissible, with their number
Rowfamilymax abs difference of the largest modulus, check of the whole model against the PBH reference, on models both find inadmissiblemodels found admissible by the PBH reference (models: 500)inadmissible
r1ETS+ARIMA0.0000159341
r2ETS+SARIMA0.000087413

E21 · simulation · other · cited by C25

Planned tests (lab plans PL7 and PL8, runs RN49 and RN50, the same command): ets_arima.py --seed 2 --n 500 --adam 20 generated 500 ETS+ARIMA and 500 ETS+SARIMA models (seed 2, new against the exploratory runs RN46-RN48, seed 1), built each in ADAM's form, compared the matrices of 20 of them with adam() (0 lags differed, matrices within 4.4e-15), and decided admissibility by the check of the parts apart, the check of the whole model and the PBH reference.

  • R17 max abs difference between the ARIMA form of the ARIMA part and its ARI and MA polynomials = 0.0000 (models: 1000)
  • R18 models whose component lags differ from those of adam() = 0 (models: 20)
  • R19 max abs difference between the matrices built here and those of adam() = 0.0000 (models: 20)
E21.T1 · Admissibility decisions of the check of the parts apart ('split') and of the check of the whole model ('joint') against the PBH reference on 500 models of each family: models whose decision differs, models accepted by the check and rejected by the reference, and models rejected by the check and accepted by the reference (models: 500)
Rowfamilycheckmodels whose admissibility decision differs from the PBH referencemodels accepted by the check and rejected by the PBH referencemodels rejected by the check and accepted by the PBH reference
r1ETS+ARIMAsplit16610462
r2ETS+ARIMAjoint000
r3ETS+SARIMAsplit15912831
r4ETS+SARIMAjoint000
E21.T2 · Per family of 500 models: models found admissible by the PBH reference, and the largest absolute difference of the largest modulus between the check of the whole model and the PBH reference on the models both find inadmissible, with their number
Rowfamilymax abs difference of the largest modulus, check of the whole model against the PBH reference, on models both find inadmissiblemodels found admissible by the PBH reference (models: 500)inadmissible
r1ETS+ARIMA0.0000159341
r2ETS+SARIMA0.000087413

E22 · simulation · other · cited by C26

Planned test (lab plan PL9, run RN53): ets_arima.py --seed 3 --n 500 --impl generated 500 ETS+ARIMA and 500 ETS+SARIMA models (seed 3) and passed the matrices of each to adam_bounds_checker() of R (through pkgload::load_all of the repository) and of Python, with the AR reflection of its factors, comparing the penalty (zero, or 1e100 times the largest root modulus) with the prototype check of the whole model.

  • R17 max abs difference between the ARIMA form of the ARIMA part and its ARI and MA polynomials = 0.0000 (models: 1000)
E22.T1 · Admissibility decisions of the check of the parts apart ('split') and of the check of the whole model ('joint') against the PBH reference on 500 models of each family: models whose decision differs, models accepted by the check and rejected by the reference, and models rejected by the check and accepted by the reference (models: 500)
Rowfamilycheckmodels whose admissibility decision differs from the PBH referencemodels accepted by the check and rejected by the PBH referencemodels rejected by the check and accepted by the PBH reference
r1ETS+ARIMAsplit17111556
r2ETS+ARIMAjoint000
r3ETS+SARIMAsplit15012921
r4ETS+SARIMAjoint000
E22.T2 · Per family of 500 models: models found admissible by the PBH reference, and the largest absolute difference of the largest modulus between the check of the whole model and the PBH reference on the models both find inadmissible, with their number
Rowfamilymax abs difference of the largest modulus, check of the whole model against the PBH reference, on models both find inadmissiblemodels found admissible by the PBH reference (models: 500)inadmissible
r1ETS+ARIMA0.0000159341
r2ETS+SARIMA0.000076424
E22.T3 · The bounds checker of adam() in R and of ADAM in Python against the prototype check of the whole model on 500 models of each family: admissibility decisions that differ, and the largest absolute difference of the largest root modulus on the models found inadmissible, with their number (models: 500)
Rowfamilylanguageadmissibility decisions of the package's bounds checker that differ from the prototype check of the whole modelmax abs difference of the largest modulus, package's bounds checker against the prototype, on models both find inadmissibleinadmissible
r1ETS+ARIMAR00.0000341
r2ETS+ARIMAPython00.0000341
r3ETS+SARIMAR00.0000424
r4ETS+SARIMAPython00.0000424

E23 · simulation · cited by C27

Exploratory runs of timing_ets_arima.R: the package installed at -O2 from two worktrees, the check of the parts apart (commit 397f255f) and of the whole model, each fit run five times. RN55 (commit af998d26) ran the check of the whole model on every call: pure ARIMA fits took 1.5 and 1.8 times as long. RN56 (commit b4a10cc6) adds the shortcut that, without ETS and adaptive regressors, accepts invertible MA factors without the check of the whole model; its times and log-likelihoods are in the table.

E23.T1 · Median time of a fit over five runs and its log-likelihood, check of the parts apart against the whole model (RN56) (build: R 4.3.3, -O2, repeats: 5)
Rowfitparts apart, secondswhole model, secondsparts apart, log-likelihoodwhole model, log-likelihood
r1ARIMA(1,1,1)(1,1,1)[12]0.070.074-541.844-541.382
r2ETS(A,N,A)+ARIMA(1,0,1)0.0670.064-569.649-572.214
r3ETS(A,Ad,N)+ARIMA(0,1,2)0.0780.078-255.264-255.264
r4ssarima (1,1,1)(1,1,1)[12]0.080.083-556.99-556.99

E24 · simulation

Exploratory runs of the checker P4 (exact_oracle.py, seeds 21-23 and 31-34, 250 models each): admissibility by an exact oracle (rational determinants and the exact greatest common divisor of theta and phi, which cancels any shared factor) against the cancellation of cyclotomic factors ('author'), the PBH reference ('pbh') and the package ('pkg'); the number of models whose decision differs from the oracle.

E24.T1 · Models, of 250 per seed, whose admissibility decision differs from the exact gcd oracle, for the cancellation of cyclotomic factors ('author'), the PBH reference ('pbh') and the package ('pkg'), seeds 21 to 23 and 31 to 34 (models: 250)
Rowseedmodels whose admissibility decision differs from the exact gcd oracle (check: author)models whose admissibility decision differs from the exact gcd oracle (check: pbh)models whose admissibility decision differs from the exact gcd oracle (check: pkg)
r121001
r222000
r323000
r431000
r532000
r633011
r734001

E25 · simulation · cited by C29, C30, C31, C32

Planned test of the contributor P5 (lab plan AC5.PL1, run AC5.RN8, with the breakdown run AC5.RN9): the exact oracle, written without the prototype, on the models of the planned tests exported by runs RN57-RN61, against the prototype's values stored with each model. The oracle was tried beforehand only on models of other seeds (AC5.RN2, AC5.RN6, AC5.RN7) and on hand-checkable models. AC5.RN8 took 30 s.

E25.T1 · Each set of models of the planned tests (D42) given to the exact oracle (D41), and over all sets: models given, left out by the edge band and undecided; decisions of the PBH reference and of the prototype's cancellation that differ from the oracle, and the largest absolute difference of the largest mode modulus on the models both find inadmissible; models with a non-cyclotomic shared factor in the closed unit disc (D44); models whose cancelled MA degree differs from the prototype's. Empty cells: the set has no such value of the prototype (perlag holds the PBH reference only; stepdown and cpp the cancellation only).
Rowsetmodels given to the oraclemodels on which the oracle failedmodels comparedmodels whose shared non-cyclotomic factor could not be locatedmodels with a shared non-cyclotomic factor, all roots in |B| > 1models excluded by edgemodels excluded by undecidedadmissibility decisions of the PBH reference that differ from the exact oraclemax abs difference of the largest mode modulus, PBH reference against the exact oracle, models both find inadmissibleadmissibility decisions of the prototype's cancellation that differ from the exact oraclemax abs difference of the largest mode modulus, prototype's roots after cancellation against the exact oracle, models both find inadmissiblemodels with a shared factor of theta and phi that is not a product of Phi_n, n dividing a lag, with a root in |B| <= 1models whose cancelled MA degree differs from the prototype's
r1perlag3242031640078000.00000
r2cancel5000500080000.000000.000000
r3stepdown5750575080000.000000
r4cpp8000797083000.000000
r5examples2020000000000
r6all51190503802481000.000000.000000
E25.T2 · The 575 models of PL4 and PL5 (MA degree up to 535 before cancellation): step-down decisions of the prototype that differ from the exact oracle; the largest absolute difference of the bisection value from the certified largest mode modulus, over the models that have one; and the degrees. (set: stepdown)
Rowsetstep-down decisions of the prototype that differ from the exact oraclemax abs difference of the largest mode modulus, prototype's bisection against the exact oraclemodels with a bisection valuemax degree of theta, exactmax degree of the cancelled MA polynomial, exact
r1stepdown00.0000198535533
E25.T3 · The models of PL1 and PL2 (3042 ETS(A,N,A) grid models, 200 GUM models with lags (1, 12)): the counts of C1 and C2 with the exact oracle in place of the PBH reference and the band of 1e-8. (set: perlag)
Rowfamilymodels accepted by the per-lag check that do not forget their initial states, exact oraclemodels rejected by the per-lag check that forget their initial states, exact oraclemodels accepted by the per-lag checkmodels of the family
r1ETS(A,N,A)1482030423042
r2GUM101193200
E25.T4 · The models in the edge band, by set and family (run AC5.RN9): their number, the largest distance of the certified largest mode modulus from 1, those with roots proved on the unit circle, and those whose decision by the method of the original test (the PBH reference for perlag, the prototype's cancellation for cpp) differs from the oracle's, with the largest modulus difference.
Rowsetfamilymodels in the edge bandmax distance of the certified largest mode modulus from 1, edge modelsedge models with roots proved on the unit circleedge models whose decision differs from the exact oraclemax abs difference of the largest mode modulus against the exact oracle, edge models
r1perlagETS(A,N,A)780.0000260.0000
r2cppETS high degree30.0000000.0000
E25.T5 · The examples of C10 and C11 (run AC5.RN9): the certified largest mode modulus, its difference from the PBH reference and from the prototype's roots after cancellation, and the exact degrees of theta, of the shared cyclotomic factor and of the gcd of theta and phi.
Rowmodellargest mode modulus, exact oracle (theta_G)abs difference of the largest mode modulus, PBH reference against the exact oracleabs difference of the largest mode modulus, prototype's roots after cancellation against the exact oracledegree of theta, exactdegree of the shared cyclotomic factor, exactdegree of the exact gcd of theta and phi
r1ETS(A,N,A,A), alpha=0.3, gamma=(0.1,0.05)10.00000.00001932525
r2GUM start, orders (2,2), lags (1,12)0.98290.00000.0000261414

Limitations

L1 · analytic flexibility · reduces transferability · affects C1 · mitigation: partial

The 3042 ETS(A,N,A) models of the planned test of the per-lag check form the same fixed grid as exploratory run RN3, whose result prompted the hypothesis; only the 200 GUM models of that test were new data.

L2 · measurement · could reverse · affects C1, C2, C3, C10, C11, C16 · mitigation: addressed

The PBH reference and the cyclotomic cancellation were written by the same agent and share the lag-1 expansion code and numpy's LAPACK eigenvalue routines.

L3 · sampling · reduces transferability · affects C2, C3, C4, C5, C16 · mitigation: none

The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data.

L4 · measurement · could reverse · affects C4, C5, C16 · mitigation: addressed

The reference decisions use numpy's polynomial roots (companion-matrix eigenvalues) for polynomials of degree up to 535 before cancellation with many roots near the unit circle.

L5 · deviation · reduces transferability · affects C4, C5 · mitigation: none

The plans of the tests behind the step-down and bisection claims stated MA polynomial degrees up to 366; the generator code named in the plans, run unchanged, produced degrees up to 535 before cancellation.

L6 · other · reduces transferability · affects C22 · mitigation: partial

The recursion of the counterexample to the monograph's condition was run for one parameter pair, with the initial states set to one and no data.

L7 · computational · reduces precision · affects C23 · mitigation: none

The fit timings come from one machine, seven repeats per fit, with a run-to-run variation of about 10% between benchmark runs of the same code.

L8 · model specification · reduces transferability · affects C4, C16 · mitigation: none

For GUM models with structured parameters, such as a state with |F_ii| > 1 and zero persistence, theta and phi can share a factor with a root in |B| <= 1 that is not cyclotomic; the check keeps it and rejects the model although its observation weights decay, because the initial state of that mode has a growing effect.

L9 · measurement · reduces precision · affects C27 · mitigation: none

Estimates with bounds="admissible" change for ETS+ARIMA models, whose admissible region changes, and the likelihood of such models can have several local optima: on ETS(A,N,A)+ARIMA(1,0,1) on AirPassengers the fit with the check of the whole model reached a lower log-likelihood than the fit with the check of the parts apart.

L10 · computational · could bias magnitude · affects C16, C26 · mitigation: addressed

Two defects found while testing were fixed before the planned runs: adam() with provided MA parameters added the MA coefficient of a lag without AR or differences twice to the persistence vector (and reapply() did so with the drawn ones, in R and Python), found by the structure check of the exploratory runs RN46 and RN47; and the Python build of smooth crashed at exit after checking a model whose MA polynomial has degree 16 or more (runs RN51 and RN52), because the caches of the check were freed through numpy after it had shut down. The second affected the implementation tested by C16 in Python, not its results. After the fixes the matrices built by the study matched those of adam() within 4.4e-15 (E21), and the planned run of the checkers (E22) exited normally.

L11 · computational · reduces transferability · affects C16, C26 · mitigation: addressed

For an MA root exactly on the unit circle that does not cancel, the decision of the check is set by rounding: the checker P4 found three models of a wider generator, with values of the check between 0.99999999999 and 1, that the package accepted and the prototype rejected. Since this finding the bounds checkers admit a model only when the value is at most 1 - 1e-10 (decision DC8 of the lab record), which rejects these three; the planned tests ran before the margin, and their random models have no such root.

L12 · measurement · reduces transferability · affects C24, C25 · mitigation: none

The PBH reference is not exact for a repeated unit root: the checker P4 found a model whose cancelled MA polynomial keeps a double root at -1, which the reference accepted and the cancellation and an exact gcd rejected. The random models of the planned tests have no such root.

References

  1. Hyndman et al. (2008) Hyndman, R., Koehler, A., Ord, K., & Snyder, R. (2008). Forecasting with Exponential Smoothing. Springer Series in Statistics. doi:10.1007/978-3-540-71918-2 Used by: Context, D9
  2. Barndorff-Nielsen and Schou (1973) Barndorff-Nielsen, O., & Schou, G. (1973). On the parametrization of autoregressive models by partial autocorrelations. Journal of Multivariate Analysis, 3(4), 408–419. doi:10.1016/0047-259X(73)90030-4 Used by: C4, Context, C18, D7
  3. Svetunkov (2016) Svetunkov, I. (2016). smooth: Forecasting Using State Space Models. CRAN: Contributed Packages. doi:10.32614/CRAN.package.smooth Used by: Context, D8
  4. Svetunkov (2023) Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Chapman and Hall/CRC. doi:10.1201/9781003452652 Used by: Context, D16

Artefacts

Score

Reliability of the paper: 88, High

Scores are computed by rules from the claimset file (EntryLib rubric 0.2): they check the record, not the science, and may change as the rubric and reviews develop. The rubric. Every issue as text, for an agent preparing the next version.

The paper scores as its lowest principal claim, C4. Open problems in the principal claims and what they rest on, each counted once, with the most it costs a claim:

  1. −5 Plan The test deviated from its plan. In C4. To remove it: Each deviation is a limitation: say how it bears on the result.
  2. −5 Plan The lab record flags the test: code changed after plan. In C24, C25, C26. To remove it: Rerun the test as planned, or explain the flag in a limitation.
  3. −3 Plan The plan's time is anchored by a git push only. In C1, C3, C4, C16, C24, C25, C26. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  4. −3 Open problems Assumption C13 is not checked: The numpy function per_lag_max() returns the same largest eigenvalue modulus as smoothEigensCpp() of smooth 4.6.0 (replaced in commit 4a44c1c) for models with a constant measurement vector and without adaptive regressors. In C1. To remove it: Test the assumption, or analyse how sensitive the claim is to it.
  5. −2 Open problems Limitation L3 (reduces transferability, not mitigated): The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data. In C3, C4, C16. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  6. −1 Open problems Limitation L1 (reduces transferability, mitigation partial): The 3042 ETS(A,N,A) models of the planned test of the per-lag check form the same fixed grid as exploratory run RN3, whose result prompted the hypothesis; only the 200 GUM models of that test were new data. In C1. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  7. −2 Open problems Limitation L12 (reduces transferability, not mitigated): The PBH reference is not exact for a repeated unit root: the checker P4 found a model whose cancelled MA polynomial keeps a double root at -1, which the reference accepted and the cancellation and an exact gcd rejected. The random models of the planned tests have no such root. In C24, C25. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  8. −1 Open problems Limitation L5 (reduces transferability, not mitigated): The plans of the tests behind the step-down and bisection claims stated MA polynomial degrees up to 366; the generator code named in the plans, run unchanged, produced degrees up to 535 before cancellation. In C4. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  9. −1 Open problems Limitation L6 (reduces transferability, mitigation partial): The recursion of the counterexample to the monograph's condition was run for one parameter pair, with the initial states set to one and no data. In C22. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  10. −1 Open problems Limitation L8 (reduces transferability, not mitigated): For GUM models with structured parameters, such as a state with |F_ii| > 1 and zero persistence, theta and phi can share a factor with a root in |B| <= 1 that is not cyclotomic; the check keeps it and rejects the model although its observation weights decay, because the initial state of that mode has a growing effect. In C4, C16. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

Claims

C1: 93, High

Novelty: refutes earlier work, by the authors · no close match on EntryLib

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  2. −3 Open problems Assumption C13 is not checked: The numpy function per_lag_max() returns the same largest eigenvalue modulus as smoothEigensCpp() of smooth 4.6.0 (replaced in commit 4a44c1c) for models with a constant measurement vector and without adaptive regressors. To remove it: Test the assumption, or analyse how sensitive the claim is to it.
  3. −1 Open problems Limitation L1 (reduces transferability, mitigation partial): The 3042 ETS(A,N,A) models of the planned test of the per-lag check form the same fixed grid as exploratory run RN3, whose result prompted the hypothesis; only the 200 GUM models of that test were new data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C2: 92, High

Novelty: new, by the authors

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  2. −3 Open problems Assumption C13 is not checked: The numpy function per_lag_max() returns the same largest eigenvalue modulus as smoothEigensCpp() of smooth 4.6.0 (replaced in commit 4a44c1c) for models with a constant measurement vector and without adaptive regressors. To remove it: Test the assumption, or analyse how sensitive the claim is to it.
  3. −2 Open problems Limitation L3 (reduces transferability, not mitigated): The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C3: 95, High

Novelty: new, by the authors · no close match on EntryLib

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  2. −2 Open problems Limitation L3 (reduces transferability, not mitigated): The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C4: 88, High

Novelty: new, by the authors · no close match on EntryLib

  1. −5 Plan The test deviated from its plan. To remove it: Each deviation is a limitation: say how it bears on the result.
  2. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  3. −2 Open problems Limitation L3 (reduces transferability, not mitigated): The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  4. −1 Open problems Limitation L8 (reduces transferability, not mitigated): For GUM models with structured parameters, such as a state with |F_ii| > 1 and zero persistence, theta and phi can share a factor with a root in |B| <= 1 that is not cyclotomic; the check keeps it and rejects the model although its observation weights decay, because the initial state of that mode has a growing effect. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  5. −1 Open problems Limitation L5 (reduces transferability, not mitigated): The plans of the tests behind the step-down and bisection claims stated MA polynomial degrees up to 366; the generator code named in the plans, run unchanged, produced degrees up to 535 before cancellation. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C5: 89, High

Novelty: new, by the authors

  1. −5 Plan The test deviated from its plan. To remove it: Each deviation is a limitation: say how it bears on the result.
  2. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  3. −2 Open problems Limitation L3 (reduces transferability, not mitigated): The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  4. −1 Open problems Limitation L5 (reduces transferability, not mitigated): The plans of the tests behind the step-down and bisection claims stated MA polynomial degrees up to 366; the generator code named in the plans, run unchanged, produced degrees up to 535 before cancellation. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C16: 88, High

Novelty: new, by the authors · no close match on EntryLib

  1. −5 Plan The test deviated from its plan. To remove it: Each deviation is a limitation: say how it bears on the result.
  2. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  3. −2 Open problems Limitation L3 (reduces transferability, not mitigated): The random model sets (persistence ranges, the probabilities of zero persistence and of a constant, the standard deviations of the GUM matrices) were chosen by the agent and not drawn from models estimated on data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  4. −1 Open problems Limitation L8 (reduces transferability, not mitigated): For GUM models with structured parameters, such as a state with |F_ii| > 1 and zero persistence, theta and phi can share a factor with a root in |B| <= 1 that is not cyclotomic; the check keeps it and rejects the model although its observation weights decay, because the initial state of that mode has a growing effect. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.
  5. −1 Open problems Limitation L5 (reduces transferability, not mitigated): The plans of the tests behind the step-down and bisection claims stated MA polynomial degrees up to 366; the generator code named in the plans, run unchanged, produced degrees up to 535 before cancellation. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C6: 100, High

Novelty: extends earlier work, by the authors

Nothing lost.

C7: 100, High

Novelty: new, by the authors

Nothing lost.

C8: 100, High

Novelty: new, by the authors

Nothing lost.

C9: 100, High

Novelty: new, by the authors

Nothing lost.

C10: 100, High

Novelty: new, by the authors

Nothing lost.

C11: 100, High

Novelty: new, by the authors

Nothing lost.

C12: 100, High

Novelty: new, by the authors

Nothing lost.

C15: 100, High

Novelty: new, by the authors

Nothing lost.

C17: 100, High

Novelty: new, by the authors

Nothing lost.

C18: 100, High

Novelty: new, by the authors

Nothing lost.

C20: 100, High

Novelty: new, by the authors

Nothing lost.

C21: 100, High

Novelty: new, by the authors

Nothing lost.

C22: 99, High

Novelty: refutes earlier work, by the authors · no close match on EntryLib

  1. −1 Open problems Limitation L6 (reduces transferability, mitigation partial): The recursion of the counterexample to the monograph's condition was run for one parameter pair, with the initial states set to one and no data. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C23: 95, High

Novelty: new, by the authors

  1. −5 Open problems Limitation L7 (reduces precision, not mitigated): The fit timings come from one machine, seven repeats per fit, with a run-to-run variation of about 10% between benchmark runs of the same code. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C24: 90, High

Novelty: new, by the authors · no close match on EntryLib

  1. −5 Plan The lab record flags the test: code changed after plan. To remove it: Rerun the test as planned, or explain the flag in a limitation.
  2. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  3. −2 Open problems Limitation L12 (reduces transferability, not mitigated): The PBH reference is not exact for a repeated unit root: the checker P4 found a model whose cancelled MA polynomial keeps a double root at -1, which the reference accepted and the cancellation and an exact gcd rejected. The random models of the planned tests have no such root. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C25: 90, High

Novelty: new, by the authors · no close match on EntryLib

  1. −5 Plan The lab record flags the test: code changed after plan. To remove it: Rerun the test as planned, or explain the flag in a limitation.
  2. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.
  3. −2 Open problems Limitation L12 (reduces transferability, not mitigated): The PBH reference is not exact for a repeated unit root: the checker P4 found a model whose cancelled MA polynomial keeps a double root at -1, which the reference accepted and the cancellation and an exact gcd rejected. The random models of the planned tests have no such root. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C26: 92, High

Novelty: new, by the authors · no close match on EntryLib

  1. −5 Plan The lab record flags the test: code changed after plan. To remove it: Rerun the test as planned, or explain the flag in a limitation.
  2. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.

C27: 95, High

Novelty: new, by the authors

  1. −5 Open problems Limitation L9 (reduces precision, not mitigated): Estimates with bounds="admissible" change for ETS+ARIMA models, whose admissible region changes, and the likelihood of such models can have several local optima: on ETS(A,N,A)+ARIMA(1,0,1) on AirPassengers the fit with the check of the whole model reached a lower log-likelihood than the fit with the check of the parts apart. To remove it: Mitigate it with evidence, or narrow the claim's scope so that it no longer applies.

C29: 97, High

Novelty: new, by the authors

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.

C30: 97, High

Novelty: new, by the authors

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.

C31: 97, High

Novelty: new, by the authors

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.

C32: 97, High

Novelty: new, by the authors

  1. −3 Plan The plan's time is anchored by a git push only. To remove it: Anchor plans with the platform, a timestamp authority (RFC 3161) or a registry.

Versions

  • Version 3 (this page) · 10 November 2026 at 22:09 UTC · corrected
  • Version 2 · 10 November 2026 at 18:08 UTC · corrected
  • Version 1 · 10 November 2026 at 16:27 UTC · active

Every version is kept in the public registry (github.com/entrylib/registry).