Gams makes aggregating tables quite easy. Imagine you a table with data for 100 sectors but you want to run your model in the testing phase for an aggregation of these sectors (e.g. an aggregate the 100 sectors to the three sector groups “agriculture”, “industry”, and “services”). This is a typical situation in CGE (computable general equilibrium modeling): you have a social accounting matrix for your country and you want to start with a simple model having only a few sectors, one household, no taxes, and no government).
In Gams you simply introduce a mapping that maps the 100 sectors … Read the rest “Aggregating tables in Gams in a flexible way using mappings and compile-time variables”
After some hesitation, I finally decided to start with learning Python. I had some hesitations because I am used to R and that is a different kind of cookie. The decision was made easier because I am working on a project with models developed by other colleagues in Python (and Matlab). Furthermore, although Shiny in R is a great way for visualization of results, I got stuck building a combination of results and information. Python offers Dash (some nice examples can be found in the Dash Galley). Another reason is that nowadays you can use Python in your Gams … Read the rest “Good Books for Learning Python”
Jupyter Notebooks are a great way of working with Python and R. You can add your notes in Markdown and write code in a cell that can be evaluated over and over again.
However, one thing I didn’t like is that you have to start (on Windows) the Jupyter Notebook server in the directory where you have your notebook saved. Double-clicking a Jupyter notebook (with the extension ipynb) doesn’t work if you don’t install an additional package. Luckily, there is an easy way to get this working found on Axel’s blog.
I used the following code to enable double-click … Read the rest “Starting your Jupyter Notebook with a double-click”
If you work on multiple projects you might have problems remembering the names of the files you are working on. Was the LaTeX file in the subdirectory “Documentation” or in “Notes”? Was the name “model.tex” or “logit.tex”? Was it “bench.gms” or “benchrd.gms” or “bench1.gms”? I loose often time searching my directories for the file I want to work on and, unfortunately enough, I am not that systematic in naming and filing my files.
I tried to solve this by keeping a list in a note, creating links, and so on, but nothing seemed to work (or I was not consistent … Read the rest “Fighting chaos: Collections”
A good CGE modelers always checks the calibration of a CGE model using a simple trick: If you set the iteration limit of the model to zero and you try to solve the model, GAMS should find a solution if you correctly initialized and wrote down your model equations with the use of the benchmark data. Often, the calibration is not done properly and this can be seen (using the iteration set to zero) by looking at the infeasibilities of the equations and the variables.
If you use MPSGE to write down your model, the infeasibilities are easily interpreted. If … Read the rest “Looking for infeasibilities in Gams”