In regular expressions, the end-of-word operator (\>) does not behave the same
under Octave and under MATLAB. See:
https://savannah.gnu.org/bugs/index.php?59992
In this case, we can simply drop the \> operator, since there is no risk of
matching a partial variable name (since there is already “(-1)” at the end of
the pattern).
By the way, remove a useless parenthesis grouping in the regexp.
The parameter is constrained to be in (0,1) for the following algorithms
- lsqnonlin (without Levenberg-Marquardt)
- fmincon
- annealing
- particleswarm
Other algorithms do not allow the definition of boundaries... We should add a
penality function to the objective for these algorithms.
PAC equation has to be written as
diff(x) = a0*(xstar(-1)-x(-1)) + a1*diff(x(-1)) + ... + ap*diff(x(-p)) + PAC_EXPECTATION(pacmodelname) + ...;
In the error correction term, a0*(xstar(-1)-x(-1)), we must have the difference
between the target (the trend xstar(-1)) and the level of the endogenous
variable (x(-1)). To ensure stability around the trend, the parameter a0 needs
to be positive.
REMARKS
[1] In the TREND_COMPONENT_MODEL the error correction terms are written in
reverse order, ie as the difference betwwen the level of the endogenous
variable and the trend variable.
[2] In the estimation routine we do not constrain a0 to be positive, but is
would surely help to satisfy this condition in the initial condition.