logical errors for an economic model

Problems with modeling
Post Reply
Rodrigue
User
User
Posts: 33
Joined: 5 years ago

logical errors for an economic model

Post by Rodrigue »

Hi all,
I’m new in the group. I began by follow most common topics in the group. So I think I need more help for the problem I’m facing to. I’m a Ph.D. student and I’m building an economic model with 96 accounts for the social accounting matrix (SAM). The model has 2828 equations and 2918 variables. In use the version 24.5.6 of gams. The solver is CONOPT in an NLP maximization problem. I have some preoccupations:
First my model doesn’t reproduce the initial data base of SAM. In a such a situation the report summary is
**** REPORT SUMMARY : 0 NONOPT
1499 INFEASIBLE (INFES)
SUM 1.414
MAX 0.001
MEAN 9.4338E-4
0 UNBOUNDED
0 ERRORS
The process windows shows infeasible solution. Reduced gradient less than tolerance. Normal completion is 1 and locally infeasible is at 5. I scaled some variables and all have been initialized to that of the SAM. Some of them are fixed using .fx (I don’t know if there is a rule for choosing variables that may be fixed). I have the impression that bad values I got for the variables are due to the infeasibility and if it is the case how can I overcome that to problem.
Second I sometime tried to make simulations even with those errors but I realized that nothing didn’t change. (Is it still due to problem of infeasibility and sometime of errors that I get in report summary?)
I could send the gms file if necessary

Thank you
Rodrigue
User avatar
Renger
Posts: 639
Joined: 7 years ago

Re: logical errors for an economic model

Post by Renger »

[*]Hi Rodrigue

If you use a benchmard data set, you should be able to reproduce this running your economic model. This is how you can debug your model:
  • If you inititalize all your variables with the benchmark data (e.g. prices equal to 1, activitiy levels to 1, INCOME.L = SAM('LAB', 'HH') + SAM('CAP', 'HH') + ...).
  • Set the iteration limit to zero (e.g. mymodel.iterlim = 0), and
  • run the model, it should stop immediately and GAMS should have found the solution.
  • If not, either your data is wrong, the starting values aren't set correctly, or the equations are wrong).
  • If you go in the listing file, you will find the equations listings. If there is an infeasible in one of the equations, this means that this equation has the wrong starting values (or no starting values assigned to), or the equation is wrong.
  • Correct every equation with an infeasible bigger then 1E-7 and you should find the benchmark data as a solution.
Simplified:

Code: Select all

set x /dema , demb, sup/;

table  data(x,*)
      Agr
demA  100
demB   50
sup   200;

variables
   DA  demand a
   DB  demand b
   S supply
   DUMMY ;

parameter c /50/;

equations
    market_clearing      Market clearing
   dummy_eq             Just a dummy equation to get an optimization model;

market_clearing..
     S  =G= DA + DB +c;

dummy_eq..
     DUMMY =E= 1;

model demandsupply /all/;

demandsupply.iterlim = 0;

* This will cause infeasibilities
solve demandsupply using nlp minimizing dummy;


* Initialize the variables
S.l = data("Supply", "agr");
DUMMY.l = 1;
DA.l = data("dema", "agr");
DB.l = data("demb", "agr");

solve demandsupply using nlp minimizing dummy;


* Don't forget to reset your iteration limit

demandsupply.iterlim = 10000;

The first solve will give you this in the equations listing:

Code: Select all

---- market_clearing  =G=  Market clearing

market_clearing..  - da - db + s =G= 50 ; (LHS = 0, INFES = 50 ****)
     
---- dummy_eq  =E=  Just a dummy equation to get an optimization model

dummy_eq..  dummy =E= 1 ; (LHS = 0, INFES = 1 ****)
The second propely initialized model this:

Code: Select all

---- market_clearing  =G=  Market clearing

market_clearing..  - da - db + s =G= 50 ; (LHS = 50)
     

---- dummy_eq  =E=  Just a dummy equation to get an optimization model

dummy_eq..  dummy =E= 1 ; (LHS = 1)

Hope this helps
Cheers
Renger
____________________________________
Enjoy modeling even more: Read my blog on modeling at The lazy economist
Rodrigue
User
User
Posts: 33
Joined: 5 years ago

Re: logical errors for an economic model

Post by Rodrigue »

Hi Renger. I’m really grateful for your reply. It is very interesting especially the examples. I’m going to follow your advice and I hope the model will reproduce the benchmark data. Thank you very much
Rodrigue
User
User
Posts: 33
Joined: 5 years ago

Re: logical errors for an economic model

Post by Rodrigue »

Hello Renger
I tried options you recommended me even though I haven’t got a right solution. However, I read other posts which helped me notably the artificial method described in this forum. By this one I dealt with infeasibilities and the benchmark situation has been successfully reproduced. Now, I’m confused since the log file indicates
** optimal solution. Reduced gradient less than tolerance.

In a given post It has been advice to increase Rtmaxv to 1E15 for example. I followed that but the problem remains.
So far because in report summary I get 0 everywhere (as indicated below), I tried a simulation but no value doesn’t change. I got the same values to that of the benchmark. I feel that, this situation remains until the problem of reduced gradient will have been solved. The summary of listing file is the following

S O L V E S U M M A R Y
MODEL megcdycam OBJECTIVE CC
TYPE NLP DIRECTION MAXIMIZE
SOLVER GAMSCHK FROM LINE 694

**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 2 Locally Optimal
**** OBJECTIVE VALUE 9098.0000

RESOURCE USAGE, LIMIT 0.109 1000.000
ITERATION COUNT, LIMIT 4 2000000
EVALUATION ERRORS 0 0

** Optimal solution. Reduced gradient less than tolerance.
**** REPORT SUMMARY : 0 NONOPT
0 INFEASIBLE
0 UNBOUNDED
0 ERRORS

GAMS 25.0.3 r65947 Released Mar 21, 2018 WEX-WEI x86 64bit/MS Windows 06/08/18 11:07:28 Page 6
A Recursive-Dynamic Standard CGE Model (DYNCGE,SEQ=410)

So my question is what is the process to overcome that issue of reduced gradient? And if I can keep that message what can I do in other to realize simulations?

Because of the size of the model I don’t know if it’s necessary to share the gms file. In contrary I attached the log file.

thanks

rodrigue
Attachments
log file.log
(3.17 KiB) Downloaded 184 times
User avatar
Renger
Posts: 639
Joined: 7 years ago

Re: logical errors for an economic model

Post by Renger »

This is just information by the solver and not an error. Check the manual for more information on the reduced gradient information.
CHeers
Renger
____________________________________
Enjoy modeling even more: Read my blog on modeling at The lazy economist
Post Reply