Commit Graph

118 Commits (7dd2dd5e24a343fbeaf3522ea5e535c27d8b9f95)

Author SHA1 Message Date
Houtan Bastani b844bc53a0
pac: fix bugs in output of ec component 2019-03-07 11:44:40 +01:00
Stéphane Adjemian (Charybdis) 9eb64a0b64
Updated preprocessor submodule.
Fixes exogenous variables in PAC equation without non optimizing behaviour.
2019-03-06 15:39:00 +01:00
Stéphane Adjemian (Charybdis) 4798c07ced
Avoid infinite loop in pac.estimation.iterative_ols(). 2019-03-05 07:21:08 +01:00
Stéphane Adjemian (Charybdis) d00b57541e
Allow exogenous variables in pac.estimation.iterative_ols routine.
The parameters associated to these additional variables can be estimated or calibrated.
2019-03-01 23:32:47 +01:00
Stéphane Adjemian (Charybdis) f07b1e8028
Account for exogenous variables in PAC's RoT part.
Fixes the iterative_ols estimation of PAC equation when the Rule of Thumbs (non
optimizing) part of the equations contains endogenous and/or exogenous variables.
2019-02-27 15:53:25 +01:00
Stéphane Adjemian (Charybdis) 6500099f4e
Removed debugging display. 2019-02-27 15:08:49 +01:00
Stéphane Adjemian (Charybdis) 1aa7f4a93f
Added PAC with Model Consistent Expectations. 2019-02-25 17:31:58 +01:00
Stéphane Adjemian (Charybdis) ac09ab9dbf
Removed useless condition. 2019-02-25 17:31:58 +01:00
Stéphane Adjemian (Charybdis) 0af3068569
Handle situations where a PAC model is used in more than one equation. 2019-02-22 17:58:24 +01:00
Stéphane Adjemia (Scylla) 74520e77bf
Allow for lags on endogenous variable in growth option of pac_model. 2019-01-28 11:25:30 +01:00
Stéphane Adjemia (Scylla) 3bc6b34161
Bug fix.
Be agnostic about the name of the PAC model.
2019-01-07 13:33:08 +01:00
Stéphane Adjemia (Scylla) c829e7968d
If possible define boundaries for the share of optimizing agents in PAC/NLS.
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.
2018-12-19 16:05:34 +01:00
Stéphane Adjemia (Scylla) df57bf7eb9
Fixed bug.
PAC/NLS routine was only working if the PAC model was named `pacman`.
2018-12-19 16:00:57 +01:00
Stéphane Adjemia (Scylla) 11b24a0663
Add a constraint on the share of optimizing agents PAC/Iterative OLS.
Ensure that the parameter value lies betwwen 0 and 1.
2018-12-19 15:43:36 +01:00
Stéphane Adjemia (Scylla) c0570ff0af
Fixed typo. 2018-12-19 15:41:32 +01:00
Stéphane Adjemia (Scylla) 38c8462142
If NLS, do not check the ordering of estimated parameters in PAC. 2018-12-12 16:28:19 +01:00
Stéphane Adjemia (Scylla) d501d6d511
Added interface to lsqnonlin (Mathworks' optimization toolbox) in pac.estimate.nls. 2018-11-29 10:29:55 +01:00
Stéphane Adjemia (Scylla) e6c716ae9b
Added the possibility to use Gauss-Newton in pac/nls.
Also added the computation of the covariance matrix of the NLS estimator (using
White and Domovitz approach) and integration test.
2018-11-26 09:53:18 +01:00
Stéphane Adjemia (Scylla) cf35496c06
Fixed bug in the evaluation of the sum of squared residuals (PAC/NLS). 2018-11-21 15:21:23 +01:00
Stéphane Adjemia (Scylla) 7d2d0d6590
Added the possibility to estimate the share of optimizing agents by iterative OLS (PAC). 2018-11-21 15:07:15 +01:00
Stéphane Adjemia (Scylla) a53c63d6d5
Added routines to print PAC_EXPECTATION and VAR_EXPECTATION in files.
Each new routine pac.print() and var_expectation.print(), creates two files
that can be included (using the macro language) in a mod file. The first
file, {pac,var}expectationmodename-parameters.inc saved under
{M_.fname}/model/{pac,var}expectationmodel, contains the declaration of the
parameters created for the expanded (var or pac) expectation model, with
calibrated values. The second file, {pac,var}expectationmodename-parameters.inc
saved in the same subfolder, contains the expanded version of the (pac or var)
expectation term as a linear combination of the variables in the companion
representation of the expectatino model.
2018-10-14 16:57:51 +02:00
Stéphane Adjemian(Charybdis) ae71599292
Switch to new get_companion_matrix routine. 2018-09-28 19:27:17 +02:00
Stéphane Adjemian(Charybdis) 031e2c87c6
New version of get_companion_matrix + new integration test.
The routine is still buggy. In PAC and VAR_EXPECTATION models we
use get_companion_matrix_legacy routine instead.
2018-09-19 17:39:48 +02:00
Stéphane Adjemian(Charybdis) 2518cd9884 Raise error of an optimization algorithm is not available. 2018-09-13 16:16:07 +02:00
Stéphane Adjemian(Charybdis) 2437d7034e Give access to more than one optimizer in PAC estimation (NLS).
Default is to use csminwel optimizer (because it seems to do the job and does
not rely on the Mathworks toolbox).
2018-09-13 16:15:52 +02:00
Stéphane Adjemian(Charybdis) 6815624a6a Fixed bug.
Growth neutrality correction was applied twice.
2018-09-12 15:41:07 +02:00
Stéphane Adjemian(Charybdis) 0f3678ec4a Fixed ordering of variables in error correction term of PAC equation
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.
2018-09-06 22:07:31 +02:00
Stéphane Adjemian(Charybdis) 74ef4d2131 Cosmetic change. 2018-09-06 13:40:43 +02:00
Stéphane Adjemian(Charybdis) 5d8a1feda4 Fixed regular expression.
Data matrices were not correcty lagged for lags>1. This commit fixes the
inconsistencies (in terms of residuals) between Iterative OLS and NLS routines.
2018-09-06 13:40:27 +02:00
Stéphane Adjemian(Charybdis) 940c970ff3 Use same range in NLS and Iterative OLS.
The range option is the range of data considered for the right hand side variable.
2018-09-04 09:40:47 +02:00
Stéphane Adjemian(Charybdis) 6e1d06bddc Display SSR in Iterative OLS. 2018-09-03 18:01:59 +02:00
Stéphane Adjemian(Charybdis) 8b1b1273c3 Fixed correction for growth neutrality.
Also added the possibility to use an endogenous variable for growth.
2018-09-03 17:57:10 +02:00
Stéphane Adjemian(Charybdis) fde103d5f4 Removed debugging display. 2018-09-03 17:55:55 +02:00
Stéphane Adjemian(Charybdis) a207550680 Fixed error correction term. 2018-09-03 17:53:01 +02:00
Stéphane Adjemia (Scylla) e1b2b80d64 Small efficiency change. 2018-08-29 17:42:49 +02:00
Stéphane Adjemia (Scylla) d23d1a470b Added the possibility to estimate PAC_EQUATION with iterative ols and non constant growth. 2018-08-29 17:42:04 +02:00
Stéphane Adjemia (Scylla) 30b34c4323 Small efficiency changes. 2018-08-29 16:15:52 +02:00
Stéphane Adjemia (Scylla) 36388ce28a Fixed bug in PAC_EXPECTATION.
The selection of the target variable in the error correction term was still
wrong if the target variable was not an auxiliary variable.
2018-08-28 19:23:35 +02:00
Stéphane Adjemia (Scylla) 18a2626543 Fixed bugs in PAC_EXPECTATION.
- The selection of the target variable in the error correction term was wrong.
 - Target variables in logs were still not working.
2018-08-28 12:12:21 +02:00
Stéphane Adjemia (Scylla) ae530293c5 Fixed bug. Trends in log where not accounted for in PAC equation. 2018-08-27 19:35:33 +02:00
Stéphane Adjemia (Scylla) cd05b9ba8f Cosmetic changes. 2018-08-22 11:49:30 +02:00
Stéphane Adjemia (Scylla) 2b6ee881a4 Efficiency changes. 2018-08-22 11:49:15 +02:00
Stéphane Adjemia (Scylla) 442a70e905 Added missing semicolon. 2018-08-21 21:56:01 +02:00
Stéphane Adjemia (Scylla) 4a0b3ffe7e Adapted matlab code to new TREND_COMPONENT auxiliary model. 2018-08-21 21:49:58 +02:00
Stéphane Adjemia (Scylla) 38b2593e31 Efficiency changes. 2018-08-21 21:02:20 +02:00
Stéphane Adjemia (Scylla) 7d6296f7a6 Fixed bug introduced by 42bba08887. 2018-08-17 21:42:09 +02:00
Stéphane Adjemian(Charybdis) 42bba08887 Make the code robust to the order of declaration of the estimated parameters. 2018-08-15 22:03:33 +02:00
Stéphane Adjemian(Charybdis) 702e6d4cc7 Fixed lag number in PAC equation.
The number of autoregressive parameters has to be equal to the number of lags
in the PAC equation.
2018-08-13 12:41:37 +02:00
Stéphane Adjemian(Charybdis) 8b3ba814c7 Fixed PAC index for target variable in companion VAR. 2018-08-10 15:42:13 +02:00
Stéphane Adjemian(Charybdis) dc026329a7 Cosmetic change. 2018-08-04 20:14:28 +02:00
Stéphane Adjemian(Charybdis) 0edebbe5d7 Added Iterative OLS routine for PAC equation. 2018-07-23 16:12:46 +02:00
Stéphane Adjemian(Charybdis) f03a9b98e1 Fixed typo. 2018-07-20 17:09:15 +02:00
Stéphane Adjemian(Charybdis) cd9410644f Moved PAC estimation routine (NLS). 2018-07-16 16:30:07 +02:00
Stéphane Adjemian(Charybdis) 9468c5b61d Bug fix in PAC equation simulation/estimation.
Fixed the definition of idns (must target the trend variable).
2018-07-16 15:38:04 +02:00
Stéphane Adjemian(Charybdis) c46fe7fcfa Added check routine for PAC equation. 2018-07-16 14:56:05 +02:00
Stéphane Adjemian(Charybdis) 2256acfa73 Fixed replacement of LHS variable if the equation has no lag. 2018-07-13 19:10:25 +02:00
Stéphane Adjemian(Charybdis) 9b51b1ee16 Fixed logic for replacing variables by views of the data array. 2018-07-13 19:07:38 +02:00
Stéphane Adjemian(Charybdis) 51332c6fd6 Fixes related to the new "+" subfolder. 2018-07-10 18:34:49 +02:00
Stéphane Adjemian(Charybdis) 829849f4db Fixed regular expression used to identify a PAC auxiliary model. 2018-07-05 11:50:50 +02:00
Stéphane Adjemian(Charybdis) 227ac46aa9 Fixed bug related to the parameters in PAC equation. 2018-07-04 10:02:19 +02:00
Stéphane Adjemian(Charybdis) f248feb839 Fixed function handle name for sum of square residuals. 2018-07-04 09:38:19 +02:00
Stéphane Adjemian(Charybdis) 37bd4a1fea Added routine for estimating a PAC equation by NLS.
This is not a final version. The routine does not print the estimation result, and does not
compute the variance of the estimator. The routine updates the content of M_.params with the
vector of PAC parameters minimizing the sum of squared residuals.
2018-06-21 18:48:58 +02:00
Stéphane Adjemian(Charybdis) 45115e1172 Replaced pac.update.equation() by pac.update.expectation(). 2018-06-21 18:47:57 +02:00
Stéphane Adjemian(Charybdis) 27e21acd5a Adapt h1 formula depending on PAC's auxiliary model (var or vecm). 2018-05-30 18:26:18 +02:00
Stéphane Adjemian(Charybdis) a4120a84b6 Adapted matlab routines to recent changes in preprocessor. 2018-05-16 21:31:31 +02:00
Stéphane Adjemian(Charybdis) 57bb6f3fe9 Fixed typo. 2018-04-12 12:23:50 +02:00
Stéphane Adjemian(Charybdis) 61c643a91f Updated the preprocessor submodule (new PAC interface). 2018-04-12 10:11:09 +02:00
Stéphane Adjemian (Charybdis) a135c49469 Added routines for PAC expectations. 2018-02-28 15:00:42 +01:00