Thread Subject:
ARMAX - Simulation vs Prediction

Subject: ARMAX - Simulation vs Prediction

From: Enrique Gil

Date: 27 Jun, 2011 15:32:02

Message: 1 of 5

Hello!

I am working on an estimation model using ARMAX. I have multiple inputs to predict one output. When specifying the parameters for the ARMAX model using armax(), one of the things to specify is to use either 'prediction' or 'simulation' as the intended use of the model.

My question is: what does Matlab do differently in these two settings?

Thank you very much for your help!

Regards,
Enrique

Subject: ARMAX - Simulation vs Prediction

From: Rajiv Singh

Date: 27 Jun, 2011 19:19:34

Message: 2 of 5

An estimation is about comparing the measured output to "model's response"
and adjusting the parameters of the model such that some norm of the
difference between the two is minimized.

However, a model's response can mean several different things. The most
common situations are one of 1-step ahead prediction and simulation. In case
of prediction, the past measurements of both input and output signals are
used to compute the model's response over a time span. Thus
y_model_prediction(t) = f(y_measured(t-1, t-2, ...), u_measured(t, t-1, t-2,
...)). In case of simulation, the model's response is completely a function
of its current and past inputs; the measured values of outputs are not used.
Thus y_model_sim = g (u_measured(t, t-1, ..). I am speaking roughly here, of
course, since there are other factors that influence both prediction and
simulation responses (such as initial conditions). More information is
available in product doc:

http://www.mathworks.com/help/toolbox/ident/ug/bq1sjmd.html

When you choose focus = 'prediction', the difference between the measured
output and 1-step prediction response of the model is minimized. When foc =
'simulation', the difference between the measured output and simulated
response of the model is minimized. Since you minimize different types of
errors, you get different results.

Some notes:
(1) Typically, simulation error minimization is a more stringent test of
model quality, but in general, minimizing for one does not guarantee the
other.
(2) The difference between prediction and simulation arises because of the
typically colored Gaussian noise affecting the response. In case of an ARMAX
model, the noise is described by the filter C/A while the input/output
relationship is described by the filter B/A. In case of pure simulation, the
noise component C/A would be ignored (assumed to be 1), while it is honored
in case of prediction. For an output error model, there is no difference
between simulation and prediction (and hence estimates obtained using focus
equal to 'prediction' or 'simulation') because the model has a trivial noise
element ( = 1).

Rajiv


"Enrique Gil" <gile@msoe.edu> wrote in message
news:iua7pi$d8q$1@newscl01ah.mathworks.com...
> Hello!
>
> I am working on an estimation model using ARMAX. I have multiple inputs
> to predict one output. When specifying the parameters for the ARMAX model
> using armax(), one of the things to specify is to use either 'prediction'
> or 'simulation' as the intended use of the model.
> My question is: what does Matlab do differently in these two settings?
> Thank you very much for your help!
>
> Regards,
> Enrique

Subject: ARMAX - Simulation vs Prediction

From: Enrique Gil

Date: 29 Jun, 2011 09:26:07

Message: 3 of 5

Thank you Rajiv! Always very thorough and helpful!

Subject: ARMAX - Simulation vs Prediction

From: Lukas Zimmer

Date: 8 May, 2012 08:03:12

Message: 4 of 5

Hi!

"Rajiv Singh" <rsingh@mathworks.com> wrote in message <iual48$oom$1@newscl01ah.mathworks.com>...
>
> [...]
>
> When you choose focus = 'prediction', the difference between the measured
> output and 1-step prediction response of the model is minimized. When foc =
> 'simulation', the difference between the measured output and simulated
> response of the model is minimized. Since you minimize different types of
> errors, you get different results.
>
> Some notes:
> (1) Typically, simulation error minimization is a more stringent test of
> model quality, but in general, minimizing for one does not guarantee the
> other.
> (2) The difference between prediction and simulation arises because of the
> typically colored Gaussian noise affecting the response. In case of an ARMAX
> model, the noise is described by the filter C/A while the input/output
> relationship is described by the filter B/A. In case of pure simulation, the
> noise component C/A would be ignored (assumed to be 1), while it is honored
> in case of prediction. For an output error model, there is no difference
> between simulation and prediction (and hence estimates obtained using focus
> equal to 'prediction' or 'simulation') because the model has a trivial noise
> element ( = 1).
>

Sorry to open this thread again but I still don't understand what the setting Focus=Simulation means.

You wrote that when using ARMAX with the simulation-setting the noise transfer function is assumed to be 1. According to the documentation, a prefilter (corresponds to the input-spectrum) is applied additionally.

Does this mean, that the noise-transfer function C/A is calculated in a second step?

I tried to identify ARX, ARMAX, BJ and OE models with the Focus=Simulation setting and they all return different results. Why? If the simulation setting is only about ignoring the noise-model there shouldn't be a difference because you always identify an OE-type model.

Thank you for your help!
Kind regards,
Lukas

Subject: ARMAX - Simulation vs Prediction

From: Lukas Zimmer

Date: 8 May, 2012 17:14:07

Message: 5 of 5

"Lukas Zimmer" wrote in message <joak00$cl5$1@newscl01ah.mathworks.com>...
> Hi!
>
> "Rajiv Singh" <rsingh@mathworks.com> wrote in message <iual48$oom$1@newscl01ah.mathworks.com>...
> >
> > [...]
> >
> > When you choose focus = 'prediction', the difference between the measured
> > output and 1-step prediction response of the model is minimized. When foc =
> > 'simulation', the difference between the measured output and simulated
> > response of the model is minimized. Since you minimize different types of
> > errors, you get different results.
> >
> > Some notes:
> > (1) Typically, simulation error minimization is a more stringent test of
> > model quality, but in general, minimizing for one does not guarantee the
> > other.
> > (2) The difference between prediction and simulation arises because of the
> > typically colored Gaussian noise affecting the response. In case of an ARMAX
> > model, the noise is described by the filter C/A while the input/output
> > relationship is described by the filter B/A. In case of pure simulation, the
> > noise component C/A would be ignored (assumed to be 1), while it is honored
> > in case of prediction. For an output error model, there is no difference
> > between simulation and prediction (and hence estimates obtained using focus
> > equal to 'prediction' or 'simulation') because the model has a trivial noise
> > element ( = 1).
> >
>
> Sorry to open this thread again but I still don't understand what the setting Focus=Simulation means.
>
> You wrote that when using ARMAX with the simulation-setting the noise transfer function is assumed to be 1. According to the documentation, a prefilter (corresponds to the input-spectrum) is applied additionally.
>
> Does this mean, that the noise-transfer function C/A is calculated in a second step?
>
> I tried to identify ARX, ARMAX, BJ and OE models with the Focus=Simulation setting and they all return different results. Why? If the simulation setting is only about ignoring the noise-model there shouldn't be a difference because you always identify an OE-type model.

Sorry, ARMAX, BJ and OE models return the same results, only ARX models are different. But I have no idea why. Does anyone knows, how ARX models are estimated for Focus=Simulation?

Tags for this Thread

Everyone's Tags:

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Tag Activity for This Thread
Tag Applied By Date/Time
armax Simon Desue 27 Jun, 2011 11:34:07
rssFeed for this Thread

Contact us