Primeiros passos no DTW
Você já se perguntou como calcular a semelhança para comparar que duas notas de voz dizem a mesma coisa se o fizerem em velocidades diferentes, ou como seu smartwatch detecta se você anda ou corre?
Aqui, darei a você uma ferramenta para analisar a similaridade de séries temporais. No mundo real, muitas séries temporais não estão perfeitamente alinhadas umas com as outras. Portanto, neste artigo vou explicar o que é Dynamic Time Warping (DTW) com um exemplo usando dados financeiros.
O Dynamic Time Warping (DTW) é, simplesmente, uma técnica para comparar dinamicamente séries temporais em que os índices de tempo não precisam estar perfeitamente sincronizados. Quando calculamos o DTW, recebemos uma pontuação que nos diz o quão diferentes são as séries temporais. Quanto mais próximo o DTW estiver de zero, maior será a similaridade entre as séries temporais.
Na imagem 1.0 podemos ver como as duas sequências seguem o mesmo padrão. A sequência azul não está completamente alinhada com a vermelha. No caso de medir a distância euclidiana, o primeiro ponto da sequência vermelha seria comparado com o primeiro ponto da sequência azul e assim por diante, deixando a última parte da sequência azul sem comparação. Para resolver esse problema, podemos usar o Dynamic Time Warping (DTW) para comparar um ponto na sequência vermelha com vários pontos na sequência azul e detectar padrões que seguem a mesma tendência, sem deixar pontos não comparados para trás.
Para se ter uma ideia da importância do DTW, ele é usado para detectar padrões em memos de voz. Como você sabe, as pessoas falam de maneira diferente e algumas mais rápido do que outras. Imagine alguém dizendo “Bom dia” em comparação com “Boooooom diiiiiiiia”. O DTW ajuda a sincronizar essas sequências para encontrar padrões nas reproduções de fala.
Outro exemplo com o qual você também se identificará é o seu smartwatch. Todos os dados coletados para identificar se você caminha, corre ou anda de bicicleta são sequências que são comparadas com dados históricos de outras pessoas, a fim de encontrar semelhanças e padrões que identifiquem o exercício que você faz.
Mãos à obra
Usaremos as 3 principais ações da indústria de alimentos (SPTN, TWNK, GO) com maior impulso, de acordo com o artigo 'Top Food Stocks for Q4 2022' na Investopedia. Também usaremos ações da indústria de tecnologia (NVDA, TSLA) e compararemos o preço de fechamento dessas ações em 2022 para ver através do DTW se há alguma semelhança em seu comportamento.
Neste tutorial usaremos o Yahoo para extrair os dados necessários (2022). Assim obtemos o seguinte (espanhol):
Nos dados obtidos, vemos que as escalas de valor dos preços são diferentes; portanto, para ter uma ideia melhor do comportamento dessas ações, calcularemos a porcentagem de retornos de um dia para o outro.
No gráfico vemos que, desde o início de 2022, NVDA e TSLA sofreram perdas e parece que, em alguns meses, o padrão de comportamento dessas duas ações foi semelhante. Para tirar a subjetividade de apenas comparar com o olho humano as semelhanças de uma ação com outra, calculamos o DTW da seguinte forma:
Como podemos ver no mapa de calor, quanto mais forte a cor e a pontuação, menor a semelhança e vice-versa. Vemos que as ações com menos semelhança são TWNK e TSLA, enquanto as ações com maior semelhança são NVDA e TSLA.
As ações com maior pontuação e, portanto, com menor similaridade, são TWNK vs TSLA:
Assim como as ações com maior similaridade (DTW mais próximo de 0) são TSLA vs NVDA:
Usamos esse código para traçar os estoques e analisar a semelhança com o olho humano.
Conclusão
Espero que o DTW o ajude a remover a subjetividade em seus processos de comparação de séries temporais. Convido você a comparar as ações da indústria de alimentos com outras indústrias em 2022. Existe alguma que também tenha se saído bem como a indústria de alimentos?
Eu recomendo que você verifique a biblioteca tslearn completa se você trabalha com séries temporais.
O código completo deste blog pode ser encontrado no meu GitHub.
Fontes
- https://www.databricks.com/blog/2019/04/30/understanding-dynamic-time-warping.html
- https://commons.wikimedia.org/wiki/File:Euclidean_vs_DTW.jpg
A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.