Você está na página 1de 25

Introduo ao MPSGE e GAMS

ngelo Costa Gurgel

Dezembro 2010
PAEG Technical Paper No. 4

PAEG Technical Paper No.4

Introduo ao MPSGE e GAMS


ngelo Costa Gurgel

PAEG Technical Paper No. 4


1. Introduo
O General Algebraic Modelling System (GAMS) (Brook et al, 2003) um
software que foi construdo para resolver problemas de programao (otimizao)
linear e no-linear. Contudo, esse programa demonstrou ser til em resolver muitos
problemas em economia, que so melhor representados como problemas de equilbrio
(soluo de sistemas de equaes e desigualdades).
O Mathematical Programming System for General Equilibrium (MPSGE) uma
linguagem de programao desenvolvida por Thomas Rutherford (Rutherford, 1999)
no incio dos anos 1980 para solucionar modelos econmicos de equilbrio ao estilo
Arrow-Debreu. O MPSGE usa como interface a linguagem de programao do GAMS.
Como resultado, se algum pretende usar o MPSGE, necessita tambm aprender a
sntax bsica do GAMS. Como o prprio nome indica, o MPSGE foi criado para resolver
modelos econmicos conhecidos como modelos aplicados (ou computveis) de
equilbrio geral (MAEG). Esses modelos consistem de agentes econmicos que
interagem entre si atravs de preos que emergem de mercados de bens e fatores de
produo. A palavra geral significa que todos os fluxos econmicos so
considerados, isto , existe um escoamento para cada fonte. Determinar um
equilbrio para um MAEG envolve descobrir preos, quantidades e rendas de
equilbrio.
2 - Passos em modelagem aplicada de equilbrio geral

Os passos usuais na modelagem de equilbrio geral so:


1 Especificao da dimenso do modelo:
-

nmero de bens e fatores,


2
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

nmero de consumidores,

nmero de regies ou pases,

nmero de mercados ativos;

2 Escolha das formas funcionais para as funes de produo, transformao e de


utilidade; especificao das restries, incluindo escolhas de produtos e insumos para
cada atividade;
3

Construo

da

base

de

dados

com

consistncia

microeconmica

macroeconmica
Os dados devem satifazer as seguintes condies: lucro zero (valor da produo igual
ao custo total) para todas as atividades, ou se os lucros forem positivos, indicao
das receitas geradas, como tambm, devem satisfazer as condies de equilbrio de
mercado (oferta = demanda) em todos os mercados.
4 Calibrao escolha dos parmetros para que as formas funcionais e a base de
dados sejam consistentes.
Por consistncia entende-se que os dados devem representar a soluo inicial do
modelo;
5 Replicao execuo do modelo de forma a verificar se este reproduz os dados
iniciais;
6 Experimentos e choques no modelo
Os passos 3 e 4 no so estritamente necessrios. O software pode ser
utilizado para anlises puras de simulao, em que no existem dados inicialmente.
Contudo, no aprendizado do software, pode ser bastante til comear escrevendo um
conjunto de dados micro-consistente e ento tranformar este em um cdigo de forma
que a soluo para o modelo reproduza os dados iniciais.

3 - A lgica do modelo
Como uma ilustrao de um modelo econmico simples, considere a tarefa de
descobrir um equilbrio para uma economia hipottica que consiste de dois agentes
econmicos: consumidores e produtores. Os consumidores possuem uma dotao
inicial dos fatores trabalho (L) e capital (K). Por simplicidade, existe apenas um
agente representativo consumidor nessa economia. A renda do consumidor
originada da venda de seus fatores de produo, e utilizada para o consumo de
3
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

bens finais na economia. Existem dois bens, X e Y, na economia. O consumidor obtm


um nvel de utilidade a partir do consumo desses bens. Os produtores so
representados atravs de empresas que compram as dotaes iniciais dos
consumidores para utiliz-las como insumos na produo dos bens finais. Os setores
de produo X e Y so caracterizados, respectivamente, pelas tecnologias de
produo X e Y disponveis. R a renda do consumidor. Ento, a nossa economia
simples possui dois setores (X e Y), dois fatores (L e K, que possuem oferta
inelstica), e um consumidor representativo (funo de utilidade W):

X = X (L X , K X )

(1)

Y = Y (LY , K Y )

(2)

L* = L X + LY

(3)

K * = K X + KY

(4)

W = W (X ,Y )

(5)

R = wL* + rK * = p X X + pY Y

(6)

Esse sistema de equaes pode ser resolvido como um problema de otimizao


condicionada, do tipo: maximizar (5) sujeito a (1), (2), (3), (4) e (6).
Contudo, torna-se difcil e complicado definir o que deve ser maximizado se
existem diversos tipos de consumidores e/ou vrios pases. Uma forma alternativa de
resolver um sistema de equilbrio geral mais complexo converter o problema para
um sistema de equaes, e ento resolver tal sistema. Primeiro, resolvem-se os
problemas de minimizao de custos para produtores e consumidores relacionados ao
sistema de equaes, obtendo-se:
Funes de custo unitrio para X e Y:

cx = cx(w,r), cy = cy(w,r)

Funo de custo (despesa) unitrio(a) para W

e = e(px,py)

Ento, especifica-se o equilbrio como a soluo para um sistema de 9


equaes e 9 incgnitas. O problema de otimizao , dessa forma, convertido em
um problema de equilbrio na economia:

4
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

(7) lucro zero para X

px = cx(w,r)

(8) lucro zero para Y

py = cy(w,r)

(9) lucro zero para W

pw = e(px,py)

(10) oferta = demanda para X

X = epx(px,py)W

(11) oferta = demanda para Y

Y = epy(px,py)W

(12) oferta = demanda para W

W = R / pw

(13) oferta = demanda para L

L* = cxw X + cyw Y

(14) oferta = demanda para K

K* = cxr X + cyr Y

(15) renda

R = w L* + r K*

O MPSGE permite que o pesquisador escreva o problema representado pelas


equaes de (1) a (6) e ento este converte o problema no sistema de equaes de
(7) a (15). Ou seja, escreve-se as expresses gerais para as funes, com os insumos,
produtos e preos iniciais, e ento essas informaes so utilizadas para construir as
funes de custo e demanda relacionadas. O programa ir checar automaticamente
todas as condies de equilbrio dos mercados e de lucro zero. O MPSGE resolve essas
nove equaes para descobrir as nove icgnitas: X, Y, W, px, py, w, r e R.
Essa forma de resolver o modelo econmico de equilbrio de Arrow-Debreu
consiste na formulao de um problema de complementariedade mista (MCP), onde
trs desigualdades devem ser satisfeitas: condio de lucro zero (ou custo unitrio
igual ao preo do bem), condio de equilbrio nos mercados (oferta igual a
demanda) e condio de balano da renda (despesas iguais s receitas). Um conjunto
de trs variveis no negativas deve ser determinado na soluo de um problema em
MCP: preos, quantidades (nveis de atividades em MPSGE) e nveis de renda.
A condio de lucro zero requer que qualquer atividade em operao deve
obter lucro zero, ou seja, o valor dos insumos deve ser igual ao valor da produo. A
varivel associada com essa condio o nvel de atividade y para os setores de
produo com retornos constantes de escala. Isto significa que sey > 0 (uma
quantidade positiva de y produzida) o lucro econmico deve ser igual a zero, ou o
lucro negativo e y = 0 (no ocorre a produo nesse caso).
A condio de equilbrio de mercado requer que qualquer bem com preo
positivo deve ter um balano entre oferta e demanda e qualquer bem com oferta em

5
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

excesso deve ter um preo igual a zero. O vetor de preos p (que inclui os preos dos
bens finais, intermedirios e dos fatores de produo) a varivel associada.
A condio de balano da renda requer que, para cada agente (incluindo
entidades do governo), o valor da renda deve ser igual ao valor das dotaes dos
fatores e das receitas dos impostos: Renda = dotaes + receitas dos impostos
A vantagem de utilizar o MPSGE que o pesquisador no necessita gastar
tempo algum derivando algebricamente as condies de equilbrio. O MPSGE constri
essas condies automaticamente. Contudo, sempre til entender a representao
algbrica de um modelo particular. Deve-se ressaltar que o MPSGE uma ferramenta
para a formulao mas no para a soluo de problemas de complementariedade.
Para implementar o programa MPSGE devem ser utilizados solvers para soluo de
MCPs. O software GAMS possui dois solvers para MCPs: MILES e PATH. Geralmente o
ltimo recomendado para implementao de modelos escritos em MPSGE por ser
mais eficiente.

4 - Elementos e Palavras-chaves em MPSGE


Os elementos que formam um modelo de equilbrio geral em MPSGE podem ser
sintetizados, de maneira simples, da seguinte forma:
a) Declarao de parmetros e valores (notao do GAMS)
b) $ONTEXT (esse comando informa o compilador do GAMS para ignorar as linhas

escritas aps este comando, porm, o compilador do MPSGE ir reconhecer a


declarao do modelo que se segue, captando as informaes declaradas no
programa)
c) Declarao do modelo
d) Declarao de setores, commodities, consumidores, variveis auxiliares
e) Blocos de produo
f) Blocos de demanda
g) Equaes de restries
h) $OFFTEXT (comando que retorna o controle do programa do MPSGE para o GAMS)
i) Declaraes de comandos de incluso e resoluo (include e solver)
j) Clculos de parmetros de resultados em linguagem GAMS e declaraes de
exibio (display)
6
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

A sintaxe do programa MPSGE realizada atravs de palavras-chaves e


comandos que sero interpretados pelo programa GAMS e pelo solver do MPSGE,
como declarao do modelo, de seus elementos (setores, commodities, consumidores
e variveis auxiliares) e dos blocos de produo, demanda e restries. As principais
palavras que definem um modelo de equilbrio geral em MPSGE so descritas a seguir:
SECTOR (ACTIVITY)
Atividades de produo que convertem insumos em produtos. A varivel associada a
um setor o seu nvel de atividade.
COMMODITY (MERCADOS)
Indica um bem ou fator. A varivel associada a uma commodity o seu preo, e no
sua quantidade.
CONSUMERS
Agentes que suprem os fatores, recebem receitas dos impostos, de markups e pagam
subsdios. Em modelos de competio imperfeita, proprietrios das empresas podem
ser designados como consumidores. A varivel associada a um consumidor a renda
que este recebe de todas as fontes.
AUXILIARY
Variveis adicionais, como frmulas de markup ou de impostos com valores
endgenos que so funes de outras variveis, como preos e quantidades. Note a
forma ortogrfica de apresentar as variveis auxiliares, pois erros causaram
problemas na execuo do MPSGE, geralmente difceis de serem identificados.
CONSTRAINT
Uma equao que tipicamente usada para determinar o valor de uma varivel
auxiliar.
Vamos mostrar um exemplo de um bloco de produo, capaz de construir uma
funo do tipo: X = F(L,K). A especificao deste bloco de produo em MPSGE se d
atravs da seguinte notao:

$PROD:X

s:(elasticidade de substituio)

O:PX

Q:(produo de X) P:(preo de X)

I:PL

Q:(insumo L)

P:(preo de L)

7
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4


I:PK

Q:(insumo K)

P:(preo de K)

Na primeira linha so especificados o nome da atividade (X), o valor das


elasticidades de substituio (campo s:) e de transformao (campo t: , no mostrado
no exemplo acima por se tratar de uma atividade que produz um nico produto). A
no especificao das elasticidades (campos s: e t:) faz com que o MPSGE atribua o
valor padro de zero a essas.
A partir da segunda linha, na primeira coluna so apresentados os nomes das
commodities que representam insumos (campo I:) e produtos (campo O:). Na segunda
coluna so apresentados os valores das commodities (campos Q:). Esses valores so as
quantidades de referncia dessas commodities no equilbrio inicial, que so utilizados
para calibrao do modelo. A no declarao desses campos interpretada pelo
MPSGE como o valor padro de 1 para as quantidades. Na terceira coluna so
declarados os preos de referncia das commodities (compo P:), tambm usados para
calibrao do modelo. O valor padro, na falta de declarao destes, tambm
considerado 1).
Um exemplo especfico seria o bloco de produo declarado da seguinte
forma:
$PROD:X

s:1

!(o nome da atividade X, a funo Cobb-Douglas)

O:PX

Q:100 P:1

!(PX uma commoditie X)

I:PL

Q:75

P:1

!(PL a commodity trabalho)

I:PK

Q:25

P:1

!(PK a commodity capital)

O MPSGE constri a funo de custo subjacente ao bloco de produo a partir


das quantidades e preos de referncia. No resultado do modelo, os valores
associados com as commodities so seus preos (uma vez que a funo de custo seja
construda).
As quantidades e preos de referncia (preenchidas nos campos Q: e P:) so
usadas apenas na construo da funo de custo correspondente. Os seus valores no
so repassados ao solver como valores iniciais das variveis.

8
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

Todas as funes CES de retornos constantes so completamente especificadas


a partir de um ponto de referncia dado pelas quantidades e preos de insumos e
produtos e pela elasticidade de substituio (essas informaes servem para
determinar a inclinao da isoquanta). Dessa forma, a quantidade de informao
declarada no bloco de produo especifica completamente a funo de produo
(custo unitrio).
Algumas observaes importantes:
1 necessrio usar algum editor de texto padro (DOS, epsilon, etc.) para criar e
editar programas. O programa GAMS vem com um editor de texto, o GAMS-IDE. Este
editor suficiente para iniciar o aprendizado com o GAMS e o MPSGE, apesar de
existerem outros editores mais eficientes e poderosos. Para abrir o GAMS-IDE procure
pelo boto de atalho do mesmo criado durante o processo de instalao na rea de
trabalho.
2 o arquivo com o programa tipicamente deve ser salvo com a extenso .gms. O
resultado da resoluo do programa ser escrito com o mesmo nome do programa, no
mesmo diretrio, porm, com a extenso .lst (list).
3 quando se utiliza o editor GAMS-IDE, o programa em GAMS ser executado a partir
do click no boto com uma seta vermelha na barra superior do programa (comando
Run GAMS), ou clicando F9.
4 Existem duas formas de inserir comentrios em um arquivo em GAMS, sem
interferir no modelo. Uma forma iniciar uma linha com *, na primeira coluna
desta. A segunda forma utilizando o formato $ontext .... $offtext, que mais
indicado para longos blocos ou linhas de comentrios.

5 - Exemplo: um modelo 2x2


Na seo 3 descreveu-se brevemente como o MPSGE encontra um equilbrio.
importante saber que o MPSGE resolve um modelo no como um problema de
otimizao, mas como um equilbrio em um sistema de desigualdades. Contudo, para
que um pesquisador formule um programa simples em MPSGE no necessrio saber
disso. muito mais importante para um iniciante conhecer a sintaxe da linguagem do
MPSGE. Uma grande vantagem do MPSGE que este est baseado em funes de
utilidade e de produo de elasticidade de subsitutio constante (CES). O uso dessas
9
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

funes permite uma represntao flexvel de como os insumos so combinados no


processo produtivo ou como bens e servios so combinados para o consumo de um
agente. Para introduzir a sintaxe do MPSGE, consideremos novamente a economia
simples descrita na seo 3 (o arquivo M1_MPS.gms, localizado na pasta exercicios do
CD-ROM contm a sintaxe descrita a seguir).
Modelos econmicos de equilbrio geral so baseados em dados usualmente
organizados em Matrizes de Contabilidade Social (MCS). Consideremos os dados
apresentados na Tabela 1 como uma MCS1 com trs setores de produo, X, Y e W e
cinco mercados, X, Y, W, L e K. Como as variveis associadas com cada commoditie
(bem ou fator) so os preos, iniciam-se tais variveis pela letra P.
Tabela 1 Matriz de Contabilidade Social retangular
Setores de produo
Mercados

PX

100

PY

Consumidores

CONS

-100
100

-100

PW

200

-200

PK

-25

-75

100

PL

-75

-25

100

Uma MCS descreve um conjunto de dados que usualmente referenciado


como equilbrio inicial (benchmark). Os nmeros representam os valores (preos
multiplicados por quantidades) das transaes econmicas em um dado perodo do
tempo. Uma entrada positiva segnifica um valor de produo (ou de vendas). Uma
entrada negativa reflete um valor de insumo (ou compra). As condies de lucro

A matriz da Tabela 1 uma MCS retangular. Uma MCS retangular difere de uma MCS quadrada em
vrios aspectos, apesar de ambas serem capazes de representar uma mesma economia com seus fluxos.
A MCS quadrada est balanceada quando a soma da linha se iguala a soma da coluna correspondente.
Uma MCS retangular est balanceada quando cada linha e coluna apresentam uma soma igual a zero.
Opta-se aqui por utilizar a MCS retangular pois ela facilita a compreenso e entrada de dados no
modelo de equilbrio geral.

10
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

zero, equilbrio de mercado e balano da renda implicam que a soma de cada linha e
soma de cada coluna deve igualar-se a zero.
Para ilustrar como uma MCS equilibrada, considere as coluna e linha
referentes a X e PX na Tabela 1. A produo do setor X utiliza (compra) 25 unidades2
de trabalho e 75 unidades de capital, produzindo e vendendo 100 unidades do bem X.
A soma das linhas da coluna X igual a zero. Isso assegura que ocorre lucro zero no
setor X. A linha PX mostra que 100 unidades de X que so produzidas (entrada
positiva) sero consumidas pelo setor W (entrada negativa). A soma da linha PX
igual a zero, evidenciando que a oferta se iguala demanda (equilbrio de mercado)
para o bem X.
Como simplificao, algumas vezes uma conveno adotadar a normalizao
de todos os preos como iguais a um, no equilbrio inicial de uma MCS. Dessa forma,
as quantidades na MCS representam despesas, ou quanto de um bem ou fator podem
ser comprados por uma unidade monetria. Deve-se notar que uma economia ao
estilo Arrow-Debreu apenas depende de preos relativos. Ao se dobrar preos,
dobram-se lucros e renda, e os resultados sobre as quantidades (ou nveis de
atividades) permanecem os mesmos. O valor absoluto dos preos no tem impacto no
resultado de equilbrio.
Como

mencionado

anteriormente,

no

necessrio

formular

uma

representao algbrica das funes de produo e de utilidade com o uso do MPSGE.


O pesquisador necessita apenas fornecer as quantidades, preos e elasticidades de
referncia (no equilbrio inicial). O MPSGE ento, construir as funes de utilidade e
produo com base nas informaes fornecidas. Ao solucionar o modelo, o MPSGE
retorna os valores de equilbrio para as variveis descritas nos blocos de setores
($SECTORS), commodities ($COMMODITIES) e consumidores ($CONSUMERS).
No exemplo da economia descrita anteriormente, temos dois produtos (X e Y),
dois fatores (L e K) e um consumidor (CONS). Uma linha e uma coluna extras so
introduzidas (PW e W) de forma a representar explicitamente a utilidade derivada do
consumo agregado. Como ser descrito posteriormente, a utilidade poderia ser
representada diretamente no bloco de demanda ($DEMAND)3.
2

O termo unidade refere-se, aqui, ao valor, ou seja, preo vezes quantidade.


Um bloco separado para representar a utilidade permite introduzir impostos no consumo na anlise de
bem-estar.

11
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

O programa iniciado com a declarao do ttulo (title), que ser imprimido


na listagem da soluo. Aps o ttulo, usualmente, so declarados escalares (scalars),
parmetros (parameters) e conjuntos (sets) no formato habitual do GAMS. Esses
elementos no so necessrios no nosso exemplo de modelo esttico simples, mas
tornam-se muito teis quando se trabalha com MCS maiores, com vrios setores e
commodities. A prxima parte do programa deve ser escrita no formato do MPSGE,
como a seguir:

$ONTEXT
$MODEL:NAME

Esses dois comandos mudam o controle do compilador do GAMS para o MPSGE.


O nome do modelo deve ser escolhido pelo pesquisador. Nosso exemplo ser chamado
de M1_MPS. O nome do modelo deve ser um nome vlido para um arquivo, uma vez
que um arquivo NAME.GEN (M1_MPS.GEN no nosso caso) ser gerado pelo programa.
Aps o nome do modelo devem ser declarados os setores, atravs do comando:
$SECTORS:. Os setores determinam como os insumos so convertidos em produtos.
As variveis declaradas como setores representam os nveis de atividades e esto
associadas com as condies de lucro zero, ou seja, asseguram que um setor de
produo obtm lucro zero. No modelo M1_MPS consideramos trs setores: X, Y e W.
Comentrios podem ser adicionados ao programa MPSGE aps o sinal !.
A

seguir,

so

declaradas

as

commodities

atravs

do

comando:

$COMMODITIES:. As variveis declaradas correspondem aos preos. Essas esto


associadas s condies de equilbrio nos mercados, ou seja, o programa deve
assegurar que a oferta de cada commoditie deve igualar-se sua demanda. No
modelo M1_MPS temos cinco commodities: preos dos bens (PX e PY), preos dos
fatores (PL e PK), e o ndice de preo para o bem-estar (PW).
O prximo passo consiste em declarar os consumidores, atravs do comando
$CONSUMERS:. Os consumidores ofertam os fatores de produo e recebem a
utilidade advinda do consumo dos bens. A varivel relacionada aos consumidores a
renda de todas as fontes. A renda est associada sua condio de balano, ou seja,
o programa deve assegurar que a renda total igualada ao consumo total. No modelo
exemplificado existe apenas um consumidor representativo (CONS).
12
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

Declarados setores, commodities e consumidores, pode-se proceder


especificao das funes de produo atravs dos blocos de produo, $PROD:.
Esses blocos definem a regra pela qual insumos so transformados em produtos
(tecnologia). A declarao do bloco de produo para o setor X do modelo M1_MPS, a
seguir, demonstra a estrutura de um bloco de produo.

$PROD:X

s:1

O:PX

Q:100

I:PL

Q:25

A:CONS T:TX

I:PK

Q:75

A:CONS T:TX

Esse bloco descreve uma funo de produo Cobb-Douglas, determinada pelo


campo s:1, que significa que a elasticidade de substituio entre insumos deve ser
igual unidade. Os insumos so PL e PK (representados pelos campos I:PL e I:PK). O
produto PX (O:PX). Esse setor de produo converte 25 unidades de PL e 75
unidades de PK em 100 unidades de PX. Essa funo de produo poderia ser
matematicamente representada como X = L0,25K0,75. A Figura 1 ilustra a calibrao de
uma funo de produo para os preos e quantidades de benchmark.
K

75
Isoquanta X = 100 (s:1)
Isocusto (inclinao = -1)

25

Figura 1 Calibrao da funo de produo


O MPSGE especifica a funo de produo com um simples ponto de
referncia. Nesse exemplo especifica-se explicitamente apenas quantidades de
referncia. Os preos de referncia so considerados como unitrios. Preos relativos

13
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

dos insumos determinam a inclinao da funo de isocusto, que por sua vez, se
igualam inclinao da isoquanta no ponto das quantidades de referncia. Isso
significa que o bloco de produo descrito anteriormente idntico a:

$PROD:X

s:1

O:PX

Q:100 P:1

I:PL

Q:25

P:1

A:CONS T:TX

I:PK

Q:75

P:1

A:CONS T:TX

A curvatura da isoquanta determinada pelo s, definido como a elasticidade


de substituio entre os insumos. No exemplos, s = 1 sgnifica que a funo de
produo uma Cobb-Douglas. O valor padro para a elasticidade s, na ausncia da
declarao deste parmetro, considerado como zero. Quantidades e preos de
referncia no equilbrio inicial so utilizados apenas para calibrao. Eles no so
utilizados pelo programa como valores iniciais das variveis (valores iniciais so,
geralmente, todos considerados como unitrios). O bloco de produo Y similar ao
X, com exceo dos seguintes caracteres (includos apenas no bloco de produo X):
A:CONS T:TX. Esses caracteres representam a possibilidade de se cobrar um imposto
(definido pelo campo T: como TX) no uso dos fatores de produo L e K. A receita do
imposto ser destinada ao agente representativo CONS (definido pelo campo A:).
O bloco de produo para W (bem-estar) serve como uma ferramenta para
converso do consumo dos bens X e Y em utilidade derivada de um consumo
agregado. No modelo simples exemplificado introduzimos esse bloco de produo
apenas para propsito de ilustrao. Poderamos eliminar o bloco de produo W e
mudar o bloco de demanda para:

$DEMAND:CONS
D:PX

Q:100

D:PY

Q:100

E:PL

Q:100

E:PK

Q:100

Contudo, em modelos mais complicados, a representao do bem-estar como


um bloco de produo pode ser til, por permitir a incluso de impostos ao consumo,
14
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

uma vez que o MPSGE no aceita a imposio de impostos diretamente no bloco de


demanda.
O bloco de demanda representa a restrio de balano da renda do
consumidor. O bloco de demanda do modelo M1_MPS representado por:

$DEMAND:CONS
D:PW

Q:200

E:PL

Q:100

E:PK

Q:100

O consumidor recebe sua renda das dotaes de fatores K e L (E:PK e E:PL) e


demanda a commodity PW (D:PW). As quantidades de referncia (campos Q) so
usadas para calibrao da funo de utilidade da mesma forma que o bloco de
produo calibra as funes de produo.
As linhas do modelo em MPSGE terminam com os seguintes comandos:

$OFFTEXT
$SYSINCLUDE mpsgeset NAME

NAME significa o nome do modelo, no exemplo dado, M1_MPS. Esses comandos


mudam o controle do compilador do MPSGE de volta para o GAMS.
O prximo comando define o nmero mximo de iteraes que sero
realizadas pelo solver.
NAME.ITERLIM = 0;

Quando esse nmero definido como zero, o solver no ir resolver o modelo,


mas sim, retornar os valores nos quais os dados iniciais se baseiam. Definir o nmero
de iteraes como zero importante para assegurar que os dados de benchmark
(descritos na MCS) representam a soluo inicial de equilbrio.
A prxima linha define o numerrio do modelo, escolhido neste caso como o
ndice de preo do consumidor, PW. Este preo fixado como sendo igual a 1. A

15
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

definio do numerrio significa que todos os demais preos do modelo devem ser
tomados em referncia ao numerrio.
As duas prximas linhas de comandos so utilizadas para solicitar ao programa
a execuo do modelo:

$INCLUDE NAME.GEN
SOLVE NAME USING MCP;

A soluo para o modelo, que ser apresentada em um arquivo de listagem (no


exemplo dado, arquivo M1_MPS.lst), ser apresentada com a seguinte estrutura:
LOWER

LEVEL

UPPER

MARGINAL

---- VAR X

1.000

+INF

---- VAR Y

1.000

+INF

---- VAR W

1.000

+INF

---- VAR PX

1.000

+INF

---- VAR PY

1.000

+INF

---- VAR PL

1.000

+INF

---- VAR PK

1.000

+INF

1.000

1.000

EPS

+INF

---- VAR PW
---- VAR CONS

1.000
.

200.000

Na soluo, as colunas LOWER e UPPER mostram os limites inferior e superio


das variveis, respectivamente. O valor zero representado por um ponto. +INF
significa infinito. A coluna LEVEL reporta o valor encontrado como soluo da
execuo do modelo. A coluna MARGINAL representa o valor de complementariedade
da varivel (valor sombra). Deve-se dar uma ateno especial s colunas LEVEL e
MARGINAL. A complementariedade implica que, em equilbrio, o valor da varivel
ser positivo ou o valor marginal ser positivo, mas nunca ambos ao mesmo tempo.
Se ambos aparecerem como positivos, necessrio checar o modelo.
A soluo do modelo mostra que os dados de benchmark (representados na
MCS) so consistentes com o equilbrio do modelo. Podemos verificar isso pelo fato de
16
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

que todos os valores na coluna MARGINAL terem sedo igualados a zero aps a
replicao do benchmark (ou seja, aps a execuo do modelo com o comando
ITERLIM igual a zero). Os nveis de atividade de X, Y e W no equilbrio so iguais a um
(e no iguais a 100 e 200, como na MCS), bem como os nveis de preos. A renda de
equilbrio do agente representativo, nica varivel a preservar o valor observado na
MCS, igual a 200.
Iniciantes em MPSGE costumam achar confuso que os nveis das atividades
sejam iguais unidade no equilbrio inicial. Trata-se apenas de uma re-escalao das
variveis para facilitar anlises de experimentos futuros, de forma a tornar mais
simples o clculo de mudanas em valores percentuais a partir de desvios do valor 1.
Para retornar o valor dos nveis de atividades no re-escalados, necessrio
multiplicar os nveis retornados na soluo do modelo pelos valores dos campos Q:
nos blocos de produo, ou valores iniciais da MCS. Por exemplo, o nvel de atividade
de X igual a 1 multiplicado por 100.
Existem outras maneiras de obter os nveis atuais das atividades na listagem
da soluo do modelo. Contudo, por razes numricas, recomendado manter os
valores no equilbrio inicial prximos da unidade. Por isso, a melhor maneira de obter
os nveis iniciais das atividades usar um bloco denominado de $REPORT, onde os
valores iniciais da MCS so recriados.
Todos os valores para os nveis de atividades e preos so pr-efinidos como
iguais a um. Apenas a varivel CONS, que representa o nvel de renda do consumidor,
tratada de forma diferente. Esta determinada pelas dotaes dos fatores.
Lembre-se que a condio de balano da renda afirma que a renda igual ao valor
das dotaes, que, por sua vez igual demanda total. Para o modelo
exemplificado, a renda igual a 200, uma vez que a dotao de capital (E:PK) 100
e a dotao de trabalho (E:PL) de 100, e os preos PK e PL so predefinidos como
iguais a um.
Como dito anteriormente, o modelo determina apenas preos relativos. Dessa
forma, se determinarmos preos iguais a 2 no equilbrio incicial, a varivel CONS ser
calculada como 400. Para checar isso basta modificar o modelo pela incluso das
seguintes linhas, aps o comando $SYSINCLUDE mpsgeset M1_MPS e antes do comando
$INCLUDE M1_MPS.GEN:

17
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4


PX.L = 2;
PY.L = 2;
PW.L = 2;
PK.L = 2;
PL.L = 2;

Tal modificao ser refletida na listagem da soluo como um aumento em


todos os preos e no nvel de renda, como a seguir:

LOWER

LEVEL

UPPER

MARGINAL

---- VAR X

1.000

+INF

---- VAR Y

1.000

+INF

---- VAR W

1.000

+INF

---- VAR PX

2.000

+INF

---- VAR PY

2.000

+INF

---- VAR PL

2.000

+INF

---- VAR PK

2.000

+INF

---- VAR PW

2.000

+INF

---- VAR CONS

400.000

+INF

Devido determinao apenas de preos relativos, usual que um dos preos


seja fixado pelo pesquisador. Se nenhum preo for fixado inicialmente (ou seja,
nenhum bem for escolhido como numerrio), o MPSGE ir predeterminar uma
normalizao de preo para o modelo. A normalizao padro fixa o nvel de renda
do consumidor mais rico como numerrio.
O modelo pode tambm ser especificado em um formato diferente. Ao invs
de usar nmeros nos campos de referncias de preos e quantidades, podem ser
utilizados parmetros introduzidos no comeo do programa e conjuntos diversos, que
sero utilizados para calibrao nos campos dos blocos de produo e demanda.

18
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

Aps a calibrao do benchmark, experimentos podem ser conduzidos atravs


de choques ao modelo, como por exemplo, a introduo de impostos ou mudanas na
dotao de trabalho. importante lembrar de alterar o limite de iteraes antes de
simular os choques, o que feito atravs do comando do GAMS NAME.ITERLIM=2000;.
O programa ir parar to logo este limite seja atingido se a soluo no tiver sido
encontrada at ento.
6 Exerccios com o Modelo M1_MPS
Inicie o editor de texto GAMS-IDE. O editor pode ser acessado atravs do
windows explorer na pasta GAMS23.3 (o processo de instalao costuma criar uma
tecla de atalho no desktop para esse programa). Para trabalhar com o editor de texto
GAMS-IDE, necessrio iniciar um novo projeto, ou abrir um j criado. Ento, crie um
novo projeto (File/Project/New Project), salvando-o com o nome de exercicios
dentro da pasta Exercicios_MPSGE, a mesma onde est localizado o arquivo
M1_MPS.gms. Sempre que criar um novo projeto, procure salv-lo em uma pasta
diferente da pasta do GAMS, como por exemplo, dentro da pasta Meus Documentos.
Executar projetos dentro da pasta onde o GAMS est instalado pode gerar erros de
execuo difceis de serem identificados.
Abra o arquivo M1_MPS.gms localizado na pasta Exercicios_MPSGE. Esse
arquivo apresenta o modelo exemplificado na sesso anterior. Corra o cursor pelo
arquivo de forma a visualizar toda a sintaxe do programa descrita na sesso anterior.
Depois, faa os seguintes exerccios:
a) Execute o arquivo usando o programa GAMS. Para executar o arquivo, click no
boto com uma seta vermelha na barra superior do programa (comando Run GAMS),
ou clique F9. O GAMS gera durante a execuo do modelo um arquivo de extenso
.log e um arquivo de extenso .lst que detalham o processo de execuo.
b) Corra o cursor pelo arquivo de extenso .lst, arquivo M1_MPS.lst, at encontrar a
mensagem:

S O L V E

S U M M A R Y

19
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

c) Os resultados do modelo so apresentados a partir dessa mensagem. Pode-se


perceber que o modelo encontra-se em equilbrio, uma vez que os nveis das variveis
so iguais unidade e os marginais so iguais a zero, como descrito na seo
anterior.
d) Desequilibre o modelo, alterando o valor do campo Q:75 no bloco de produo
PROD:Y para Q:50 no arquivo M1_MPS.gms. Execute novamente o modelo, e procure
no arquivo M1_MPS.lst as alteraes ocorridas. O modelo continua em equilbrio?
Voc saberia explicar o que aconteceu?
e) Altere o valor das elasticidades no arquivo M1_MPS.gms. Mas antes, corrija o valor
do campo Q:50 no bloco de produo PROD:Y para Q:75, como originalmente. Altere
agora o valor do campo s:1, no bloco de produo PROD:Y, para s:5. Execute
novamente o modelo, e verifique no arquivo M1_MPS.lst as alteraes ocorridas. O
modelo est em equilbrio? Voc saberia explicar o que aconteceu?
f) Implemente um experimento de imposio de impostos no uso de fatores. No
arquivo M1_MPS.gms, corrija o valor do campo s:5, no bloco de produo PROD:Y,
para s:1. Ento procure pelo primeiro comando $exit, que aparece logo aps os
comandos $include e solve. O comando $exit indica para o GAMS que o programa
deve terminar ali, ou seja, o GAMS no deve ler e executar as linhas aps esse
comando. Coloque um asterisco na frente do comando $exit, para que o GAMS passe
a ignorar esse comando. Dessa forma, o GAMS ir executar os comandos aps essa
linha. Os comandos a seguir tm a funo de implementar um experimento, ou um
choque, na economia representada no modelo. O primeiro experimento consiste na
imposio de um imposto ao uso dos fatores de produo pelo setor X. Esse imposto
determinado pelo parmetro TX (observe o bloco de produo PROD:X), que foi
definido com o valor de zero antes do modelo ser declarado (verifique isso no
arquivo). Agora, com o asterisco antes do comando $exit, o GAMS ir ler o novo valor
de TX (igual a 0,5, ou seja, um imposto ad-valorem de 50% sobre o uso dos fatores).
Logo aps, seguem os comandos $include e solve solicitando ao GAMS que o modelo
seja novamente executado. Agora, execute o modelo e visualize o arquivo de
20
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

resultados M1_MPS.lst. Procure pela segunda ocorrncia da mensagem S O L V E


U M M A R Y no arquivo. Note que deve aparecer um S O L V E

S U M M A R Y para

cada comando solve do arquivo M1_MPS.gms (a primeira ocorrncia dessa mensagem


apresenta o equilbrio inicial, a segunda ocorrncia corresponde aos resultados da
implementao do choque). Veja e tente interpretar os resultados.
g) Implemente um experimento de imposio de impostos no uso de fatores com uma
anlise de sensibilidade de elasticidades. No arquivo M1_MPS.gms, altere a
elasticidade do bloco de produo de W (PROD:W) de s:1 para s:0. Implemente o
modelo novamente, considerando a imposio dos impostos de 0,5 sobre o uso de
fatores pelo setor X. Tente interpretar os resultados (confira ao final do arquivo .lst
os resultados obtidos).
h) Implemente um experimento de aumentando na oferta do fator trabalho.
Primeiro, no arquivo M1_MPS.gms corrija a elasticidade no bloco de produo de W
(PROD:W) de s:0 para s:1. Ento, procure pelo segundo comando $exit, que aparece
logo aps os comandos $Include e solve do experimento de imposio de impostos.
Coloque um asterisco na frente do comando $exit, para que o GAMS leia as linhas
aps esse comando. Os comandos a seguir tm a funo de implementar um segundo
experimento na economia representada no modelo. Esse experimento consiste na
duplicao da dotao do fator de produo L. Essa duplicao determinada pelo
parmetro endow, definido antes do modelo como sendo igual a 1. Agora, com o
asterisco antes do comando $exit, o GAMS ir ler o novo valor de endow (igual a 2, ou
seja, uma duplicao, ou aumento de 100%, na dotao do fator L) e o modelo ser
novamente resolvido, atravs dos comandos $include e solve. Execute o modelo e
visualize os resultados no arquivo M1_MPS.lst. Procure pela terceira ocorrncia da
mensagem S O L V E

S U M M A R Y . Tente interpretar os resultados.

i) Anlises de sensibilidade: implemente outras mudanas em elasticidades no modelo


e tente interpretar os resultados do modelo para os dois experimentos.

7 - Resultados dos Exerccios

21
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

Resultados e interpretao do exerccio f


Resultados:
LOWER

LEVEL

UPPER

MARGINAL

---- VAR X

0.845

+INF

---- VAR Y

1.147

+INF

---- VAR W

0.985

+INF

---- VAR PX

1.165

+INF

---- VAR PY

0.859

+INF

---- VAR PL

0.903

+INF

---- VAR PK

0.739

+INF

1.000

1.000 2.132E-12

---- VAR PW
---- VAR CONS

1.000
.

196.946

+INF

Os resultados mostram que os impostos no uso dos fatores de produo


distorcem a produo do setor X, que diminui (de 1 para 0,845), deslocando fatores
para o setor Y, que aumenta a sua produo. O preo do bem X aumenta como
resultado do maior custo de produo e da queda na oferta desse setor. Como o fator
K usado de forma mais intensiva no setor X, seu preo diminui mais intensamente,
enquanto o fator L, usado de forma mais intensiva no setor Y, sofre menor reduo
de preo. Como o ndice de preos do consumidor, PW, fixo, as variaes em preos
indicam o quanto estes se distanciam relativamente do ndice de preos do
consumidor. A renda do consumidor sofre uma pequena reduo, j que este
recebem renda dos fatores de produo que tiveram seus preos reduzidos com o
choque. Note que o ndice de bem-estar do consumidor (W) diminui para 0,985,
indicando que o imposto distorce a alocao dos fatores na economia gerando
ineficincia.
Resultados e interpretao do exerccio g
Resultados:
LOWER

LEVEL

UPPER

MARGINAL

22
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4


---- VAR X

1.000

+INF

---- VAR Y

1.000

+INF

---- VAR W

1.000

+INF

---- VAR PX

1.200

+INF

---- VAR PY

0.800

+INF

---- VAR PL

0.800

+INF

---- VAR PK

0.800

+INF

1.000

1.000

EPS

+INF

---- VAR PW
---- VAR CONS

1.000
.

200.000

Com a elasticidade igual a zero, temos uma funo de consumo do tipo


leontief, ou seja, o consumidor demanda os bens em propores fixas, no podendo
substituir um bem pelo outro quando da mudana de preos de um deles. Isso
significa que, independente de mudanas nos preos, ele deve continuar consumindo
os bens na proporo de 1:1, como no equilbrio inicial. Dessa forma, como o
consumidor obrigado a consumir ambos os bens, e o equilbrio determina o
esgotamento total da produo (oferta igual demanda), os nveis de produo de X
e Y no se alteram. Contudo, o preo do bem X sofre um aumento por conta do
imposto sobre o uso dos fatores, enquanto o preo do bem Y diminui. A renda do
consumidor no afetada, bem como o seu consumo, que continua sendo da mesma
quantidade dos dois bens. Contudo, para acomodar os preos mais altos do bem X
devido ao imposto, o bem Y torna-se mais barado. Note que o nvel de bem-estar do
consumidor no sofre alterao (W = 1), uma vez que o consumidor continua
consumindo as mesmas quantidades dos bens. Por fim, os preos dos fatores de
produo reduzem na mesma proporo, uma vez que a renda do consumidor
continua a mesma, porm parte desta renda agora determinada pela receita dos
impostos.
Resultados e interpretao do exerccio h
Resultados:

23
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4


LOWER

LEVEL

UPPER

MARGINAL

---- VAR X

1.189

+INF

---- VAR Y

1.682

+INF

---- VAR W

1.414

+INF

---- VAR PX

1.189

+INF

---- VAR PY

0.841

+INF

---- VAR PL

0.707

+INF

---- VAR PK

1.414

+INF

1.000

1.000 1.137E-13

---- VAR PW
---- VAR CONS

1.000
.

282.843

+INF

A duplicao da quantidade disponvel do fator L promove um aumento no


nvel de produo dos setores X e Y, sendo este aumento mais pronunciado no setor
Y, j que este setor utiliza de forma mais intensiva o fator L. O grande aumento
relativo da produo de Y promove queda no seu preo. Como o bem X fica
relativamente mais escasso na economia, o seu preo aumenta. A renda do
consumidor aumenta bastante, de 200 para 282,84, j que este agente representativo
dotado dos fatores L e K e, portanto, recebe a renda proveniente da venda destes
fatores. Note que o preo do fator L cai, uma vez que a sua oferta dobra na
economia, enquanto o preo do fator K aumenta, j que agora este relativamente
mais escasso em comparao com o fator L. O aumento da renda e da disponibilidade
de bens na economia so revertidos em aumento do consumo, e portanto, do ndice
de bem-estar, dado por W.

8 - lgebra do modelo MPSGE


A esta altura, o leitor deve estar se perguntando: mas cad as equaes do
modelo de equilbrio geral construdas a partir do modelo MPSGE? Essas equaes
so apresentadas no modelo m1_mcp.gms, disponvel na pasta Exerccios_MPSGE. O
modelo m1_mcp.gms produz exatamente os mesmos resultados do modelo
m1_mpsge.gms, mas apresenta o modelo em lgebra de um problema de
24
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.

PAEG Technical Paper No.4

complementariedade mista (MCP). As equaes do modelo m1_mcp.gms so as


equaes que o modelo MPSGE constri quando se monta um modelo como o m1_mpsge.gms. Essas equaes representam as condies de lucro zero e de equilbrio
entre oferta e demanda determinadas pelos blocos do MPSGE, bem como a condio
de balano da renda do consumidor. As equaes de lucro zero igualam a equao de
custo unitrio de produo ao preo do bem, enquanto as equaes de equilbrio
entre oferta e demanda igualam as funes de demanda dos bens ou dos fatores ao
total ofertada dos bens ou dotao dos fatores. Deve-se notar que, tanto as funes
de custo unitrio quanto as funes de demanda so apresentadas na sua forma
calibrada pela proporo (calibrated share form), como descrito em Rutherford
(2002)4. Para verificar que a lgebra do modelo m1_mcp.gms produz os mesmos
resultados do modelo m1_mpsge.gms, abra o modelo m1_mcp.gms, na pasta
exerccios_MPSGE, e execute o modelo. Procure os resultados e compare-os com os
do modelo m1_mpsge.gms.

Bibliografia
Brooke, A., Kendrick, D., Meeraus, A., Raman, R. GAMS: a users guide. GAMS
Development Corporation, 262 p., 1998. (http://www.gams.com/)
Rutherford, T. F. Applied General Equilibrium Modeling with MPSGE as a GAMS
Subsystem: An Overview of the Modeling Framework and Syntax. Computational
Economics 14, 1999, p. 1-46.
Rutherford, T. F. Lecture Notes on Constant Elasticity Functions. University of
Colorado, November 2002. (mimeo).

Esse texto encontra-se disponvel na pasta Documentos do CD de distribuio do PAEG.

25
Gurgel, A.C. (2010) Introduo ao MPSGE e GAMS. PAEG Technical Paper No.4. Viosa: DER/UFV.