NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models

NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models - Published in JOSS (2025)

https://github.com/raj-gun/nonsysid

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

autoregressive-models dynamical-modeling dynamical-systems forward-selection machine-learning narmax narx nonlinear-dynamics orthogonal-forward-regression system-identification time-series time-series-forecasting
Last synced: 4 months ago · JSON representation

Repository

A MatLab package for System Identification using linear and nonlinear auto-regresive models (N)AR, (N)ARX and (N)ARMAX models

Basic Info
  • Host: GitHub
  • Owner: raj-gun
  • License: bsd-3-clause
  • Language: MATLAB
  • Default Branch: main
  • Homepage:
  • Size: 18.4 MB
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
autoregressive-models dynamical-modeling dynamical-systems forward-selection machine-learning narmax narx nonlinear-dynamics orthogonal-forward-regression system-identification time-series time-series-forecasting
Created over 1 year ago · Last pushed 5 months ago
Metadata Files
Readme License

README.md

NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models

An open-source MATLAB package for system identification of ARX, NARX and (N)ARMAX models, featuring improved term selection and robust long-term simulation capabilities.

Authors: Rajintha Gunawardena1, Zi-Qiang Lang2, Fei He1 1. Centre for Computational Science and Mathematical Modelling, Coventry University, Coventry CV15FB, UK. 2. School of Electrical and Electronic Engineering, The University of Sheffield, Western Bank, Sheffield S10 2TN, UK.

MATLAB MATLAB License arXiv


Overview 📖

NonSysId is a MATLAB package designed for the identification of nonlinear dynamic systems using (N)AR(MA)X models. It incorporates an enhanced Orthogonal Forward Regression (OFR) algorithm, iterative-OFR (iOFR), and PRESS-statistic based criterion to improve model term selection and ensure robust long-term predictions. The package is particularly suited for applications where separate validation datasets are difficult to obtain, such as real-time fault diagnosis and electrophysiological studies.

Features

  • Iterative OFR (iOFR): Improves term selection by iterating through multiple orthogonalisation paths to produce parsimonious models.
  • Simulation-based Model Selection: Ensures simulation stability and enhances long-term prediction accuracy.
  • PRESS-statistic Integration: Includes a PRESS-statistic based term selection criterion that aims to minimise the leave-one-out cross-validation error. Therefore, the model can be validated without requiring separate validation datasets.
  • Reduced Computational Time (RCT): Optimized procedures to accelerate model term selection for complex NARX models.

Getting Started 🚀

Prerequisites

  • MATLAB R2017a or later.
  • Required MATLAB Toolboxes:
    • Signal Processing Toolbox (required if using earlier than Matlab 2019a, for correlation analysis).
    • Parallel Computing Toolbox (required for accelerating system identification procedures).

Installation

  1. Clone the repository:
    bash git clone https://github.com/raj-gun/NonSysId.git or manually download the folder 'NonSysId'.

  2. In Matlab, either;

    • add the folder 'NonSysId' to the Matlab path permanently using the 'pathtool' (https://uk.mathworks.com/help/matlab/ref/pathtool.html).
    • or use the 'addpath' command in the Matlab script to add the folder 'NonSysId' and use the functions within (https://uk.mathworks.com/help/matlab/ref/addpath.html).

Documentation

Brief documentation explaining the main functions and a code structure for identifying a model, simulating and validating an identified model is given in the doc folder.

Examples

Paper

If you are using the NonSysId package for academic purposes, kindly reference our pre-print paper as follows:

NonSysId: A nonlinear system identification package with improved model term selection for NARMAX models

Rajintha Gunawardena, Zi-Qiang Lang, Fei He

DOI: 10.48550/arXiv.2411.16475

@misc{10.48550/arXiv.2411.16475, title={NonSysId: A nonlinear system identification package with improved model term selection for NARMAX models}, author={Rajintha Gunawardena and Zi-Qiang Lang and Fei He}, year={2024}, eprint={2411.16475}, archivePrefix={arXiv}, primaryClass={eess.SY}, url={https://arxiv.org/abs/2411.16475}, }

References

[1] M. Korenberg, S. Billings, Y. Liu, and P. McIlroy, “Orthogonal parameter estimation algorithm for non-linear stochastic systems,” Int. J. Control, vol. 48, no. 1, pp. 193–210„ 1988.

[2] S. Chen, S. Billings, and W. Luo, “Orthogonal least squares methods and their application to non-linear system identification,” Int. J. Control, vol. 50, no. 5, pp. 1873–1896„ 1989.

[3] S. Billings, Nonlinear System Identification: NARMAX Methods In The Time, Frequency, And Spatio-Temporal Domains, vol. 13. Chichester, UK: John Wiley & Sons, Ltd, 2013.

[4] S. B. Yuzhu Guo, L.Z. Guo and H.-L. Wei, “An iterative orthogonal forward regression algorithm,” International Journal of Systems Science, vol. 46, no. 5, pp. 776–789, 2015.

[5] X. Hong, P. Sharkey, and K. Warwick, “Automatic nonlinear predictive model-construction algorithm using forward regression and the press statistic,” IEE Proceedings-Control Theory and Applications, vol. 150, no. 3, pp. 245–254, 2003.

[6] L. Ljung, System identification. Springer, 1998.

Owner

  • Login: raj-gun
  • Kind: user

JOSS Publication

NonSysId: Nonlinear System Identification with Improved Model Term Selection for NARMAX Models
Published
October 21, 2025
Volume 10, Issue 114, Page 8028
Authors
Rajintha Gunawardena ORCID
Centre for Computational Science and Mathematical Modelling, Coventry University, Coventry CV1 5FB, UK
Zi-Qiang Lang ORCID
School of Electrical and Electronic Engineering, The University of Sheffield, Western Bank, Sheffield S10 2TN, UK
Fei He ORCID
Centre for Computational Science and Mathematical Modelling, Coventry University, Coventry CV1 5FB, UK
Editor
Sébastien Boisgérault ORCID
Tags
System Identification NARX NARMAX Orthogonal Least Squares Time-series Nonlinear dynamics

GitHub Events

Total
  • Issues event: 11
  • Watch event: 4
  • Issue comment event: 2
  • Public event: 1
  • Push event: 257
  • Fork event: 1
Last Year
  • Issues event: 11
  • Watch event: 4
  • Issue comment event: 2
  • Public event: 1
  • Push event: 257
  • Fork event: 1

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 8
  • Total pull requests: 0
  • Average time to close issues: 5 months
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 0
  • Average comments per issue: 0.25
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 8
  • Pull requests: 0
  • Average time to close issues: 5 months
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 0.25
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JAuriol81 (7)
  • brivadis (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels