Main Content

Validate Nonlinear ARX Models

After estimating a nonlinear ARX model for your system, you can validate whether it reproduces the system behavior within acceptable bounds. You can validate your model in different ways. It is recommended that you use separate data sets for estimating and validating your model. If the validation indicates low confidence in the estimation, then see Troubleshooting Model Estimation for next steps. For general information about validating models, see Model Validation.

Compare Model Output to Measured Output

Plot simulated or predicted model output and measured output data for comparison, and compute best fit values. At the command line, use compare command. You can also use sim and predict to simulate and predict model response. For information about plotting simulated and predicted output in the app, see Simulation and Prediction in the App.

Check Iterative Search Termination Conditions

The estimation report that is generated after model estimation lists the reason the software terminated the estimation. For example, suppose that the report indicates that the estimation reached the maximum number of iterations. You can try repeating the estimation by specifying a larger value for the maximum number of iterations. For information about how to configure the maximum number of iterations and other estimation options, see Specify Estimation Options for Nonlinear ARX Models.

To view the estimation report in the app, after model estimation is complete, view the Estimation Report area of the Estimate tab. At the command line, use M.Report.Termination to display the estimation termination conditions, where M is the estimated Nonlinear ARX model. For example, check the M.Report.Termination.WhyStop field that describes why the estimation was stopped.

For more information about the estimation report, see Estimation Report.

Check the Final Prediction Error and Loss Function Values

You can compare the performance of several estimated models by comparing the final prediction error and loss function values that are shown in the estimation report.

To view these values for an estimated model M at the command line, use the M.Report.Fit.FPE (final prediction error) and M.Report.Fit.LossFcn (value of loss function at estimation termination) properties. Smaller values typically indicate better performance. However, M.Report.Fit.FPE values can be unreliable when the model contains many parameters relative to the estimation data size. Use these indicators with other validation techniques to draw reliable conclusions.

Perform Residual Analysis

Residuals are differences between the model output and the measured output. Thus, residuals represent the portion of the output not explained by the model. You can analyze the residuals using techniques such as the whiteness test and the independence test. For more information about these tests, see What Is Residual Analysis?.

At the command line, use resid to compute, plot, and analyze the residuals. To plot residuals in the app, see How to Plot Residuals in the App.

Examine Nonlinear ARX Plots

A nonlinear ARX plot displays the evaluated model nonlinearity for a chosen model output as a function of one or two model regressors. For a model M, the model nonlinearity (M.Nonlinearity) is a nonlinearity estimator function, such as idWaveletNetwork, idSigmoidNetwork, or idTreePartition, that uses model regressors as its inputs.

To understand what is plotted, suppose that {r1,r2,…,rN} are the N regressors used by a nonlinear ARX model M with nonlinearity nl corresponding to a model output. You can use getreg(M) to view these regressors. The expression Nonlin = evaluate(nl,[v1,v2,...,vN]) returns the model output for given values of these regressors, that is, r1 = v1, r2 = v2, ..., rN = vN. For plotting the nonlinearities, you select one or two of the N regressors, for example, rsub = {r1,r4}. The software varies the values of these regressors in a specified range, while fixing the value of the remaining regressors, and generates the plot of Nonlin vs. rsub. By default, the software sets the values of the remaining fixed regressors to their estimated means, but you can change these values. The regressor means are stored in the Nonlinearity.Parameters.RegressorMean property of the model.

Examining a nonlinear ARX plot can help you gain insight into which regressors have the strongest effect on the model output. Understanding the relative importance of the regressors on the output can help you decide which regressors to include in the nonlinear function for that output. If the shape of the plot looks like a plane for all the chosen regressor values, then the model is probably linear in those regressors. In this case, you can remove the corresponding regressors from nonlinear block, and repeat the estimation.

Furthermore, you can create several nonlinear models for the same data using different nonlinearity estimators, such a idWaveletNetwork network and idTreePartition, and then compare the nonlinear surfaces of these models. Agreement between plots for various models increases the confidence that these nonlinear models capture the true dynamics of the system.

Creating a Nonlinear ARX Plot

To create a nonlinear ARX plot in the System Identification app, select the Nonlinear ARX check box in the Model Views area. To include or exclude a model on the plot, click the corresponding model icon in the app. For general information about creating and working with plots in the app, see Working with Plots.

At the command line, after you have estimated a nonlinear ARX model M, use nlarxPlot to view the shape of the nonlinearity.


You can use additional plot arguments to specify the following information:

  • Include multiple nonlinear ARX models on the plot.

  • Configure the regressor values for computing the nonlinearity values.

Configuring a Nonlinear ARX Plot

To configure the nonlinear ARX plot:

  1. Select the output channel in the Select nonlinearity at output drop-down list. The nonlinearity values that correspond to the selected output channel are displayed.

  2. Select Regressor 1 from the list of available regressors. In the Range field, enter the range of values to include on the plot for this regressor. The regressor values are plotted on the Reg1 axis of the plot.

    If the regressor selection options are not visible, click to expand the Nonlinear ARX Model Plot window.

  3. Specify Regressor 2 as one of the following options:

    • To display three axes on the plot, select Regressor 2. In the Range field, enter the range of values to include on the plot for this regressor. The regressor values are plotted on the Reg2 axis of the plot.

    • To display only two axes, select <none> in the Regressor 2 list.

  4. Fix the values of the regressors that are not displayed by clicking Fix Values. In the Fix Regressor Values dialog box, double-click the Value cell to edit the constant value of the corresponding regressor. The default values are determined during model estimation. Click OK.

If you generate the nonlinear ARX plot in the app, you can perform the following additional tasks:

Change the grid spacing of the regressors along each axis.

In the plot window, select Options > Set number of samples, and enter the number of samples to use for each regressor. Click Apply and then Close.

For example, if the number of samples is 20, each regressor variable contains 20 points in its specified range. For a 3-D plots, this results in evaluating the nonlinearity at 20 x 20 = 400 points.

Change axis limits.

Select Options > Set axis limits to open the Axis Limits dialog box, and edit the limits. Click Apply.

Hide or show the plot legend.Select Style > Legend. Select this option again to show the legend.

Rotate in three dimensions.


Available only when you have selected two regressors as independent variables.

Select Style > Rotate 3D and drag the axes on the plot to a new orientation. To disable three-dimensional rotation, select Style > Rotate 3D again.

See Also

| | |

Related Topics