Modelo preditivo para Serviços e índices de mobilidade do Google e da Apple

Ontem, no Relatório AM, falamos um pouco sobre o setor de serviços. Como se sabe, o setor de serviços foi de fato o mais impacto pelas medidas de restrição de mobilidade impostas pelos governos. Imagina-se, por suposto, que a volta à normalidade pré-pandemia tenha impactos positivos sobre esse setor. De modo a vislumbrar essa volta, vamos analisar nesse Comentário de Conjuntura os índices de mobilidade do Google e da Apple, com base no pacote covid19mobility.


library(tidyverse)
library(lubridate)

## Mobility Index

remotes::install_github("covid19r/covid19mobility")

library(covid19mobility)

### Apple Mobility Trends

amt_country = refresh_covid19mobility_apple_country()

amt_country %>%
filter(location == 'Brazil') %>%
select(date, data_type, value) %>%
spread(data_type, value) %>%
drop_na() %>%
group_by(date = floor_date(date, 'month')) %>%
summarise(across(everything(), list(mean))) %>%
gather(variavel, valor, -date) %>%
ggplot(aes(x=date, y=valor, colour=variavel))+
geom_hline(yintercept=100, colour='black', linetype='dashed')+
geom_line(size=.8)+
facet_wrap(~variavel, scales='free')+
theme(legend.position = 'none',
axis.text.x.bottom = element_text(size=7, face='bold'))+
labs(x='', y='',
title='Apple Mobility Trends',
caption='Fonte: analisemacro.com.br')

O AMT mostra uma reversão da queda na mobilidade vista ao longo de 2020. O índice base refere-se ao nível pré-pandemia. Como se pode ver pelo gráfico, o item trânsito ainda está aquém do nível pré-pandemia para o agregado do Brasil. Possivelmente, isso explica o fato dos serviços ainda estarem atrás na recuperação do comércio e da indústria.

Outro índice de mobilidade, talvez mais abrangente, seja o do Google. A seguir, ilustramos.


### Google Mobility Trends

gmt = refresh_covid19mobility_google_country()

gmt %>%
filter(location == "Brazil") %>%
select(date, data_type, value) %>%
drop_na() %>%
ggplot(aes(x=date, y=value, colour = data_type))+
geom_hline(yintercept=0, colour='black', linetype='dashed')+
geom_line()+
facet_wrap(~data_type, scales='free')+
theme(legend.position = 'none',
strip.text = element_text(size=7, face='bold'),
axis.text.x.bottom = element_text(size=7, face='bold'))+
labs(x='', y='',
title='Google Mobility Trends',
caption='Fonte: analisemacro.com.br')

O gráfico acima mostra uma recuperação de lazer e varejo, o item que mais sofreu com as restrições de mobilidade. Esse item é composto por restaurantes, shoppings e similares. As estações de transporte público também estão abaixo do nível pré-pandemia.

A tendência desses índices, por suposto, mostra uma recuperação da mobilidade nos últimos meses, em linha com a recuperação da economia. Os serviços, setor mais impactado, deve acompanhar essa recuperação, mas com alguma defasagem, dado o impacto que sofreu ao longo do ano passado.

De forma a construir uma projeção dos serviços, o Vítor Pestana, Cientista de Dados da área de Produtos aqui na Análise Macro está desenvolvendo um modelo do tipo ARIMAX, onde as co-variáveis são compostas por termos de busca do Google Trends. A seguir, mostramos alguns desses termos.


lazer <- c("restaurante","bar", "cinema", "show", "parque", "academia")
viagem <- c("hotel", "passagem de avião", "passagem de onibus", "aluguel de carro")
emprego <- c("seguro desemprego", "vaga", "currículo","empréstimo")
transporte <- c("onibus", "logistica", "frete", "estrada")
outros <- c("tempo")

Com os termos selecionados, é preciso extrair a informação da API do Google Trends por meio do pacote gtrends. O pacote extrai os dados de forma relativa, ou seja, se for feita uma busca com mais de um termo ao mesmo tempo, os dados serão padronizados em relação ao volume máximo de um dos índices. Por isso, estamos utilizando uma função que extrai os volume de pesquisas termo por termo.


gtrends_clean_mensal <- function(x) {

lista = list()

for (i in x) {

df = gtrends(keyword = i,
geo = "BR", time='all', onlyInterest=TRUE)
df = df$interest_over_time %>%
select(date, hits, keyword)

lista[[i]] = df
}

# diferença em 12 meses

data = bind_rows(lista) %>%
pivot_wider(names_from = keyword, values_from = hits) %>%
mutate_at(vars(-("date")), funs(. - lag(.,12))) %>%
na.omit()

return(data)
}

df_limpo = gtrends_clean_mensal(termos)

Como nosso N é muito reduzido, dado que a PMS começa em 2011, é necessário utilizar algum procedimento para diminuir o número de variáveis. Assim, utilizaremos o *framework* da Análise de Componentes Principais. Iremos selecionar, portanto, os componentes principais de forma que a variância explicada seja ao menos igual a 75%.

A partir disso, rodamos o nosso modelo ARIMAX em uma amostra de treino, avaliamos a acurácia do modelo e geramos as previsões para h períodos. O modelo ainda está em fase de desenvolvimento, mas mostra a validade do uso desse tipo de informação, cada vez mais utilizada para treinar modelos preditivos.

_______________________

(**) Membros do Clube AM têm acesso a detalhes do código que estamos desenvolvendo.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Analisando o sentimento da política monetária com IA usando Python

Análise de sentimentos é uma técnica de Processamento de Linguagem Natural (PLN) que serve para revelar o sentimento contido em um texto. Neste exercício, aplicamos esta técnica para analisar as atas das reuniões do COPOM, revelando o que os diretores de política monetária discutem nas entrelinhas. Utilizando um modelo de Inteligência Artificial através do Python, produzimos ao final um índice de 0 a 100 para sintetizar a análise histórica.

Como a IA pode auxiliar na otimização de Portfólio de Investimentos?

A construção de portfólio ótimo refere-se ao processo de alocar eficientemente capital entre um conjunto predefinido de ativos ou títulos. O campo da construção de portfólio tem sido extensivamente estudado por acadêmicos e profissionais desde a década de 1950, quando Markowitz introduziu sua inovadora abordagem de média-variância para a construção de portfólio. Diante disso, podemos melhorar o processo de alocação de peso de um investimento em um portfólio através do Aprendizado não supervisionado com a aplicação do Hierarchical Risk Parity (HRP). Neste exercício, realizamos uma introdução ao método e mostramos os resultados de um exemplo criado através do Python.

Prevendo múltiplas séries usando IA no Python

Como podemos realizar previsões para várias séries temporais simultaneamente? Para abordar essa questão, empregamos a biblioteca MLForecastdo Python. Esta biblioteca disponibiliza uma variedade de modelos e funcionalidades para realizar previsões em séries temporais utilizando técnicas de aprendizado de máquina. Demonstramos sua aplicação ao prever as curvas de energia horária em quatro regiões distintas do Brasil.

Esse exercício é uma continuação do exercício “Usando IA para prever o consumo de energia no Brasil com Python”.

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.