Primeiros passos no DTW

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.

Imagen 1.0 Distância euclidiana vs DTW

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.

Imagem 2.0 Evolução da % de retorno durante 2022

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:

Figura 3.0 Mapa de calor DTW entre stocks

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:

Imagem 4.0 Comparação % de retorno TWNK vs TSLA

Assim como as ações com maior similaridade (DTW mais próximo de 0) são TSLA vs NVDA:

Imagem 5.0 Comparação % de retorno 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


💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

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.