Overview
This article introduces and documents pysib, an open-source Python toolbox designed for single-input, single-output (SISO) polynomial system identification. The focus of pysib is on discrete-time polynomial input-output models, encompassing types such as AutoRegressive eXogenous (ARX), AutoRegressive Moving Average eXogenous (ARMAX), Output-Error (OE), and Box-Jenkins (BJ).
Research Context
Estimates for OE, ARMAX, and BJ models, when derived using prediction-error methods, typically face a non-convex finite-sample criterion. This non-convexity implies that the obtained estimate is influenced by the initialization process and the specific optimization procedure utilized, rather than being solely determined by asymptotic theory. The optimization strategy employed in pysib, enabling the filtered-continuation results previously reported by the author, includes specific elements, but had not been previously described or publicly released.
Approach
The pysib toolbox implements a specific dedicated optimization strategy for polynomial system identification. This strategy consists of several sequential phases:
- ARX-based initialization: The process begins with an initialization step derived from an ARX model.
- Smoothed-gradient phase: Following initialization, a smoothed-gradient phase is applied.
- Incremental Gauss–Newton refinement: This phase provides further refinement to the estimates.
- Filtered continuation: Interpreted as a cost-function shaping technique, this step is integrated into the strategy.
The toolbox provides a common five-polynomial representation for the models. It also includes shared prediction and simulation routines. For reproducibility, the accompanying scripts and archived release necessary to replicate the experiments discussed are provided.
Findings
The implemented optimization strategy within pysib yielded specific results on identified benchmarks:
- On a moderate-noise OE benchmark, the strategy produced estimates that were observed to be more concentrated around the true parameters. This outcome was in comparison to results obtained from using a general-purpose nonlinear programming solver.
- For a harder, non-convex benchmark, the application of filtered continuation resulted in an increase in the success rate. The success rate rose from 60% to 100% in this specific scenario.
Potential Applications
The release of pysib as open-source Python software aims to provide researchers and practitioners with a dedicated tool for linear system identification problems, particularly those involving discrete-time polynomial input-output models where non-convex optimization is a factor.