Supondo que se tenha uma série temporal a partir da qual se possa tomar várias medidas, como período, máximo, mínimo, média etc. e depois usá-las para criar uma onda senoidal modelo com os mesmos atributos, existem abordagens estatísticas que se possa usar para quantificar quão perto os dados reais se encaixam no modelo assumido? O número de pontos de dados na série varia entre 10 e 50 pontos.
Um primeiro pensamento muito simplista meu foi atribuir um valor ao movimento direcional da onda senoidal, ou seja, +1 +1 +1 +1 -1 -1 -1 -1 -1 -1 -1 -1 +1 +1 +1 +1, faça o mesmo com os dados reais e, de alguma forma, quantifique o grau de similaridade do movimento direcional.
Edit: Tendo pensado mais no que realmente quero fazer com meus dados e à luz das respostas à minha pergunta original, o que preciso é de um algoritmo de tomada de decisão para escolher entre suposições concorrentes: a saber, que meus dados são basicamente lineares (ou tendências) com ruído que poderia ter elementos cíclicos; meus dados são basicamente cíclicos, sem tendência direcional; os dados são essencialmente apenas ruído; ou está em transição entre qualquer um desses estados.
Meu pensamento agora é talvez combinar alguma forma de análise bayesiana e métrica euclidiana / LMS. Os passos nesta abordagem seriam
Crie a onda senoidal assumida a partir de medições de dados
Ajustar uma linha reta LMS aos dados
Derivar uma métrica euclidiana ou LMS para partidas dos dados originais de cada uma das opções acima
Crie um Bayesiano anterior para cada um com base nessa métrica, ou seja, 60% das partidas combinadas se vinculam a uma, 40% à outra, favorecendo os 40%
deslize uma janela um ponto de dados ao longo dos dados e repita o procedimento acima para obter novas% de métricas para este conjunto de dados ligeiramente alterado - esta é a nova evidência - faça a análise bayesiana para criar uma posterior e alterar as probabilidades que favorecem cada suposição
repita ao longo de todo o conjunto de dados (mais de 3000 pontos de dados) com esta janela deslizante (comprimento da janela 10-50 pontos de dados). A esperança / intenção é identificar a suposição predominante / favorecida em qualquer ponto do conjunto de dados e como isso muda com o tempo
Quaisquer comentários sobre essa metodologia potencial seriam bem-vindos, particularmente sobre como eu poderia realmente implementar a parte da análise bayesiana.
fonte
Seu "primeiro pensamento simplista" de representar qualitativamente apenas o movimento direcional é semelhante em espírito ao algoritmo SAX de Keogh para comparar séries temporais. Eu recomendo que você dê uma olhada: Eamonn Keogh e Jessica Lin: SAX .
Na sua edição, parece que agora você está pensando em resolver o problema de maneira diferente, mas você pode achar que o SAX fornece uma peça do quebra-cabeça.
fonte
Embora eu esteja um pouco atrasado para a festa, se você estiver pensando em algo sinusoidal, as transformações de wavelets também são uma boa ferramenta para ter no bolso. Em teoria, você pode usar transformadas wavelet para decompor uma sequência em várias "partes" (por exemplo, ondas de diferentes formas / frequências, componentes que não são de onda, como tendências, etc.). Uma forma específica de transformação de onda que é usada uma tonelada é a transformação de Fourier, mas há muito trabalho nessa área. Eu adoraria poder recomendar um pacote atual, mas não faço o trabalho de análise de sinal há um bom tempo. Lembro-me de alguns pacotes Matlab que suportam funcionalidades nesse sentido, no entanto.
Outra direção a seguir se você estiver apenas tentando encontrar tendências nos dados cíclicos é algo como o teste de tendência de Mann-Kendall. É muito usado para detectar mudanças no clima ou na qualidade da água, que tem fortes influências sazonais. Ele não possui os recursos de algumas abordagens mais avançadas, mas como é um teste estatístico veterano, é bastante fácil de interpretar e relatar.
fonte