Main Content


Prediction error for identified model


Return Results


err = pe(sys,data,K) returns the K-step prediction error for the output of the identified model sys. The function determines the prediction error by subtracting the K-step ahead predicted response from the measured output. The prediction error is calculated for the time span covered by data. For more information on the computation of predicted response, see predict.

err = pe(sys,data,K,opt) returns the prediction error using the option set opt to specify prediction error calculation behavior.

[err,ice,sys_pred] = pe(___) also returns the estimated initial conditions ice and a predictor system sys_pred. You can use this syntax with either of the previous input-argument combinations.

Plot Results

pe(sys,___) plots the prediction error. To change display options in the plot, right-click the plot to access the context menu. For more details about this menu, see Tips.

pe(sys,Linespec,data,___) uses Linespec to specify the line type, marker symbol, and color.


pe(sys1,...,sysN,data,___) plots the prediction errors for multiple identified models. pe automatically chooses colors and line styles.

pe(sys1,Linespec1,...,sysN,LinespecN,data,___) uses the line type, marker symbol, and color specified for each model.


collapse all

Compute the prediction error for an ARIX model.

Use the error data to compute the variance of the noise source e(t).

Obtain noisy data.

noise = [(1:150)';(151:-1:2)'];  

load iddata1 z1;
z1.y = z1.y+noise;

noise is a triangular wave that is added to the output signal of z1, an iddata object.

Estimate an ARIX model for the noisy data.

sys = arx(z1,[2 2 1],'IntegrateNoise',true);

Compute the prediction error of the estimated model.

K = 1;
err = pe(z1,sys,K);

pe computes the one-step prediction error for the output of the identified model, sys.

Compute the variance of the noise source, e(t).

noise_var = err.y'*err.y/(299-nparams(sys)-order(sys));

Compare the computed value with model's noise variance.


The output of sys.NoiseVariance matches the computed variance.

Load the estimation data.

load iddata1;
data = z1;

Estimate an ARX model of order [2 2 1].

sys1 = arx(data,[2 2 1]);

Estimate a transfer function with 2 poles.

 sys2 = tfest(data,2);

Plot the prediction error for the estimated models. Specify prediction horizon as 10, and specify the line styles for plotting the prediction error of each system.


To change the display options, right-click the plot to access the context menu. For example, to view the estimation data, select Show Validation Data from the context menu. To view the predicted outputs, select Predicted Response Plot.

Input Arguments

collapse all

Identified model, specified as a model object.

Measured input/output history, specified as an iddata object. This object can contain data from multiple experiments.

If sys is a time series model, then specify data as an iddata object with no inputs or as matrix of past time series values.

Prediction horizon, specified as a positive integer that is a multiple of the data sample time. To compute the pure simulation error, set K to inf.

Prediction options, specified as a peOptions option set.

Options specified by opt include:

  • Handling of initial conditions

  • Data offsets

Line style, marker, and color of both the line and marker, specified as a character vector, such as 'b' or 'b+:'.

For more information about configuring LineSpec, see the Linespec input argument of plot.

Output Arguments

collapse all

Prediction error, returned in the same form as dataiddata object or numeric matrix.

The function uses outputs up to the time t-K and inputs up to the time instant t to calculate the prediction error at the time instant t.

When K = Inf, the predicted output is a pure simulation of the system.

For multi-experiment data, err contains the prediction error data for each experiment. The time span of the prediction error matches that of the observed data.

Estimated initial conditions, returned as a column vector of initial states for state-space systems and as an initialCondition object for transfer function and polynomial systems.

Predictor system, specified as a dynamic system model.

When you simulate sys_pred, using [data.OutputData data.InputData] as the input, the output yp is such that err.OutputData = data.OutputData - yp. For state-space models, the software uses ice as the initial condition when simulating sys_pred.

For discrete-time data, sys_pred is always a discrete-time model.

For multi-experiment data, sys_pred is an array of models, with one entry for each experiment.


  • Right-clicking the plot of the prediction error opens the context menu, where you can access the following options:

    • Systems — Select systems to view prediction error. By default, the prediction error of all systems is plotted.

    • Data Experiment — For multi-experiment data only. Toggle between data from different experiments.

    • Characteristics — View the following data characteristics:

      • Peak Value — View the absolute peak value of the data. Applicable for time–domain data only.

      • Peak Response — View peak response of the data. Applicable for frequency–response data only.

      • Mean Value — View mean value of the data. Applicable for time–domain data only.

    • Show — For frequency–domain and frequency–response data only.

      • Magnitude — View magnitude of frequency response of the system.

      • Phase — View phase of frequency response of the system.

    • Show Validation Data — Plot data used to compute the prediction error.

    • I/O Grouping — For datasets containing more than one input or output channel. Select grouping of input and output channels on the plot.

      • None — Plot input-output channels in their own separate axes.

      • All — Group all input channels together and all output channels together.

    • I/O Selector — For datasets containing more than one input or output channel. Select a subset of the input and output channels to plot. By default, all output channels are plotted.

    • Grid — Add grids to the plot.

    • Normalize — Normalize the y-scale of all data in the plot.

    • Full View — Return to full view. By default, the plot is scaled to full view.

    • Prediction Horizon — Set the prediction horizon, or choose simulation.

    • Initial Condition — Specify handling of initial conditions. Not applicable for frequency-response data.

      Specify as one of the following:

      • Estimate — Treat the initial conditions as estimation parameters.

      • Zero — Set all initial conditions to zero.

      • Absorb delays and estimate — Absorb nonzero delays into the model coefficients and treat the initial conditions as estimation parameters. Use this option for discrete-time models only.

    • Predicted Response Plot — Plot the predicted model response.

    • Prediction Error Plot — Plot the error between the model response and prediction data. By default, the error plot is shown.

    • Properties — Open the Property Editor dialog box to customize plot attributes.

Version History

Introduced before R2006a

See Also

| | | | | | | |