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

Como automatizar tarefas repetitivas usando Python? Um exemplo para largar o Excel

Manter relatórios diários com dados e análises atualizados é um desafio, pois envolve várias etapas: coleta de dados, tratamento de informações, produção de análises e atualização de relatório. Para superar este desafio algumas ferramentas como Python + Quarto + GitHub podem ser usadas para automatizar tudo que for automatizável. Neste artigo mostramos um exemplo com dados do mercado financeiro.

Criando um Dashboard de análise de Ações no Python

Um Dashboard é um painel de controle que consolida uma variedade de informações sobre um determinado objeto de estudo em um ou mais painéis. Ele simplifica significativamente o processo de análise de dados, oferecendo uma visão global e fácil de entender. Uma maneira simples de construir um Dashboard para acompanhar uma ação específica é utilizando duas ferramentas: Quarto e Python. Neste post, mostramos o resultado da criação de um Dashboard de Ação.

Analisando séries temporais no Python e esquecendo de vez o Excel

Séries temporais representam uma disciplina extremamente importante em diversas áreas, principalmente na economia e na ciência de dados. Mas, afinal, como lidar com esses dados que se apresentam ao longo do tempo? Neste exercício, demonstraremos como compreender uma série temporal e como o Python se destaca como uma das melhores ferramentas para analisar esse tipo de dado.

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.