Working of the model.control function

For technical support, tips and tricks, suggestions, or any other information regarding the EViews model object.

Moderators: EViews Gareth, EViews Moderator

ferdy.adam
Posts: 1
Joined: Thu Aug 19, 2021 2:31 am

Working of the model.control function

Postby ferdy.adam » Fri Aug 20, 2021 12:57 am

Hello to everybody
We started to experiment with the new "model.control" function in the process of using a large macro model for forecasting.
It seems indeed very powerful, but we need to understand how it precisely works, and why it is not working as desired in some cases.
1. It seems to work nicely in a block of non recursive equations (endogenous variables thereof are not influenced by the model solution. i.e. one-way causalities). But as soon as there is some recursiveness, the power of the "control" statement seems to decrease, the more so there is recursiveness, is that correct?
2. Hence a first question: when the control statement is executed, in a program, Eviews immediately calculates a value for the control variable (we use residuals of endogenous variables), right? Or are the values consectutive to the control statement influenced in the later course of the execution of the program by the "solve" command? Our observation is, that the residuals (controls) are set to match the trajectories during the execution of the "control" statement, and not altered in the course of the "solve" of the model EXCEPT if the "actexist=t(rue)" statement is used. In the latter case, the "control" function loses its power: there still seems to be a certain convergence in the sense that the target series come closer to the desired trajectories, but not perfectly; if the actexist=f(alse) statement is used, the match is perfect, even for series like GDP (an identity in our model that we target through the residuals of an endogenous series) that are by nature highly recursive.
3. Another observation is, that it makes a difference whether the respective targeted series are put in one control statement, or in several independent statements. The match is perfect if all the targets are put in one control statement (and actexist=f), correct? If several statements are used, the power of the "control" function decreases, correct?
Did anybody experience similar results? What do the developers of Eviews say?
Many thanks, kind regards
FA

EViews Matt
EViews Developer
Posts: 560
Joined: Thu Apr 25, 2013 7:48 pm

Re: Working of the model.control function

Postby EViews Matt » Thu Aug 26, 2021 2:46 pm

Hello,

Just to clarify, in EViews' terminology recursive blocks are those in which the endogenous variables are related only via unidirectional dependencies, e.g. X = f(Y) and Y = f(Z). In contrast, simultaneous blocks include bidirectional dependencies (direct or indirect), e.g., X = f(Y) and Y = f(X). In general, recursive blocks are "easier" to solve (or control) than simultaneous blocks just as a matter of numerical complexity. Each equation in a recursive block can be solved independently, where as the equations in a simultaneous block must be solved simultaneously. Consequently, a model with simultaneous blocks may be more prone to solve (or control) failures, but the actual difficulty really depends on the specification of each equation.

The control procedure is a calculation procedure, just like the solve procedure. It immediately calculates values. It's not a setting that only takes effect during future solve operations. More specifically, the results of a control operation are designed to induce a specific outcome during a future hypothetical solve operation. The control procedure therefore assumes that the current solve options and scenario settings will continue to be used in future and adjusts its calculations accordingly. If the active scenario has excluded observations or overridden variables, those will effect control's results. Similarly, if the solve options or scenario settings are changed after the control operation, a subsequent solve operation may not produce target values that match the trajectory series because the context has changed. Basically, a control operation and subsequent solve operation are only guaranteed to produce the expected targets if both operations have the same contextual parameters (and neither operation fails, of course).

That the control procedure is a calculation procedure hopefully helps illuminate why multiple control operations each over a single variable may behave differently than a single control operation over multiple variables. For example, given a simple model with X = f(A, B) and Y = f(A, B), if we first use A as a control for target X and then use B as a control for target Y, the first control operation will adjust series A and the second will adjust series B. However, during that first operation there are no constraints on how adjusting A may affect Y, and similarly during the second operation there are no constraints on how adjusting B may affect X. If we then performed a solve operation I'd expect Y to match its trajectory but X to not match its own. Instead, the adjustments to A and B should have been made together so that their simultaneous effects on X and Y could be accounted for and both trajectories matched. Therefore, it's necessary to use a single control operation to simultaneously adjust both controls.

jlbrillet
Posts: 49
Joined: Mon Feb 16, 2009 6:03 am

Re: Working of the model.control function

Postby jlbrillet » Thu Nov 11, 2021 10:37 am

Hello all (and Ferdy in particular, long time no see).

I would be interested in some evaluation of the EViews control function.

I myself have devised method, described in my book.

Did you try it and which one works the best?

I am available for any discussion on the subject.

Jean Louis (Brillet).


Return to “Models”

Who is online

Users browsing this forum: No registered users and 14 guests