Redução da escala de trabalho em um modelo de produção simplificado

Author

Prof. Dr. Helson Gomes de Souza

Propriedades da economia

Considere uma economia simplificada onde a produção \(Y\) é dada por uma tecnologia Cobb-Douglas que envolve capital \((K)\) e trabalho \((L)\) sem progresso tecnológico em cada período \(t\) do horizonte de planejamento. Suponha que a força de trabalho está disponível apenas em uma fração \(\gamma\) do tempo, de tal modo que a tecnologia de produção possa ser escrita como função da oferta de trabalho disponível na seguinte especificação:

\[Y(t) = K(t)^\alpha \left[L(t)*\gamma\right]^{1-\alpha}\]

Deixe \(T\) representar o tempo total disponível em cada período \(t\). Assim, em uma semana \(T = 7\), \(\gamma = 6/7\) representa uma escala de seis dias de trabalho e um dia de descanso.

Suponha que a força de trabalho cresce a uma taxa \(x\), de tal modo que:

\[L(t) = L(0)e^{x*t} \]

Considere que em cada período \(t\) o consumo é a razão entre o salário \(W(t)\) e o preço \(P(t)\), ou seja:

\[C(t) = \frac{W(t)}{P(t)}\]

Se o produtor representativo é racional, então o salário equivale ao produto marginal do trabalho, ou seja:

\[W(t) = (1-\alpha)P(t)\left(\frac{K(t)}{\gamma L(t)} \right)^{\alpha}\]

Considere que o planejador desta economia pode limitar um valor mínimo para o salário e deixe esse salário mínimo ser representado pelo salário inicial do horizonte de planejamento, ou seja:

\[W_{min} = W(0) = (1-\alpha)P(0)\left(\frac{K(0)}{\gamma L(0)} \right)^{\alpha}\]

Nessa economia simplificada, suponha que o capital se deprecia em cada período a uma taxa \(\delta\). Suponha também que esse capital pode ser reinvestido a uma taxa exógena de remuneração \(rk\). Considere também que em cada período uma fração \(S\) do produto é poupada e é dedicada à acumulação de capital. Assim, a regra de acumulação de capital pode ser definida da seguinte maneira:

\[K(t) = K(t-1)(1-\delta + rk) + Y(t)*S\]

Em equilíbrio o consumo da économia é dado por:

\[C(t) = Y(t)(1-S)\]

Calibração dos parâmetros

Como a ideia é realizar um exercício simplificado, suponha que a economia modelada possui os seguintes parâmetros:

\[ \begin{array}{c} \alpha = 0.65\\ x = 0.001\\ T = 7\\ \gamma = 6/T\\ S = 0.1\\ \delta = 0.15\\ rk = 0.14 \end{array} \]

Valores iniciais da economia

Para o exercício simplificado, suponha que a economia possui os seguintes valores iniciais:

\[ \begin{array}{c} K(0) = 1\\ L(0) = 1\\ P(0) = 1\\ Y(0) = K(0)^{\alpha}\left(L(0)*\gamma\right)^{1-\alpha}\\ W(0) = (1-\alpha)P(0)\left(\frac{K(0)}{\gamma L(0)}\right)^\alpha\\ C(0) = Y(0)(1-S) \end{array} \]

Simulação

Considere confrontar o cenário em que a escala de trabalho possui apenas um dia semanal dedicado ao descanso com o cennário em que o trabalhador descansa por dois dias. Nesse caso, o cenário em que \(\gamma = 6/T\) é confrontado com o caso em que \(\gamma = 5/T\). A ideia central do exercício é computar os valores das variáveis do modelo nos dois cenários e calcular o diferencial nas taxas de crescimento das variáveis entre os cenários em cada período.

Execução em python

O primeiro passo para a execução do exercício é instalar uma biblioteca dedicada à resolução de problemas de programação não linear. Sugere-se a utilização da biblioteca gekko.

!pip install gekko
from gekko import GEKKO
Requirement already satisfied: gekko in ./.venv/lib/python3.10/site-packages (1.3.2)
Requirement already satisfied: numpy>=1.8 in ./.venv/lib/python3.10/site-packages (from gekko) (2.2.6)

Agora considere calcular os valores ótimos em um loop de duas etapas, onde na primeira etapa \(\gamma = 6/T\) e na segunda etapa \(\gamma = 5/T\). O código detalhado para esta tarefa segue abaixo:

escala = [6,5] # indexação do loop
txy6 = [] # lista para calcular a variação do produto na escala 6x1
txy5 = []  # lista para calcular a variação do produto na escala 5x2


for j in escala: # abrindo o loop
  m = GEKKO(remote=False) # Criando o modelo


  t = 40 # horizonte de planejamento de 20 períodos
  T = 7 # Semana de sete dias

  # parâmetros
  K0 = 1 # Valor inicial do capital
  L0 = 1 # Valor inicial do trabalho
  P0 = 1 # Valor inicial do nível de preços

  alpha = 0.65 # Parâmetro da tecnologia de produção
  x = 0.01 # taxa de crescimento da população
  gamma = j/T # Escala de trabalho
  S = 0.1 # Taxa de poupança
  delta = 0.15 # Taxa de depreciação do capital
  rk = 0.14 # taxa exógena de remuneração do capital

  # valores iniciais
  Y0 = (K0**alpha)*((L0*gamma)**(1-alpha)) # Valor inicial do produto
  W0 = (1-alpha)*P0*((K0/(L0*gamma))**alpha) # Valor inicial do salário
  C0 = Y0*(1-S) # Valor inicial do consumo

  # variáveis
  Y = m.Array(m.Var, t, lb=1e-6) # produto
  L = m.Array(m.Var, t, lb=1e-6) # Trabalho
  W = m.Array(m.Var, t, lb=W0) # Salário com lower bound no salário mínimo
  K = m.Array(m.Var, t, lb=1e-6) # capital
  C = m.Array(m.Var, t, lb=1e-6) # Consumo
  P = m.Array(m.Var, t, lb=1e-6) # Preço

  # condições iniciais FIXAS
  m.Equation(K[0] == K0)
  m.Equation(L[0] == L0)

  # período inicial
  m.Equation(Y[0] == (K[0]**alpha)*((L[0]*gamma)**(1-alpha)))
  m.Equation(W[0] == (1-alpha)*P0*((K[0]/(L[0]*gamma))**alpha))
  m.Equation(C[0] == Y[0]*(1-S))

  # Escrevendo as equações do modelo
  for i in range(1, t):

      # trabalho
      m.Equation(L[i] == L[i-1] * m.exp(x*t))

      # capital
      m.Equation(K[i] == K[i-1]*(1-delta + rk) + S*Y[i-1])

      # produção
      m.Equation(Y[i] == (K[i]**alpha)*((L[i]*gamma)**(1-alpha)))

      # salário
      m.Equation(W[i] == (1-alpha)*P[i]*((K[i]/(L[i]*gamma))**alpha))

      # consumo
      m.Equation(C[i] == Y[i]*(1-S))

  m.options.SOLVER = 3 # definindo o solver (ipopt)
  m.solve(disp=True) # resolvendo o modelo


# Calculando as taxas de crescimento do produto per capita
  if j == 6:
    for i in range(1,t):
      txy6.append(100*(Y[i].value[0]/L[i].value[0] - Y[i-1].value[0]/L[i].value[0])/(Y[i-1].value[0]/L[i].value[0]))
  else:
    for i in range(1,t):
      txy5.append(100*(Y[i].value[0]/L[i].value[0] - Y[i-1].value[0]/L[i].value[0])/(Y[i-1].value[0]/L[i].value[0]))
 ----------------------------------------------------------------
 APMonitor, Version 1.0.3
 APMonitor Optimization Suite
 ----------------------------------------------------------------
 
 
 --------- APM Model Size ------------
 Each time step contains
   Objects      :            0
   Constants    :            0
   Variables    :          240
   Intermediates:            0
   Connections  :            0
   Equations    :          200
   Residuals    :          200
 
 Number of state variables:            240
 Number of total equations: -          200
 Number of slack variables: -            0
 ---------------------------------------
 Degrees of freedom       :             40
 
 solver            3  not supported
 using default solver: APOPT
 ----------------------------------------------
 Steady State Optimization with APOPT Solver
 ----------------------------------------------
 
 Iter    Objective  Convergence
    0  1.35580E+20  9.99999E-01
    1  1.35574E+20  9.99999E-01
    2  1.35570E+20  9.99999E-01
    3  1.35566E+20  9.99999E-01
    4  1.56400E+19  1.58920E+00
    5  1.82347E+18  6.17019E-01
    6  1.42022E+16  1.57147E+00
    7  1.08960E+12  9.60158E-04
    8  5.47809E-20  1.02671E-07
    9  5.47809E-20  1.02671E-07
 Successful solution
 
 ---------------------------------------------------
 Solver         :  IPOPT (v3.12)
 Solution time  :   3.960000000370201E-002 sec
 Objective      :   0.000000000000000E+000
 Successful solution
 ---------------------------------------------------
 

 ----------------------------------------------------------------
 APMonitor, Version 1.0.3
 APMonitor Optimization Suite
 ----------------------------------------------------------------
 
 
 --------- APM Model Size ------------
 Each time step contains
   Objects      :            0
   Constants    :            0
   Variables    :          240
   Intermediates:            0
   Connections  :            0
   Equations    :          200
   Residuals    :          200
 
 Number of state variables:            240
 Number of total equations: -          200
 Number of slack variables: -            0
 ---------------------------------------
 Degrees of freedom       :             40
 
 solver            3  not supported
 using default solver: APOPT
 ----------------------------------------------
 Steady State Optimization with APOPT Solver
 ----------------------------------------------
 
 Iter    Objective  Convergence
    0  1.17499E+20  9.99999E-01
    1  1.17494E+20  9.99999E-01
    2  1.17491E+20  9.99999E-01
    3  1.17488E+20  9.99999E-01
    4  1.34554E+19  1.71658E+00
    5  1.63969E+18  6.49941E-01
    6  1.38439E+16  1.45255E+00
    7  1.38528E+12  1.07097E-03
    8  7.31106E-20  1.76330E-07
    9  7.31106E-20  1.76330E-07
 Successful solution
 
 ---------------------------------------------------
 Solver         :  IPOPT (v3.12)
 Solution time  :   3.880000000935979E-002 sec
 Objective      :   0.000000000000000E+000
 Successful solution
 ---------------------------------------------------
 

Tendo resolvido o modelo e calculado as taxas de crescimento para o produto per capita, o próximo passo é comparar essas taxas. Para tanto, considere calcular a diferença entre a taxa de crescimento do produto per capita no cenário da escala 6x1 com a taxa de crescimento do produto per capita no cenário da escala 5x2. O resultado mostrará o quanto a taxa de crescimento do produto per capita na escala 6x1 supera essa mesma taxa de crescimento na escala 5x2 em pontos percentuais. Esse procedimento é feito com base no código a seguir:

import matplotlib.pyplot as plt

dif_txy = []
for i in range(t-1):
  dif_txy.append(txy6[i] - txy5[i])

plt.plot(range(1,t), dif_txy)
plt.title("Diferencial de crescimento do produto per capita (6x1 - 5x2)")
plt.xlabel("Tempo")
plt.ylabel("Diferencial de crescimento (pontos percentuais)")
plt.grid()
plt.xticks(range(0,t+5,5));

O resultado demonstra que em todos os períodos o produto cresce em uma magnitude superior quando os trabalhadores operam em uma escala 6x1. O diferencial de crescimento cresce no início do horizonte de planejamento mas arrefece a partir de um dado momento mostrando que haverá um ponto em que a perda de bem estar gerado pela redução da jornada de trabalho será máxima. A partir deste ponto, a diferença de crescimento econômico entre os dois cenários passa a decrescer, arrefecendo ao final do horizonte de planejamento. Essa simulação mostra que a redução da escala de trabalho pode gerar uma perda relativa de produção que será mais intensa nos períodos que sucedem a implementação desta medida. Além disso, dado o tempo necessário para a economia absorver os efeitos da redução da escala de trabalho, os resultados do exercício simplificado mostram que, em termos de ganho de produto talvez seja melhor não intervir no mercado de trabalho do que reduzir a escala semanal de seis para cinco dias de trabalho.

Conclusão

Se não há progresso tecnológico e se a escala de trabalho é reduzida sem que ocorram reduções salariais, a economia enfrentará um custo de oportunidade que se resume em um produto marginalmente menor ao longo do tempo em comparação com o caso em que a escala semanal de trabalho se mantém inalterada. Além disso, a perda de produto é maior nos períodos iniciais após a implementação da redução da jornada de trabalho e a economia levará muito tempo para que o crescimento econômico retorne aos seus padrões observados antes ra redução da escala semanal de trabalho.