pysib: An Open-Source Python Toolbox for Linear System Identification
Abstract
Discrete-time polynomial input--output models (ARX, ARMAX, OE, and Box--Jenkins) are usually estimated by prediction-error methods, but for OE, ARMAX, and BJ the finite-sample criterion is nonconvex: the estimate a user actually obtains is set by the initialization and the optimization procedure, not only by the asymptotic theory. This article documents the dedicated optimization strategy behind pysib, an open-source Python toolbox for SISO polynomial system identification. The strategy consists of an ARX-based initialization, a smoothed-gradient phase, an incremental Gauss--Newton refinement, and filtered continuation interpreted as cost-function shaping. This strategy produced the filtered-continuation results reported by the author in earlier work but had not previously been described or released; it is given here in full and as open Python software, with a common five-polynomial representation, shared prediction and simulation routines, and the scripts and archived release needed to reproduce the experiments. On a moderate-noise OE benchmark the strategy returns estimates far more concentrated around the true parameters than a general-purpose nonlinear-programming solver, and on a harder nonconvex benchmark filtered continuation raises the success rate from 60% to 100%.
Turn this paper into a full lesson
ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.