Previsão do desemprego em 2015 usando o R

Uma das perguntas que mais tem sido feita aos economistas ultimamente é quando o desemprego vai começar a subir. Não é desejo das pessoas que perguntam, mas apenas constatação acaciana: afinal, economia que não cresce não gera emprego. E a resposta tem sido "depende". Depende de como a procura por trabalho vai se comportar daqui para frente. Isto porque, o desemprego é função de dois componentes principais: da oferta e demanda por mão de obra. Se a demanda cai por conta do baixo crescimento e a oferta se mantém, o desemprego sobe. Entretanto, se ambas caem, o desemprego pode até cair, se a oferta cair mais do que a demanda. Logo, a taxa de desemprego pode não estar sinalizando corretamente o que está acontecendo no mercado de trabalho, ainda que os salários continuem crescendo.

Pois é. No ano passado eu toquei várias vezes no assunto nesse espaço. Cheguei, inclusive, a criar um índice que busca identificar quando o desemprego está caindo mais por influência da queda na procura por emprego do que por influência da demanda por mão de obra. Em 2014, isso aconteceu 4 vezes: Na série da PME, desde abril de 2002 (153 observações), esse "fênomeno" aconteceu 29 vezes (18%).

idpe

E em 2015, como será? Bom, para tentar responder essa pergunta difícil nada melhor do que usar um pouco de econometria, não é mesmo? Para tal, vamos usar três séries extraídas da PME (Pesquisa Mensal de Emprego) do IBGE, disponível no amigável SIDRA: a taxa de desemprego, a variação interanual da população ocupada e da população economicamente ativa. Estas duas últimas são calculadas, logicamente, a partir dos dados de PO e PEA. Vamos construir um modelo ARIMA utilizando o R.

Antes de mais nada, vamos ver as séries. Os códigos e gráficos são colocados abaixo.

### Gráfico da Taxa de Desemprego
plot(desemprego[,'desemprego'], col='red', xlab='', ylab='%',
 xlim=c(2003,2015), bty='l', lwd=3, lty=1)
grid(lty=2, lwd=1, col='darkgrey')
mtext('Desemprego no Brasil pela PME-IBGE',side=3,line=1, col='black',
 font=2)
mtext('Fonte: [analisemacro.com.br], com dados do IBGE.',
 side=1,line=3)

desemprego

### Gráfico das variáveis exógenas
par(mar=c(5,4,4,5)+.1)
plot(desemprego[,'pea'],type='l',col='red', lty=2, lwd=2,
 xlab='', ylab='PEA', ylim=c(-1,7), main='')
par(new=T)
plot(desemprego[,'po'], type='l', col='black',
 xaxt='n',yaxt='n', lty=1, lwd=2,
 xlab='', ylab='', ylim=c(-1,6))
axis(4)
mtext('PO',side=4,line=3)
legend('topright', col=c('red','black'), lty=c(2,1),
 lwd=c(2,2), legend=c('PEA', 'PO'))
mtext('PEA vs. PO',side=3,line=2, col='black',
 font=2)
mtext('(variaçao interanual)',side=3,line=1, col='black',
 font=1)
mtext('Fonte: [analisemacro.com.br], com dados do IBGE.',
 side=1,line=3)

peapo

Bom, ao visualizar o gráfico do desemprego é nítido que ele apresenta um comportamento sazonal ao longo do ano. Ele aumenta nos primeiros meses e cai nos últimos, refletindo o comportamento cíclico da economia. Esse é um aspecto importante na hora de constuir o ARIMA. Para uma ideia sobre qual modelo escolher, vamos dar uma olhada nos correlogramas da taxa de desemprego com as funções acf pacf.

acfpacf

Ao olhar os correlogramas, fica nítido que a taxa de desemprego apresenta uma "inércia", com o coeficiente da primeira defasagem próximo a 1. Além disso, observa-se que, de fato, a sazonalidade que vimos no gráfico é mesmo significativa. Para completar as informações que dispomos até aqui, falta verificar a ordem de integração da taxa de desemprego. Para isso, é necessário rodar alguns testes de raiz unitária para verificar se a série em questão é ou não estacionária (possui média e variância constantes). No caso do desemprego, ao olhar o gráfico, é bastante nítido que a mesma possui uma tendência decrescente ao longo da amostra considerada. Isso é um indício de que a mesma não é estacionária ou é estacionária ao redor de uma tendência. 

Um teste mais elaborado de raiz unitária pode ser feito adotando algum protocolo ou aplicando testes tradicionais, como "adf", "kpss" e "pp", de forma a tentar inferir qual a ordem de integração da série. Para isso, é preciso verificar a ordem de defasagem da equação de teste, de forma a controlar a autocorrelação dos resíduos, o poder do teste com a inclusão de variáveis determinísticas, o tamanho da amostra para testes como o "df-gls" e "ng-perron" e por aí vai. Como o post não é sobre raiz unitária, vamos simplesmente considerar que a série é integrada de ordem 1, isto é, possui uma raiz unitária. Isso, o leitor pode tratar com maiores pormenores alterando o script ao final do texto.

Dito isto, vamos comparar dois modelos. O primeiro será extraído da função auto.arima do pacote forecast, enquanto o segundo será um SARIMA (1,1,1)(1,1,1). Além disso, vamos considerar nos dois modelos como variáveis exógenas a variação interanual da população ocupada e da população economicamente ativa. Para isso, vamos rodar o seguinte código.

### Construção dos modelos ARIMA ###
xreg <- window(cbind(desemprego[,'po'],desemprego[,'pea']),
 end=prev.start-c(0,1))
newxreg <- window(cbind(desemprego[,'po'],desemprego[,'pea']),
 start=prev.start)
modelo01 <-auto.arima(window(desemprego[,"desemprego"], end=prev.start-c(0,1)),
 xreg=xreg,
 max.p=5, max.q=5,
 max.P=2, max.Q=2,
 trace=F)
modelo02<-arima(window(desemprego[,"desemprego"], end=prev.start-c(0,1)),
 order=c(1,1,1), seasonal=list(order=c(1,1,1),period=12),
 xreg=xreg)

Feito isto, podemos dar uma olhada nos modelos com o comando summary().

> summary(modelo01)
Series: window(desemprego[, "desemprego"], end = prev.start - c(0, 1)) 
ARIMA(3,1,0)(2,0,0)[12] 

Coefficients:
 ar1 ar2 ar3 sar1 sar2 desemprego[, "po"]
 -0.1369 0.0811 -0.0005 0.8087 0.0437 -0.4319
s.e. 0.0814 0.0789 0.0776 0.0758 0.0738 0.0241
 desemprego[, "pea"]
 0.4465
s.e. 0.0230

sigma^2 estimated as 0.02541: log likelihood=58.44
AIC=-101.96 AICc=-100.86 BIC=-78.37
> summary(modelo02)
Series: window(desemprego[, "desemprego"], end = prev.start - c(0, 1)) 
ARIMA(1,1,1)(1,1,1)[12] 

Coefficients:
 ar1 ma1 sar1 sma1 desemprego[, "po"] desemprego[, "pea"]
 0.5827 -0.5918 0.6367 -0.9996 -0.4235 0.4284
s.e. NaN NaN 0.0942 0.4028 0.0272 0.0260

sigma^2 estimated as 0.03201: log likelihood=34.64
AIC=-55.28 AICc=-54.35 BIC=-35.26

Feito isto, é importante dar uma olhada nos resíduos dos modelos para ver se estão "bem comportados". Pode-se ver a normalidade dos resíduos com o comando jarque.bera.test e a autocorrelação com o Box.test. Neste último, entretanto, é preciso corrigir os graus de liberdade, dado que o mesmo não foi feito para verificar os resíduos de uma regressão. Maiores detalhes, no script ao final do post. Para o caso aqui sublinhado, os resíduos estão ok. Logo, é hora de fazer a previsão propriamente dita com o comando forecast do pacote de mesmo nome. Um detalhe importante é que estou assumindo que entre janeiro e dezembro de 2015, a população ocupada e população economicamente ativa irão crescer conforme uma média dos últimos anos. De forma alternativa, você pode gerar uma previsão para essas variáveis, antes de prever a taxa de desemprego propriamente dita.

### Previsão ###
prev1 <- forecast(modelo01, 12, level=40,
 xreg=newxreg)
prev2 <- forecast(modelo02, 12,level=40,
 xreg=newxreg)

Após tudo isso, abaixo construímos uma tabela com os resultados dos dois modelos.

### Construindo matriz com resultados das previsões ###
prevmean<-cbind(prev1$mean[1:12],prev2$mean[1:12])
prevlower<-cbind(prev1$lower[1:12],prev2$lower[1:12])
prevupper<-cbind(prev1$upper[1:12],prev2$upper[1:12])
prevtot<-cbind(prevlower,prevmean,prevupper)
write.csv2(cbind(prevlower,prevmean,prevupper),
 file="prevdesemprego.csv")

E abaixo organizada a tabelinha com os resultados para os próximos 12 meses.

resultado

Pois é, a média dos modelos indica que o desemprego deve ficar em 5,4% em 2015, o que seria 0,6 pontos percentuais acima do registrado em 2014. A tendência de aumento, ao menos, parece ser capturada por ambos os modelos. O leitor pode tentar outras coisas, como por exemplo, tentar inferir o comportamento da população ocupada e da população economicamente ativa. Ou, claro, utilizar outras variáveis exógenas, considerar a taxa de desemprego trend stationary, etc. Para além disso, o exercício tem objetivo meramente didático, logo deve ser visto com cautela. Para projeções mais apuradas, que levem em consideração outras questões que afetam o mercado de trabalho, basta entrar em contato...  🙂

O script do exercício aqui.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise regional do mercado de trabalho com dados do CAGED usando Python

Os microdados dos CAGED fornecem informações detalhadas a nível de cidade, sexo, raça, nível de instrução, idade, salário e outras sobre os trabalhadores formais do Brasil, possibilitando ricas análises regionais de dados. Neste artigo mostramos como acessar, processar e analisar estes dados utilizando o Python.

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.