Avaliando a acurácia de uma previsão com o R

Quem trabalha com previsões quantitativas sabe que uma parte importante de qualquer projeto é a avaliação das previsões geradas pelo(s) modelo(s). É dessa forma que podemos verificar se estamos no caminho correto. Para ilustrar como isso pode ser feito no R, vou construir nesse post um modelo univariado simples para a taxa de desemprego medida pela PNAD Contínua e depois efetuar o processo de avaliação das previsões geradas. Para começar, vamos carregar alguns pacotes...


library(forecast)
library(ggplot2)
library(sidrar)
library(xtable)

Vamos pegar os dados que precisamos do SIDRA com o pacote sidrar...


# Dados Brutos
table = get_sidra(api='/t/6318/n1/all/v/1641/p/all/c629/all')
# Pegar a PEA
pea = table$Valor[table$`Condição em relação à força de trabalho e condição de ocupação (Código)`==32386]
# Pegar a População Desocupada
desocupada = table$Valor[table$`Condição em relação à força de trabalho e condição de ocupação (Código)`==32446]
# Criar Desemprego
desemprego = ts(desocupada/pea*100, start=c(2012,03), freq=12)

Com a função ggtsdisplay do pacote forecast podemos visualizar a nossa série e as funções de autocorrelação como abaixo.

Para a construção de um modelo univariado, teríamos que (1) verificar se a nossa série é estacionária e (2) tentar identificar os coeficientes AR e MA através de funções de autocorrelação. Vamos aqui, entretanto, utilizar um algoritmo de modo a automatizar esse processo através de critérios de informação com a função auto.arima:


sarima = auto.arima(desemprego, max.p=2, max.q=4, max.P = 2, max.Q=2)

Aplicada a função auto.arima sobre a nossa série, temos um modelo SARIMA(1,2,0)(1,1,0)[12]. Com base nesse modelo, podemos agora gerar previsões e, consequentemente, avaliá-las. É comum aqui, por suposto, dividir a nossa amostra em duas subamostras: uma de treino, onde rodamos o nosso modelo e outra de teste, onde são feitas as previsões. Nessa amostra de teste é onde ocorre a comparação com as observações efetivas da nossa série. Como regra de bolso, é comum destinar 70% para a subamostra de treino e o restante para a amostra de teste. Como nossa amostra é, entretanto, curta, vou aqui reservar apenas as 6 últimas observações para o conjunto de teste, de modo a ilustrar apenas o código.


training = window(desemprego, end=end(desemprego)-c(0,6))
test = window(desemprego, start=end(desemprego)-c(0,5))
acuracia = Arima(training, order=c(1,2,0), seasonal = c(1,1,0))
acuraciaf = forecast(acuracia, h=length(test), level=95)

Com o código acima, criamos as nossas subamostras, rodamos o modelo na subamostra de treino e gerar a previsão com base no tamanho do vetor de teste. Por fim, com a função accuracy do pacote forecast podemos avaliar essas previsões.


acc = accuracy(acuraciaf$mean, test)

E aí está a tabelinha que queríamos...

ME RMSE MAE MPE MAPE ACF1 Theil's U
Test set -0.19 0.23 0.20 -1.51 1.57 0.37 0.87

O erro médio do nosso modelinho é de 0,19 negativos e o RMSE é de 0,23. Para maiores detalhes sobre essas métricas, veja esse post aqui.

Curtiu o tema? Nós exploramos isso e muito mais no nosso Curso de Construção de Cenários e Previsões usando o R, voltado exclusivamente para a construção de previsões quantitativas no R. Dê uma olhada lá e se inscreva na próxima turma!

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar IA para sumarizar dados de demonstrações de empresas brasileiras no Python

Neste post, vamos explorar como utilizar o modelo de linguagem Gemini do Google para analisar demonstrações contábeis anuais da Eletrobras e extrair informações relevantes para tomada de decisão. Através de um código Python, vamos importar os dados direto da CVM, conectar com o Gemini e gerar resumos sobre as contas das demonstrações e perspectivas futuras sobre as finanças da empresa.

O que é Inteligência Artificial Generativa e como usar para negócios?

O que é Inteligência Artificial? O que é Inteligência Artificial Generativa? Como essa tecnologia pode impulsionar os resultados de uma empresa?
Nesta postagem, respondemos a essas perguntas de forma prática e objetiva, destacando os principais conceitos e demonstrando como aplicar a IA de forma estratégica para otimizar processos, reduzir custos e aumentar os ganhos do negócio.

Análise de impacto fiscal sobre o dolár com Python

Usamos uma cesta de 12 moedas para construir um cenário contrafactual da taxa de câmbio após o último anúncio de pacote fiscal, com base em modelagem Bayesiana. No período, o dolár depreciou quase 5% e passou os R$ 6,15, enquanto que na ausência da intervenção a moeda deveria estar cotada em R$ 5,78.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.