Application Center - Maplesoft

App Preview:

Interactive Macroeconomics: Section 3.5

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

3.5 Teor?as de los "ciclos reales"

3.5.1 Marco de Referencia

El concepto de los ciclos reales fue sugerida hace noventa a?os por Schumpeter en su Teor?a sobre el Desarrolo Econ?mico. Seg?n ?l, las olas de innovaci?n explicaban una parte muy importante de las fluctuaciones recurrentes de baja frecuencia.

Su visi?n tambi?n supon?a  que en el medio y largo plazos,  las imperfecciones transitorias de los mercados son mucho menos importantes que los procesos de cambio tecnol?gico. La idea es que si los precios son flexibles y toda la informaci?n sobre las decisiones de los agentes econ?micos est? disponible en el largo plazo, entonces solamente los choques tecnol?gicos o los cambios institucionales podr?an explicar las variaciones en los niveles de actividad y en la asignaci?n de recursos.

El problema con este enfoque es que no consideraba la posibilidad de desempleo, a no ser que se tratara s?lo del tipo friccional, y por lo tanto implicaba que en las recesiones la producividad de la mano de obra ser?a contrac?clica. En otras palabras, que la productividad tender?a a crecer durante las recesiones y a reducirse en las expansiones. Fue el propio Keynes quien hizo notar que  exactamente lo contrario ocurr?a en la realidad.

A pesar de la contundencia de estas observaciones,  no podemos descartar el hecho de que los cambios tecnol?gicos jueguen un papel central en la explicaci?n de lo que pasa en los ciclos econ?micos. Es as? que durante los a?os ochenta y noventa aparecieron nuevas propuestas sobre el marco de referencia para analizar el impacto de aqu?llos sobre la din?mica de las variables reales.

En este cap?tulo analizaremos dos de estos planteamientos. El primero, sugerido por Greenwald y Stiglitz, seg?n la cual los riesgos financieros que toman las empresas durante los ciclos juegan un papel similar al de los choques tecnol?gicos. Su forma de modelar la din?mica de estos riesgos permite explicar el comportamiento proc?clico de la productuvidad de la mano de obra.

Otra idea, presentada por Caballero y Hammour consiste en  sugerir que las relaciones entre las empresas y sus trabajadores var?an de una manera fundamental dependiendo de la etapa del ciclo en que se encuentren. Mientras en la fase contraccionaria la relaci?n entre empleadores y trabajadores es m?s parecida a la competencia perfecta, en la parte expansionaria del ciclo es an?loga a un monopolio bilateral.  Como veremos en su momento, esto amplifica el efecto de los choques ex?genos y explica mejor lo que ocurre con los salarios reales y la productividad de la mano de obra a lo largo del ciclo.

El lector deber? ser advertido de que ambos tipos de modelos implican una especie de circularidad seg?n la cual la tecnolog?a y las instituciones  influyen sobre el ciclo y viceversa. Para modelar esto trabajaremos con  funciones de Transferencia, lo cual requerir? de algunas herramientas adicionales a las que hemos venido usando para analizar secuencias de datos en el dominio del tiempo y de las frecuencias. Estas herramientas, y su implementaci?n en Maple 8 ser?n materia de discusi?n en la siguiente secci?n.

3.5.2 La "z-transform"

> restart;
with(plots):

with(inttrans):

with(geometry):

Warning, the name changecoords has been redefined

En los cap?tulos anteriores trabajamos con la transformaci?n de Fourier.  Aqu? vamos a hablar de un concepto un poco m?s general que nos va a dar la flexibilidad que necesitamos para analizar filtros m?s complicados. Se trata de la  z-transform.
En seguida presentaremos algunas definiciones y as acompa?aremos de sus respectivos
procedimientos en Maple 8. Como el lector recordar?, estos procedimientos, una vez definidos, pueden usarse como cualquier otro comando de Maple.

Tomemos primero  una se?al  discreta x(n) en el dominio del tiempo. Su z-transform se define como X(z) = sum(x(n)*z^(-n), n = -infinity .. infinity) .

La variable z es una variable compleja que como tal,  puede representarse como z = r*exp(I*omega) . Los valores de z para los cuales esta suma infinita existe constituyen la llamada zona de convergencia de la transformaci?n.

Un n?mero importante de las secuencias de variables macroecon?micas con las que nos encontramos cotidianamente, y ciertamente aqu?llas con las que trabajaremos en este cap?tulo,  tienen z-transforms que toman la forma de funciones racionales de z, como X(z) = (sum(b(k)*z^(-k), k = 0 .. q))/(sum(a(k)*z^(-k), k = 0 .. p)) . El procedimiento denominado "gr?fica" que se presenta a continuaci?n, permite representar los coeficientes del numerador y denominador de esta expresi?n. En este caso, el par?metro b, se refiere a la funci?n que representa al polinomio en el numerador; q, es el orden del polinomio del numerador. Los par?metros a y p corresponden al denominador. La sintaxis de este procedimiento toma como insumos a los poliniomios del numerador y denominador, respectivamente, siendo  v simplemente el parametro que corresponde a  la variable que se utiliza como ?ndice en el dominio del tiempo.

> grafica:=proc(b,q,a,p,v)
description "Grafica numerador y denominador";

plot([b,a],

v=0..10,

color=[blue,red],

thickness=2,

linestyle=[1,2],

labeldirections=[HORIZONTAL,VERTICAL],

title="Polinomios: Numerador y Denominador",

labels=["v","denominador=azul    numerador=rojo"],

labelfont=[TIMES,ITALIC,8],

titlefont=[TIMES,BOLDITALIC,11],

axesfont=[TIMES,ITALIC,8]);

end proc:

Ambos polinomios, el del numerador y denominador pueden factorizarse respectivamente, de manera que X(z) = A*(product(1-beta[k]*z^(-1), k = 1 .. q))/(product(1-alpha[k]*z^(-1), k = 1 .. p)) .  Esto significa que cualquier z-transform puede describirse, hasta un cierto factor de proporcionalidad A, por la ubicaci?n que en el plano de las variables complejas tomen  las ra?ces del numerador, beta[k] , tambi?n conocidas como zeroes; y las ra?ces del denominador, alpha[k] , llamadas poles.
Aqu? se presentan dos procedimientos, uno auxiliar del otro, que permiten graficar los
zeroes y los poles de una funci?n racional como X(z). El comando zp toma los mismos par?metros del comando "grafica".

> poly:=proc(G,v,V) local J,j;
description "Calcula el polinomio";

J:=sum(G*z^(-v),v=0..V):

j:=expand(evala(J*z^V)):

end proc:

> zp:=proc(b,q,a,p,v) local A,B,zeros,poles,
grafica_zeros, grafica_poles, unitario;

description "Genera grafica zero-pole";


B:=poly(b,v,q);

A:=poly(a,v,p);


zeros:=[evalf(solve(B=0,z))]:

poles:=[evalf(solve(A=0,z))]:


grafica_zeros:=complexplot(zeros,

style=point,

symbol=circle,

symbolsize=20,

labeldirections=[HORIZONTAL,VERTICAL],

title="Grafica zero-pole",

labels=["reales","imaginarios"],

titlefont=[TIMES,BOLDITALIC,11],

axesfont=[TIMES,ITALIC,8],

labelfont=[TIMES,ITALIC,8]):


grafica_poles:=complexplot(poles,

style=point,

symbol=cross,

symbolsize=20):

display(grafica_zeros,grafica_poles):


circle(c1,

[point(AA,1,0), point(BB,0,1), point(CC,-1,0)],'centername'=O1):

center(c1), coordinates(center(c1)):


unitario:=draw(c1,

linestyle=2,

scaling=constrained,

view=[-1.5..1.5,-1.5..1.5],

axes=normal):

display(unitario,grafica_zeros,grafica_poles);


end proc:

La transformaci?n de Fourier de la secuencia x(n) se obtiene sustituyendo  z = exp(I*2*Pi*w) en la z-transform, de manera que X(w) = A*(product(1-beta[k]*exp(I*2*Pi*w), k = 1 .. q))/(product(1-alpha[k]*exp(-I*2*Pi*w), k = 1 .. p)) . De aqu? podemos derivar el espectro y la fase como lo hicimos en los cap?tulos anteriores.

> ft:=proc(b,q,a,p,v) local A,B,H,F_H,
modulo,fase,grafica_modulo;

description "Grafica espectro y fase";


B:=sum(b*z^(-v),v=0..q):

A:=sum(a*z^(-v),v=0..p):


H[1]:=w->subs(z=exp(I*2*Pi*w),B):

H[2]:=w->subs(z=exp(I*2*Pi*w),A):

F_H:=w->H[1](w)/H[2](w):

modulo:=w->abs(evalf(F_H(w))):


grafica_modulo:=plot(modulo(w),w=0..0.5,

labeldirections=[HORIZONTAL,VERTICAL],

title="Modulo de la Transformacion de Fourier",

labels=["ciclos por periodo fundamental = 1",

"modulo"],

color=blue,

linestyle=1,

thickness=3,

titlefont=[TIMES,BOLDITALIC,11],

axesfont=[TIMES,ITALIC,8],

labelfont=[TIMES,ITALIC,8]):



display(grafica_modulo):


end proc:

Si pensamos en x(n) como un fitro, la funci?n de impulso unitario-respuesta nos mostrar?a lo que sucede con la se?al de salida, y(n) ,  si la se?al de entrada, u(n) = 1 , donde  max(p, q) < n , y 0 para los dem?s valores de n. El procedimiento ir(b,q,a,p,v,T), produce la gr?fica de impulso-respuesta  para los polinomios con los par?metros usuales y donde T es el n?mero de periodos que el lector quiera simular.

> ir:=proc(b,q,a,p,v,T) local Q,i,y,u,Y,
U,grafica_U,grafica_Y;

Q:=max(p,q):


for i from 1 by 1 to Q do  

y[i]:=0:

u[i]:=0

end do:


for i from Q+1 by 1 to T do

u[i]:=1:

end do:


for i from Q+1 to T do

y[i]:=-sum(a*y[i-v],v=1..p)+sum(b*u[i-v],v=0..q):

end do:


Y:=array([seq(y[i],i=1..T)]);

U:=array([seq(u[i],i=1..T)]);

grafica_Y:=listplot(Y,

thickness=2,

linestyle=2,

color=red,

labeldirections=[HORIZONTAL,VERTICAL],

title="Respuesta Unitaria",

labels=["Unidades de tiempo","y=rojo   u=azul"],

labelfont=[TIMES,ITALIC,8],

titlefont=[TIMES,BOLDITALIC,11],

axesfont=[TIMES,ITALIC,8]):


grafica_U:=listplot(U,

thickness=2,

linestyle=1,

color=blue):


display(grafica_Y,grafica_U);

end proc:


Equipados con estas rutinas, conviene tomar un ejemplo para mostrar la manera de emplearlas. Usando la misma notaci?n de los p?rrafos anteriores, definamos a la funci?n racional
x(v) con el numerador dado por el polinomio b(v) y el denominador por a(v) .

> a:=(v)->piecewise(v>=0,alpha^v,0):
b:=(v)->piecewise(v>=0,beta^v,0):


alpha:=0.6:

beta:=0.3:


Aunque no es necesario, ser? ?til interpretar a la funci?n racional  x(v) como un filtro lineal que se relacionar? con alguna se?al de entrada mediante la operaci?n de convoluci?n. Primero, produciremos la gr?fica que nos muestra el valor de los coeficientes del numerador y denominador del filtro.

> grafica(b(v),10,a(v),10,v);

[Plot]

La gr?fica zero-pole representa a los zeroes con un c?rculo "O", y a los poles con una cruz "+". Como referencia, trazaremos una circunferencia de radio igual a la unidad a la que nos referiremos con el nombre de c?rculo unitario.

> zp(b(v),10,a(v),10,v);

[Plot]

En un mismo sistema de ejes, y no por otra cosa sino para ahorrar espacio, presentamos al m?dulo y a la fase de la transformaci?n de Fourier del filtro x .

> ft(b(v),10,a(v),10,v);

[Plot]

Por ?ltimo aparece la funci?n de impuslso unitario-respuesta donde el escal?n de la se?al de entrada se da en el periodo 10. La se?al de salida se representa en l?nea punteada y color rojo.

> ir(b(v),10,a(v),10,v,20);

[Plot]

> alpha:='alpha':
beta:='beta':

3.5.3 C?mo interpretar una gr?fica "zero-pole"

La gr?ficas de los p?rrafos anteriores permiten conocer las propiedades m?s importantes de los filtros expresables como cocientes de polinomios. La demostraci?n detallada de las propiedades que se enumeran abajo rebasa los alcances de este libro.  Sin embargo el lector interesado podr? consultarlas en la abundante literatura disponible sobre procesamiento de se?ales digitales .

Sabemos que se?al es estable si sum(abs(x(n)), n = -infinity .. infinity) < infinity .  Esto es equivalente a que sum(abs(x(n))*z^(-n), n = -infinity .. infinity) < infinity para abs(z) = 1 . Ello significa que la zona de convergencia de la z-transform debe incluir al c?rculo unitario cuando el sistema es estable.

Sabemos que el m?dulo de la transformaci?n de Fourier del filtro x  puede expresarse como abs(X(w)) = abs(A)*(product(abs(1-beta[k]*exp(-I*2*Pi*w)), k = 1 .. q))/(product(abs(1-alpha[k]*exp(-I*2*Pi*w)), k = 1 .. p)) .  Para cada t?rmino en el numerador se cumple que abs(1-beta[k]*exp(-I*2*Pi*w)) = abs(exp(I*2*Pi*w)-beta[k]) , donde abs(exp(I*2*Pi*w)-beta[k]) es la distancia que existe entre un zero donde z = beta[k] y el c?rculo unitario donde  z = exp(I*2*Pi*w) .
De igual forma, cada t?rmino en el denominador cumple
abs(1-alpha[k]*exp(-I*2*Pi*w)) = abs(exp(I*2*Pi*w)-alpha[k]) , que es la magnitud del vector que va desde el pole alpha[k] hasta el c?rculo unitario.
Tomemos ahora un
zero o un pole cualesquiera en la gr?fica de zero-pole. Tracemos un vector que va del origen al zero o al pole. El ?ngulo que forman este vector y el eje de los n?meros reales corresponde a la frecuencia del harm?nico que estar?amos analizando.
Ahora bien, mientras mayor sea la distancia entre el
zero y el c?rculo unitario, mayor ser? el m?dulo de la transformaci?n de Fourier para ese harm?nico. Lo opuesto ocurre con un pole. Mientras m?s alejado est? del c?rculo unitario, mayor ser? la contribuci?n del harm?nico en el espectro.

El an?lisis de la fase es similar. Si suponemos que A es un n?mero real y positivo, la fase correspondiente al harm?nico w est? dada por phi(w) = (sum(arg(1-beta[k]*exp(-I*2*Pi*w)), k = 1 .. q))-(sum(arg(1-alpha[k]*exp(-I*2*Pi*w)), k = 1 .. p)) . Por lo tanto, phi(w) es la suma de las fases asociadas con los t?rminos 1-beta[k]*exp(-I*2*Pi*w) menos la suma de las fases asociadas con los t?rminos 1-alpha[k]*exp(-I*2*Pi*w) .
Dado que
1-beta[k]*exp(-I*2*Pi*w) = exp(-I*2*Pi*w)*(exp(I*2*Pi*w)-beta[k]) , entonces arg(1-beta[k]*exp(-I*2*Pi*w)) = arg(exp(I*2*Pi*w)-beta[k])-w , o bien theta[1]-w , donde theta[1] es el ?ngulo subtendido por el vector que va del zero donde z = beta[k] al c?rculo unitario.  Ocurre algo similar con los poles.
As? pues, cuando el
pole est? cerca del c?culo unitario la fase disminuye r?pidamente cuando los harm?nicos est?n cerca del pole. Lo opuesto ocurre con los zeroes.

Asociado al concepto de fase, est? el de retraso de grupo o  group delay. Est? definido por tau(w) = -(diff(phi(w), w)) .  Tomando los resultados del p?rrafo anterior se concluye que tau(w) es grande y positiva cerca de un pole y grande y negativa cerca de un zero.

Un filtro que tiene a  todos sus poles y zeroes dentro del c?rculo unitario se conoce como filtro de fase m?nima, ya que puede representarse de manera ?nica por el m?dulo de la transformaci?n de Fourier.

Por ?ltimo, conviene revisar con m?s detealle lo que siginifcar?a suponer que x sea un filtro del tipo LTI. Llamaremos u[t] a la se?al de entrada en el dominio del tiempo mientras  y[t] es la se?al de salida. Relacionaremos a ambas mediante la operaci?n de convoluci?n y[t] = sum(x[v]*u[t-v], v = -infinity .. infinity) . En este caso es posible demostrar que la trayectoria de la se?al de salida puede representarse mediante una ecuacion en diferencias de coeficientes constantes y de la forma  y[t]+(sum(a[k]*y[t-k], k = 1 .. p)) = sum(b[k]*u[t-k], k = 1 .. q) .

3.5.4 Ciclos por choques tecnol?gicos

Consideremos ahora una econom?a en la que la funci?n producci?n es del tipo Cobb-Douglass, donde el PIB, Y[t] ,  depende de la cantidad de bienes de capital utilizados K[t] , y de la tecnolog?a F[t] , siendo esta ?ltima una variable aleatoria. Supondremos, para simplificar la explicaci?n, que la oferta de mano de obra es constante e igual a 1 a lo largo del ejemplo.

> Y[t]:=F[t]*K[t]^alpha;

Y[t] := F[t]*K[t]^alpha

Supondremos que un individuo nacido en el periodo t ofrece dicha unidad de trabajo en ese periodo, a cambio de la cual obtiene un ingreso dado por el salario omega[t] . Luego, este individuo decide optimizar su bienestar descrito por la funci?n de utilidad U, decidiendo cu?nto consumir, C, y, por lo tanto, cu?nto ahorrar.

> U:=C->ln(C[t])+ln(C[t+1])/(1+theta);

U := proc (C) options operator, arrow; ln(C[t])+ln(C[t+1])/(1+theta) end proc


Con la restricci?n presupuestal,
C[t+1] = (1+r)*(omega[t]-C[t]) , la cual sustituimos en la propia funci?n de utilidad.

> u:=subs(C[t+1]=(1+r)*(omega[t]-C[t]),U(C));

u := ln(C[t])+ln((1+r)*(omega[t]-C[t]))/(1+theta)

El individuo optimizador consumir? en el periodo t una cantidad tal que satisfaga la condici?n diff(U(C), C[t]) = 0 ,

> solve(diff(u,C[t])=0,C[t]);

omega[t]*(1+theta)/(2+theta)

y por lo tanto ahorrar?

> S[t]:=Y[t]-%;

S[t] := F[t]*K[t]^alpha-omega[t]*(1+theta)/(2+theta)

Sabemos que en el equilibrio debe cumplirse que:

> omega[t]:=(1-alpha)*Y[t];

omega[t] := (1-alpha)*F[t]*K[t]^alpha

y supondremos que  el capital disponible en el siguiente periodo es

> K[t+1]:=factor(S[t]);

K[t+1] := F[t]*K[t]^alpha*(1+alpha+alpha*theta)/(2+theta)

Si tomamos el logaritmo de ambos lados de la expresi?n, tendremos una ecuaci?n de la forma k[t+1] := f[t]+alpha*k[t]+g , donde k[t] y alpha[t] son el logaritmo natural de K[t] y A[t] respectivamente. Por su parte, g = log((1+alpha+alpha*theta)/(2+theta)) .

Ahora bien, consideremos el caso en el que f[t] = epsilon[t]+beta*epsilon[t-1] donde epsilon[t] es un ruido blanco .

> k[t+1] := f[t]+alpha*k[t]+g:
f[t]:=epsilon[t]+beta*epsilon[t-1]:

k[t+1];

epsilon[t]+beta*epsilon[t-1]+alpha*k[t]+g


Entonces,
y[t]-alpha*y[t-1] = epsilon[t]+beta*epsilon[t-1]+g , de manera que el polinomio del numerador y del denominador en la z-transform pueden expresarse como sigue para valores arbitrarios de alpha y beta :

> alpha:=0.5:
beta:=0.5:



b:=(v)->piecewise(v>0,1,0)+

piecewise(v>0.9,beta-1,0)+

piecewise(v>1.9,-beta,0):


a:=(v)->piecewise(v>0,1,0)+

piecewise(v>0.9,-alpha-1,0)+

piecewise(v>1.9,+alpha,0):

> grafica(b(v),2,a(v),1,v);

[Plot]

> zp(b(v),2,a(v),2,v);

[Plot]

> ft(b(v),2,a(v),2,v);

[Plot]

> ir(b(v),2,a(v),2,v,20);

[Plot]

Las cuatro gr?ficas anteriores nos dan una idea muy completa de las propiedades din?micas del modelo. El hecho de que el zero y el pole queden en el origen se refleja supone que por s? mismo el modelo no produce fluctuaciones peri?dicas. De hecho, el espectro del filtro es similar al de un ruido blanco. A su vez, al estar tanto el zero como el pole dentro del c?rculo unitario, sabemos que el modelo corresponde a un filtro de fase m?nima.

En consecuencia, solamente si los cambios tecnol?gicos tienen un comportamiento que pueda representarse mediante la superposici?n de ondas peri?dicas, tendremos un espectro que no sea plano como aqu?.

3.5.5 Ciclos por costos de bancarrota

Como se dijo en la parte introductoria de este cap?tulo, los modelos de ciclos econ?micos basados en los supuestos de mercados perfectos y completos tienen el inconveniente de predecir que los salarios reales son contrac?clicos. Greenwald y Stiglitz sugieren que a lo largo de los ciclos econ?micos las empresas internalizan el costo contingente de una bancarrota, o por lo menos, los asociados con la reducci?n en el tama?o de la empresa. La idea es que cuando la econom?a crece, las empresas van acumulando contingencias. Por ejemplo, al tener m?s empleados, tambi?n aumentan los costos acumulados de despido. Eso provoca que, despu?s de un periodo de r?pido aumento en los niveles de actividad,  los propios empresarios est?n dudosos de la idoneidad de continuar creciendo a la misma velocidad. La consecuencia obvia en este caso es que el ritmo de expansi?n del empleo dismiuir? gradualmente.

Para modelar este problema, tomemos primero como referencia al caso en el cual el acervo de capital es fijo durante el periodo relevante.

> Y:='Y':
L:='L':

pi:='pi':

w:='w':

P:='P':

omega:='omega':

alpha:='alpha':

f:='f':

epsilon:='epsilon':


Y[t]:=L[t]^(1-alpha);

Y[t] := L[t]^(1-alpha)

Supondremos que las empresas tratan de maximizar los beneficios, pi , escogiendo el nivel de mano de obra id?neo.

> pi:=P*Y[t]-w[t]*L[t];

pi := P*L[t]^(1-alpha)-w[t]*L[t]

Suponiendo que la funci?n de producci?n es c?ncava hacia abajo,  la demanda de trabajo se obtiene cumpliendo la condici?n de primer orden:

> solve(diff(pi,L[t])=0,{L[t]}):
assign(%);

L[t];

exp(-ln(-w[t]/(P*(-1+alpha)))/alpha)

Definamos a omega como el salario real. Despu?s calculemos la elasticidad salario real de la demanda de trabajo.

> w[t]:=omega[t]*P:
omega[t]*diff(L[t],omega[t])/L[t];

-1/alpha

En este escenario de referencia,  esta elasticidad es negativa. Esto significa que al caer el empleo,  si la demanda de trabajo no se desplaza, el salario real aumenta. En teor?a esto se da porque hemos supuesto que la demanda de trabajo no se desplaza ya que el acervo de capital est? fijo y no hemos contemplado ning?n tipo de choque tecnol?gico. En la pr?ctica, subrayan Greenwald y Stiglitz, esto no ocurre.  

De la secci?n en la que hablamos de los ciclos por choques tecnol?gicos  surgir?a una explicaci?n basada en la noci?n de que las recesiones son el resultado de cambios en la productividad de la mano de obra, es decir, de desplazamientos de la funci?n producci?n a partir de cambios tecnol?gicos tal y como vimos en los p?rrrafos anteriores.

Otra idea, seg?n hemos venido delineando en esta secci?n, que permite entender eventuales desplazamientos en la demanda de trabajo a partir de  las decisiones de producci?n y empleo tomadas por administradores que son adversos al riesgo de bancarrota.. Una posible especificaci?n de este costo estar?a dada por R = w[t]*(product(L[t-v]^h(v), v = 1 .. p)) ,  de tal manera que la funci?n de beneficios queda ahora como pi = P*Y[t]-w[t]*L[t]-R[t] .

> Y:='Y':
F:='F':

L:='L':

pi:='pi':

w:='w':

omega:='omega':

alpha:='alpha':

beta:='beta':

h:='h':

b:='b':

P:='P':


Y[t]:=F[t]*L[t]^(1-alpha):

R[t]:=L[t]*product(L[t-v]^h(v),v = 1..p):

pi:=P*Y[t]-w[t]*R[t];

pi := P*F[t]*L[t]^(1-alpha)-w[t]*L[t]*(product(L[t-v]^h(v), v = 1 .. p))

Consideraremos que cuando 0 < sum(h[v], i = 1 .. p) , los costos esperados de bancarrota efectivamente operan como un impuesto adicional a la n?mina, el cual se exacerba si la econom?a est? mostrando niveles particularmente altos de empleo.

El ejercicio de optimizaci?n que resuelven las empresas es el ya conocido donde aqu?llas buscan  maximizar los beneficios, pi , escogiendo el nivel de mano de obra id?neo.

> solve(diff(pi,L[t])=0,{L[t]}):
assign(%);

L[t]:

Si expresamos el resultado en logaritmos,  obtenemos la siguiente expresi?n:

> simplify(log(L[t]));

ln((-w[t]*(product(L[t-v]^h(v), v = 1 .. p))/(P*F[t]*(-1+alpha)))^(-1/alpha))

La cual podemos reescribir como -alpha*l[t] = -ln(1-alpha)+ln(w[t]/P)+(sum(h[v]*l[t-v], v = 1 .. p))-f[t] , donde l[t] es el logaritmo de la demanda de mano de obra, omega[t] son los salarios reales y f[t] el logaritmo de los choques tecnol?gicos.

Para cerrar el modelo supondremos una oferta de trabajo de la forma omega[t] = kappa*l[t] . El nivel de empleo de equilibrio se obtiene a continuaci?n:

> solve(l[t]- (1/alpha)*ln(1-alpha)+
(1/alpha)*(kappa*l[t])+

(1/alpha)*sum(h[v]*l[t-v],v = 1 .. p)-

(1/alpha)*f[t]=0,{l[t]}):

assign(%);

l[t];

(ln(1-alpha)-(sum(h[v]*l[t-v], v = 1 .. p))+f[t])/(alpha+kappa)

En lo relativo al comportamiento del cambio tecnol?gico mantendremos la misma especificaci?n de la secci?n anterior. De esta forma, la expresi?n siguiente representa el comportamiento del nivel de empleo en cada periodo t .

> f[t]:=epsilon[t]+beta*epsilon[t-1]:
simplify(l[t]);

(ln(1-alpha)-(sum(h[v]*l[t-v], v = 1 .. p))+epsilon[t]+beta*epsilon[t-1])/(alpha+kappa)

El poliniomio del numerador de la z-transform que corresponde a esta ecuaci?n en diferencias de coeficientes constantes es, por lo tanto, el siguiente:

> b:=(v)->piecewise(v>0,1,0)+
piecewise(v>0.9,beta-1,0)+

piecewise(v>1.9,-beta,0):

En cuanto al polinomio del denominador presentaremos dos casos. El primero, donde la secuencia h[v] puede modelarse con una funci?n exponencial, y el segundo, donde permitimos que dicha secuencia oscile, si bien el peso relativo de los coeficientes vaya disminuyendo a medida que v aumenta.

Como veremos, esta distinci?n tiene consecuencias muy importantes sobre el tipo de harm?nicos que estar?n presentes en la secuencia de salida.

Caso 1. Suponemos que h[v] = sigma^v

Dado que pensaremos que  h[v] = sigma^v , el poliniomio del denominador ser?:

> a:=(v)->piecewise(v>0,alpha+kappa,0)
+piecewise(v>1,sigma^(v)-alpha-kappa,0):

Esta especificaci?n implica que para el valor m?s peque?o de sigma con el que trabajaremos:  1/15 , la suma  0 < sum(h[v], v = 2 .. 10) , es decir, que estamos pensando efectivamente en un modelo de costos de bancarrota.

> evalf[2](sum((1/15)^v,v=2..10));

0.48e-2


Adem?s, hemos supuesto que:

> kappa:=0.2:
alpha:=0.5:

beta:=0.3:

Aplicando las herramientas que construimos en la primera parte del cap?tulo, las propiedades din?micas del modelo se describen en t?rminos de las siguientes cuatro gr?ficas. Hay que advertir que todas las gr?ficas siguientes est?n animadas para capturar el efecto de cambios en el valor de sigma en el intervalo  [1/15, 9/15] .

> for i from 1 by 1 to 9 do
sigma:=i/15:

figura[i]:=grafica(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]

> for i from 1 by 1 to 9 do
sigma:=i/15:

figura[i]:=zp(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);


[Plot]

> for i from 1 by 1 to 9 do
sigma:=i/15:

figura[i]:=ft(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]

> for i from 1 by 1 to 9 do
sigma:=i/20:

figura[i]:=ir(b(v),2,a(v),10,v,50):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]


Destaca lo siguiente:

El hecho de que quienes toman las decisiones de producci?n y empleo consideren a los costos de bancarrota como los modelamos aqu? genera un filtro donde los harm?nicos de baja frecuencia pierden importancia en el espectro, vis ? vis los harm?nicos de altas frecuencias. Como es de esperarse tambi?n, cuando sigma toma valores muy bajos, el modelo converge al presentado en la secci?n anterior, donde las caracter?sticas del ciclo dependen exclusivamente del proceso que describe a los choques tecnol?gicos epsilon .

El filtro que resulta, es de fase m?nima ya que todos los zeroes  y poles est?n dentro del c?rculo unitario.

El filtro es estable, seg?n se desprende de la gr?fica de impulso-unitario respuesta.

Caso 2. Suponemos que h[v] = sigma^v*cos(v-pi)

En virtud de que ahora supondremos que  h[v] = sigma^v*cos(v-pi) , sustituiremos el poliniomio del denominador por:

> a:=(v)->piecewise(v>0,alpha+kappa,0)
+piecewise(v>1,cos(v-Pi)*sigma^(v)-alpha-kappa,0):

En este caso otra vez tendremos que, 0 < sum(h[v], v = 2 .. 10) :

> evalf(sum(cos(v-Pi)*sigma^v,v=2..10));

.1864815816


Nuevamente usaremos las cuatro gr?ficas que aparecen a continuaci?n para evaluar  las propiedades din?micas del filtro generado por el modelo de bancarrotas. Estas gr?ficas tambi?n son
animadas para el mismo rango de valores de sigma de la subsecci?n anterior.

> for i from 1 by 1 to 9 do
sigma:=i/15:

figura[i]:=grafica(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]

> for i from 1 by 1 to 9 do
sigma:=i/15:

figura[i]:=zp(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);


[Plot]

> for i from 1 by 1 to 9 do
sigma:=i/15:

figura[i]:=ft(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]

> for i from 1 by 1 to 9 do
sigma:=i/20:

figura[i]:=ir(b(v),2,a(v),10,v,50):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]


Destaca lo siguiente:

El  filtro que usamos aqu? permite la amplificaci?n de  harm?nicos de frecuencias intermedias y altas frecuencias. Lo que es interesante es que cuando los poliniomios del denominador alternan entre valores positivos y negativos es posible empezar a ver harm?nicos de baja frecuencia. Por lo tanto, la naturaleza de las fluctuaciones que observemos puede depender crucialmente de la forma en que los agentes econ?micos modelen los costos de bancarrota.

El filtro que resulta para el rango de par?mentos con que trabajamos, es de fase m?nima ya que todos los zeroes  y poles est?n dentro del c?rculo unitario.

El filtro es estable, seg?n se desprende de la gr?fica de impulso-unitario respuesta.

3.5 6 Ciclos de "transformaci?n fundamental"

La experiencia parece sugerir que cuando la actividad econ?mica entra en una fase de expansi?n, ?sta parece acelerarse inicialmente, pero poco a poco se desacelera hasta que se alcanza la cresta.  Asimismo,  cuando la econom?a se contrae, su ca?da tambi?n tiende a acelerarse primero, pero se suaviza a medida que se acerca al  fondo.

Una hip?tesis muy interesante es la plateada por Caballero y Hammour  quienes sugieren  que la forma concreta en que los factores de la producci?n se relacionan entre s? cambia, dependiendo de la fase del ciclo en que se encuentren.

Digamos que partimos de una situaci?n donde el nivel de actividad se encuentra sobre su tendencia de largo plazo. En ese punto tanto empresas como trabajadores se contratan en un ambiente competitivo. Esto quiere decir que el salario es igual al valor del producto marginal de la mano de obra.

Sin embargo, a medida que las empresas experimentan incrementos en la demanda tienen que "salir" al mercado por m?s trabajadores, raz?n por la cual el poder de mercado de los ?ltimos aumenta. Por este motivo uno esperar?a que el salario de equilibrio se incremente por encima del valor del producto marginal.

En la fase de contracci?n, por su parte, el poder de mercado de los patrones aumenta y podr?amos ver lo opuesto, es decir, que  el salario se encontrara por debajo del valor de su producto marginal. A este cambio en la estructura de la econom?a seg?n la fase del ciclo es lo que se conoce en la literatura como transformaci?n fundamental.

Podr?amos modelar esta hip?tesis imponiendo algunas restricciones a las ecuaciones con las que estuvimos trabajando en la secci?n anterior.

Definamos a  l[t-1]-(sum(h[v]*l[t-v], v = 2 .. p)) , como la brecha que existe entre el nivel de empleo observado en el periodo t-1 y una cierta medida de la tendencia del empleo en el largo plazo modelada como un promedio m?vil. De esta manera, cuando el nivel de empleo est? por encima de sus valores de tendencia, este t?rmino operar? como una especie de impuesto a las empresas. Por el contrario, si el nivel de empleo est? por debajo de la tendencia de largo plazo, ser? como un subsidio.

Adem?s de esta restricci?n, ser? razonable suponer que la productividad marginal de la mano de obra es decreciente, por lo que alpha < 1 .

La funcion  que propondr?amos para describir la din?mica del empleo, l[t] , es una variante de la especificaci?n del modelo de costos de bancarrota como aparece a continuaci?n:

> alpha:='alpha':
kappa:='kappa':

theta:='theta':

kappa:='kappa':

a:='a':

f:='f':

h:='h':

l:='l':

C:='C':

A:='A':


solve(l[t]- (1/alpha)*ln(1-alpha)+

(1/alpha)*(kappa*l[t])+

(1/alpha)*A*(l[t-1]-sum(h[v-1]*l[t-v],v = 2 .. p))-

(1/alpha)*f[t]=0,{l[t]}):

assign(%);

l[t];



-(-ln(1-alpha)+A*l[t-1]-A*(sum(h[v-1]*l[t-v], v = 2 .. p))-f[t])/(alpha+kappa)


El polinomio del numerador de la
z-transform de este modelo es el mismo de la secci?n previa. Por su parte, el polinomio del denominador de la correspondiente es:

> a:=(v)->piecewise(v>=0,alpha+kappa,0)+
piecewise(v>=1,A-alpha-kappa,0)-

piecewise(v>=2,A*(sigma^(v-1))+A,0):

Supondremos en nuestras simulaciones que ,  sum(h[v-1], v = 2 .. 10) = 1 , lo cual significa que el valor que se toma como referencia para el nivel de empleo de largo plazo es una especie de promedio m?vil. El ejemplo que se presenta a continuaci?n asigna los siguientes valores a los par?metros kappa, A, theta :

> alpha:=0.5:
kappa:=0.2:

sigma:=0.5:

Si suponemos que h[v] = sigma^v , veremos que se cumple la restricci?n sobre la suma de estos coeficientes:

> evalf[3](sum(sigma^v,v=1..9));

.998


Las cuatro gr?ficas que siguen nos sugieren que las restricciones que implica el modelo de
transformaci?n fundamental para valores de A entre [1/50, 9/50] . el lector

> for i from 1 by 1 to 9 do
A:=i/30:

figura[i]:=grafica(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);

[Plot]

> for i from 1 by 1 to 9 do
A:=i/30:

figura[i]:=zp(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);


[Plot]

> for i from 1 by 1 to 9 do
A:=i/30:

figura[i]:=ft(b(v),2,a(v),10,v):

end do:


display([seq(figura[i],i=1..9)],insequence=true);



[Plot]

> for i from 1 by 1 to 9 do
A:=i/30:

figura[i]:=ir(b(v),2,a(v),10,v,50):

end do:


display([seq(figura[i],i=1..9)],insequence=true);


[Plot]

El m?dulo de la Transformaci?n de Fourier registra valores muy similares para en todas las frecuencias cuando A es cercano a cero. En otras palabras, el modelo de hecho degenera en el caso simple de ciclos por choques tecnol?gicos.

A medida que A aumenta de valor, y mentras el filtro sea estable, vemos que tienden a aumentar los componentes de alta frecuencia, se manttiene la importancia absoluta, si bien no la relativa, de los harm?nicos de bajas frecuencias y desaparecen los de frecuencias intermedias.

Aunque se observa cierto desfasamiento, el hecho de que los zeroes y poles se encuentren dentro del c?rculo unitario para todos los valores de A, nos sugiere que se trata de un filtro de fase m?nima.

3.5 7 Usando el modelo

Pregunta 1. ?C?mo pueden generarse ondas peri?dicas de baja frecuencia en el modelo de choques tecnol?gicos?


La din?mica del modelo de choques tecnol?gicos depende crucialmente de la forma que le demos al polinomio del numerador de la
z-transform. Si lo que queremos es aumentar el peso relativo de los harm?nicos de bajas frecuencias, podemos usar un filtro del tipo del tri?ngulo que presentamos en el primer cap?tulo de esta secci?n.
As? pues, conservamos la misma especificaci?n del polinomio
a[v] , y remplazamos al polinomio b[v] por el filtro por uno de tipo low-pass.

> b:=v->(1/3)*(piecewise(v>0 and v<=3,abs(-1-(v-3)/3),0)+
piecewise(v>3 and v<6,abs(-1+(v-3)/3),0)):


a:=(v)->piecewise(v>0,1,0)+

piecewise(v>0.9,-alpha-1,0)+

piecewise(v>1.9,+alpha,0):


alpha:=0.5:

> grafica(b(v),10,a(v),2,v);

[Plot]


La gr?fica
zero-pole muestra, en primer lugar la aparici?n de nuevos  zeroes, adem?s del que ten?amos en el origen. Adem?s, estos zeroes se encuentran sobre el c?rculo unitario por lo que filtran el harm?nico correspondiente, en este caso en las frecuencias de alrededor de 0.3 y 0.6 ciclos por periodo fundamental.

> zp(b(v),10,a(v),2,v);

[Plot]


La
transformaci?n de Fourier, confirma esta observaci?n. Adicionalmente, muestra que el m?dulo en las frecuencias m?s bajas tiene una magnitud de 2.. Esto significa que el filtro no s?lo elimina los componentes de m?s alta frecuencia, sino que amplifica a los harm?nicos de baja frecuencia.

> ft(b(v),10,a(v),2,v);

[Plot]

> ir(b(v),10,a(v),2,v,30);

[Plot]

M?s adelante veremos que filtros como este son necesarios para  explicar la presencia de ciclos como los que arroja la experiencia disponible. Sin embargo, hasta aqu? s?lo hemos elaborado sobre algunos supuestos que tienen que ver exclusivamente con la teor?a de los ciclos reales.  Sin embargo, la pregunta 3 de este cap?tulo nos dar? otra oportunidad de revisar este tema nuevamente haciendo una referencia m?s amplia a temas tales como contratos, fallas de mercado asociadas con la degradaci?n en la calidad de la informaci?n ass? como los propios choques tecnol?gicos.

Pregunta 2. ?Como se comportan los salarios en el modelo de costos de bancarrota?


Para contestar esta pregunta decidimos  simplificar el modelo m?s general que presentamos en el cuerpo de este cap?tulo, suponiendo que la funci?n de beneficios puede escribirse como
pi = P*F[t]*L[t]^(1-alpha)-w[t]*L[t]*(1+tau*L[t-1]) . Esto resulta de colapsar la expresi?n L[t]*(product(L[t-v]^h(v), v = 1 .. p)) en L[t]*(1+tau*L[t-1]) , con 0 < tau .

> Y:='Y':
F:='F':

L:='L':

pi:='pi':

w:='w':

t:='t':

tau:='tau':

omega:='omega':

alpha:='alpha':

beta:='beta':

a:='a':

b:='b':

P:='P':


Y[t]:=F[t]*L[t]^(1-alpha):

R[t]:=L[t]*(1+tau*L[t-1]):

pi:=P*Y[t]-w[t]*R[t];

pi := P*F[t]*L[t]^(1-alpha)-w[t]*L[t]*(1+tau*L[t-1])

Con esto en mente, primero resolvemos la demanda de trabajo, y luego presentamos dos ejercicios.

> solve(diff(pi,L[t])=0,{L[t]}):
assign(%);

L[t];

exp(-ln(-w[t]*(1+tau*L[t-1])/(P*F[t]*(-1+alpha)))/alpha)

Ahora bien, para un nivel de empleo dado en el periodo t, L[t] = 1 ,  podemos encontrar la relaci?n que se da entre el salario real omega[t] y el empleo en el periodo anterior L[t-1] .

> w:='w':
solve(L[t]=1,{w[t]}):

assign(%);

omega[t]:=w[t]/P;

omega[t] := -F[t]*(-1+alpha)/(1+tau*L[t-1])


Definamos a
rho[t] = 1/L[t-1] , que ser? un indicador del empleo relativo y, por lo tanto, de la situaci?n del ciclo econ?mico. Si rho aumenta, es porque estamos en una fase de expansi?n.
La elasticidad del salario real al
ciclo, definida como (diff(log(omega[t]), rho[t]))*rho[t] , es siempre positiva de manera que los salarios reales son proc?clicos, lo cual es consistente con la evidencia emp?rica. Adicionalmente, cabe apuntar que el modelo sugiere que esta elasticidad es decreciente.

> simplify(diff(log(subs(L[t-1]=1/rho[t],omega[t])),rho[t])*(rho[t]));

tau/(rho[t]+tau)

Pregunta 3. ?C?mo modelar?a un filtro que genere ciclos similares a los que tiene la econom?a norteamericana?

Algunos cap?tulos atr?s calculamos la transformaci?n de Fourier de la secuencia de desviaciones del PIB de los Estados Unidos con respecto a una tendencia. Este c?mputo lo repetimos aqu? para facilitar la comparaci?n de resultados.

> with(LinearAlgebra):

anos:=ImportVector("c:\\Documents and Settings\\Alejandro Reynoso\\My Documents\\areynoso\\NBER\\Nuevo Libro\\datos_PIBUSA\\anos.out"):

pib:=ImportVector("c:\\Documents and Settings\\Alejandro Reynoso\\My Documents\\areynoso\\NBER\\Nuevo Libro\\datos_PIBUSA\\pib.out"):


lpib:=Matrix([seq([log(pib[i])],i=1..Dimension(pib))]):

t:=Matrix([seq([1,i],i=1..Dimension(pib))]):


beta:=Multiply(MatrixInverse(Multiply(Transpose(t),t)),Multiply(Transpose(t),lpib)):


npib:=lpib-Multiply(t,beta):


y_r:=array([seq(npib[i,1],i=1..Dimension(pib))]):

y_i:=array([seq(0,i=1..Dimension(pib))]):


FFT(6,y_r,y_i):


p_y:=array([seq(abs(y_r[i]+I*y_i[i])^2,i=1..32)]):

listplot(p_y,

color=blue,

thickness=1,

linestyle=1,

labeldirections=[HORIZONTAL,VERTICAL],

title="Espectro del PIB de Estados Unidos",

labels=["ciclos por periodo de 64 observaciones","modulo"],

titlefont=[TIMES,BOLDITALIC,11],

axesfont=[TIMES,ITALIC,8],

labelfont=[TIMES,ITALIC,8]);

[Plot]

En su momento vimos que el modulo de la transformaci?n de Fourier registraba valores significativos en frecuencias de 10, 5, 4,y 3 ciclos cada 64 a?os. Esto implicaba harm?nicos de longitud de onda de 6,  12, 16 y 21 a?os, aproximadamente. Tambi?n resaltaba el hecho de que no parece haber un peso importante de los ciclos m?s cortos, como los de 3 y 4 a?os.
Para encontrar el polinomio de la
z-transform que mejor represente el comportamiento del PIB, el lector puede recurrir a programas de c?mputo especializados en procesamiento de se?ales o de Econometr?a.
Si los datos disponibles est?n en el dominio del tiempo, la respuesta se encuentra en el modelo
ARMA (Autoregressive Moving Average) que mejor se ajuste. Por su parte, si los datos a utilizar est?n en el dominio de las frecuencias, el usuario podr? apoyarse en paquetes como  MATLAB para encontrar los polinomios que corresponden a la z-transform.

En esta ocasi?n usamos el algoritmo invfreqz de MATLAB, el cual arroj? los siguientes resultados:

> a:=(v)->piecewise(v>0,1,0)+
piecewise(v>1.1,-1.08    -1,0)+

piecewise(v>2.1, 0.25    +1.08,0)+

piecewise(v>3.1, 0.00    -0.25,0)+

piecewise(v>4.1, 0.08    -0.00,0)+

piecewise(v>5.1,-0.10    -0.08,0)+

piecewise(v>6.1, 0.10,0):


b:=(v)->piecewise(v>0,-0.10,0)+

piecewise(v>1.1, 0.06   +0.10,0)+

piecewise(v>2.1, 0.06   -0.06,0)+

piecewise(v>3.1, 0.14   -0.06,0)+

piecewise(v>4.1, 0.12   -0.14,0)+

piecewise(v>5.1, 0.07   -0.12,0)+

piecewise(v>6.1,-0.07,0):

> grafica(b(v),7,a(v),7,v);

[Plot]

> zp(b(v),7,a(v),7,v);

[Plot]

> ft(b(v),7,a(v),7,v);

[Plot]

> ir(b(v),7,a(v),7,v,14);

[Plot]

De la inspecci?n de las gr?ficas anteriores se desprenden las siguientes observaciones:

El polinomio del numerador tiene una forma similar al tri?ngulo que modelamos en el primer cap?tulo de esta secci?n del libro. Si recordamos lo que suced?a, este filtro tiene la propiedad de reducir el peso relativo de los componentes de alta frecuencia del ciclo y respeta o amplifica los componentes de baja frecuencia.

Este tipo de filtros pod?an encontrarse en los modelos de informaci?n imperfecta o de contratos traslapados, donde la pol?tica monetaria ten?a una funci?n de reacci?n donde responde r?pidamente a choques recientes y va disminuyendo su respuesta a choques m?s a?ejos seg?n una funci?n exponencial inversa.

Si comparamos el m?dulo de la tansformaci?n de Fourier original y el m?dulo que computamos a partir de los polinomios estimados vemos que la estimaci?n subestima la magnitud correspondiente a las frecuencias m?s bajas, pero que los resultados se parecen m?s en las frecuencias medias y altas.

El filtro que resulta de la divisi?n de numerador y denominador es de fase m?nima, ya que tanto los zeroes como los poles est?n dentro del c?rculo unitario.

La gr?fica de  impulso unitario respuesta muestra a un filtro insetable. Esto se debe a que los coeficientes del denominador suman m?s de uno en valor absoluto. Ahora bien, como dicha suma es muy cercana a la unidad, el efecto no se sino despu?s de varios periodos. Cabe se?alar que si esto es cierto, deben tomarse algunas providencias antes de hacer la estimaci?n que nosotros no tomamos. El lector puede referirse a la literatura de Econometr?a de series de tiempo para m?s detalles.

Lecturas Recomendadas

Lucas, Robert.  Studies in business cycle theory. MIT Press, Cambridge, 1989

Caballero, Ricardo y Mohamad Hammour. On the timing and efficiency of creative destructions. NBER Working Papers, num. 4768, 1994

Sitglitz, Joseph y Bruce Greenwald. Financial Market Imperfections and Business Cycles. Quarterly Journal of Economics, vol 108, 1993