Explorando ciclos em dados.

Uma breve visão geral

Keno Leon Segue 21 de mai · 7 min ler

Estamos cheios de ciclos.

Ciclos são parte da vida, natureza e talvez alguns dados que você pode encontrar, por ciclos queremos dizer que os eventos se repetem no tempo e no espaço com certa periodicidade.

Se você vive no planeta Terra, experimenta o ciclo dia / noite todos os dias, fica escuro e mais frio cerca de um terço do dia, depois acende e aquece o resto, essa série de eventos se repete durante um período que chamamos de dia.

As estações são outro tipo de ciclo, é frio por vários dias, depois é mais quente, e isso se repete por um longo período de tempo, a vida e a morte são outro exemplo de ciclo, mas aqui a escala de tempo é tão grande que geralmente esquecemos ou não percebemos que somos parte de um ciclo maior.

Por que estudar ciclos?

Ao estudar os ciclos, podemos detectá-los e adaptar nosso comportamento para explorar ou evitar uma determinada fase do ciclo, por exemplo, se sabemos que as temperaturas serão frias e os alimentos escassos daqui a 6 meses, podemos nos preparar adequadamente.

Como mencionado anteriormente, os ciclos estão em toda parte, nós seres biológicos são codificados para alguns aspectos deles (dias e estações), e criamos nossos próprios ciclos (sono / vigília, ciclos de fertilidade, trabalho / brincadeira, etc, etc.), mas a utilidade de saber identificá-los e descrevê-los se estende a outros domínios …

Considere o problema dos ciclos nos mercados financeiros e quando investir neles, aqui os ciclos são influenciados por fatores conhecidos e desconhecidos, mas se você quiser ser um investidor de sucesso, você precisa estar ciente de onde você está no ciclo, ou como um investidor proeminente coloca:

 "Estar muito à frente do seu tempo é indistinguível de estar errado." - Howard Marks (capital de Oaktree) 

Um ciclo em detalhe.

Para começar, vamos olhar para o mais simples dos ciclos:

 E alguns pontos de dados relevantes: + --- + ---- + --- + --- + ---- + ---- + ---- + ---- + ---- + - --- + 
| X | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 |
+ --- + ---- + --- + --- + ---- + ---- + ---- + ---- + ---- + ---- +
| Y | -4 | 0 | 4 | 0 | -4 | 0 | 4 | 0 | -4 |
+ --- + ---- + --- + --- + ---- + ---- + ---- + ---- + ---- + ---- +
Observe que os valores -4 e 4 repetir-se sobre o eixo não repetitivo 0… 32 , o que temos aqui são 2 ciclos que começam e terminam em (0, -4) com um comprimento de 16 .

Aqui está outro ciclo encontrado em toda a natureza ( ciência e engenharia ) e é geralmente referido como uma onda senoidal :

 Ondas senoidais merecem sua própria discussão separada, por enquanto apenas note que elas nos fornecem maneiras adicionais de falar sobre ciclos e descrever suas partes. 

Mas muitas vezes você vai encontrar ciclos brutos como esses:

 Os eixos são deixados de propósito para que você possa notar que há dois grandes ciclos completos e um terceiro incompleto, você pode identificar os dois primeiros por seus altos e baixos, o terceiro é mais longo e ainda não atingiu o pico. ... Depois de perceber esses recursos, podemos revelar os dados de mistério como o Dow Jones Industrial Stock Average (DJIA) de maio de 1997 a maio de 2019 (~ 22 anos), esses ciclos representam os altos e baixos financeiros de milhões de pessoas em planeta Terra durante esses anos. 

Detectando ciclos

Detectar visualmente ciclos em um gráfico que representa seus dados é uma maneira perfeitamente válida de descobrir esse negócio de ciclo, infelizmente falta algum refinamento, poderíamos pedir métricas específicas sobre nossos ciclos e então ficaríamos gesticulando em um gráfico … esse ciclo é sobre hmmm 2 polegares largos !

Felizmente, pessoas inteligentes têm lidado com ciclos de forma estruturada e matemática, para que possamos tirar vantagem disso.

 Eu explorarei um algoritmo comum e popular para detecção de ciclo (Tartaruga e Lebre de Floyd) mas há alguns mais se você quiser os explorar a seu próprio passo, aqui é um lugar bom para começar: https: //en.wikipedia. org / wiki / Cycle_detection 

Tartaruga e Lebre de Floyd

Começamos com uma sequência numérica (aqui o ciclo é óbvio) e colocamos a tartaruga e a lebre no mesmo ponto de partida.

Como na fábula, a lebre é rápida e a tartaruga lenta, a lebre se move em dois incrementos de espaço de 2 e a tartaruga apenas um 1 cada vez.

Nesse ritmo, se houver um ciclo, tanto a tartaruga quanto a lebre se encontrarão no mesmo valor 0 , revelando assim o ciclo 0,4,8,4,0 , simples e elegante, mas…

 Notas: (1) Esta é uma explicação muito ingênua do algoritmo (por uma questão de clareza), na realidade, precisamos lidar com nós e ponteiros e também implementar o algoritmo em sua linguagem de escolha, um bom ponto de partida é python, você precisará aprender e implementar listas vinculadas , depois disso   você pode adicionar complexidade, aqui estão algumas implementações: Código da Rossetta: detecção de ciclo . Notas: (2) Pode não ser óbvio, mas agora você pode obter métricas de ciclo, depois de ter um ciclo, você pode obter o min / max (vale / pico ... 0,8) e calcular a amplitude, coisas como frequência e período também são possíveis quando você incorpora ponteiros (o eixo X, que neste exemplo estamos omitindo, mas assumamos que os dados são contínuos como uma série temporal). Notas: (3) Este problema / algoritmo tem múltiplas aplicações práticas, uma das favoritas de entrevistas de codificação, ele também ajuda a detectar loops infinitos e colisões criptográficas entre outros usos. 

Crédito da foto: https://www.pexels.com/photo/animal-canine-close-up-dog-546229/

Ciclologia Avançada

O mundo dos ciclos é vasto, dependendo de suas necessidades e projetos específicos, pode ser conveniente criar seu próprio caminho de pesquisa ou análise, o que não quer dizer que existem maneiras mais avançadas de analisar ciclos em dados e técnicas e ferramentas correspondentes, aqui são alguns buracos de coelho que você pode querer considerar …

Análise de Fourier : Se é um fenômeno natural (e o que não é) as chances são de que ele tenha uma frequência (veja a ilustração das ondas senoidais). A análise de Fourier envolve a quebra ou extração dessas freqüências e a descoberta de funções que as recriam (mais uma vez simplificação), a idéia é que, ao reverter o processo, você pode gerar uma nova série temporal com suas próprias variáveis.

Hilbert-Huang & Wavelet transformam: 2 maneiras adicionais de decompor sinais, cada uma tem uma abordagem diferente da Análise de Fourier e pode funcionar melhor dependendo do tipo e disponibilidade de dados.

Previsão:

A previsão é um assunto pesado (c heck the notes below) , uma vez que você tenha descoberto que seus dados têm um componente cíclico e que são feitos quantificando-os, você também precisa descobrir se e quando ele se repetirá. tendência? para cima, para baixo, para os lados? o que está impulsionando o ciclo e o que o faz ter certeza de que se repetirá para sempre?

Essas questões exigem não apenas alguns conhecimentos sobre ciclos e matemática e algoritmos para recriá-los no futuro, mas, mais importante, também o conhecimento do assunto que você está prevendo para obter insights sobre o comportamento futuro e as razões subjacentes que o impulsionam.

Por exemplo, um ciclo em biologia mais cedo ou mais tarde chegará a uma parada abrupta quando o organismo morrer; uma tendência sazonal cíclica ( pense em vendas de fim de ano ) pode ser interrompida por novas tecnologias ou, como veremos, um fator externo também pode afetar um ciclo, o contexto aqui é rei, digamos que você encontre os seguintes dados / gráfico sem rótulo …

Sem contexto, podemos fazer a observação razoável de que existem ciclos e podemos prever o próximo bastante confortavelmente, eis o que realmente aconteceu junto com o contexto ausente …

Com o contexto restaurado, os dados reais e as observações anteriores, podemos agora perceber que o ciclo atual não está se comportando de uma maneira normal ou esperada, então podemos procurar por possíveis causas e ganhar clareza.

 Notas: Algumas fontes relacionadas à previsão (especialmente séries temporais) e ciclos: - Previsão: Princípios e Prática   Uma excelente introdução. - Profeta   (Biblioteca de previsão do Facebook), verifique o white paper para uma discussão relacionada sobre previsão, também uma ferramenta bastante inovadora. - Séries temporais em Python - Parte 2. Lidando com dados sazonais : Uma excelente série sobre previsão e extração de elementos cíclicos. 

Texto original em inglês.