Fiz essa pergunta no StackOverflow e foi recomendado fazer aqui.
Eu tenho duas séries temporais de dados do acelerômetro 3D que possuem bases de tempo diferentes (relógios iniciados em momentos diferentes, com alguma fluência muito leve durante o tempo de amostragem), além de conter muitas lacunas de tamanho diferente (devido a atrasos associados à gravação para separar dispositivos flash).
Os acelerômetros que estou usando são o GCDC X250-2 barato . Estou executando os acelerômetros com o maior ganho, para que os dados tenham um nível de ruído significativo.
Cada série temporal possui cerca de 2 milhões de pontos de dados (mais de uma hora a 512 amostras / s) e contém cerca de 500 eventos de interesse, onde um evento típico abrange 100-150 amostras (200 a 300 ms cada). Muitos desses eventos são afetados por falhas de dados durante gravações em flash.
Portanto, os dados não são primitivos e nem são muito bonitos. Mas minha inspeção do globo ocular mostra claramente que contém as informações em que estou interessado (posso postar gráficos, se necessário).
Os acelerômetros estão em ambientes semelhantes, mas são apenas moderadamente acoplados, o que significa que eu posso dizer a olho quais eventos correspondem a cada acelerômetro, mas até agora não obtive êxito em software. Devido a limitações físicas, os dispositivos também são montados em diferentes orientações, onde os eixos não coincidem, mas são tão ortogonais quanto eu poderia fazê-los. Assim, por exemplo, para acelerômetros de 3 eixos A e B, + Ax mapeia para -By (para cima), + Az mapeia para -Bx (esquerda-direita) e + Ay mapeia para -Bz (frente-trás) .
Meu objetivo inicial é correlacionar eventos de choque no eixo vertical, embora eu acabasse gostando de: a) descobrir automaticamente o mapeamento do eixo, b) correlacionar a atividade nos ases mapeados ec) extrair diferenças de comportamento entre os dois acelerômetros (como torcer ou flexão).
A natureza dos dados da série temporal torna inutilizável o numpy.correlate () do Python. Eu também olhei para o pacote do R's Zoo, mas não avançamos com ele. Procurei ajuda em diferentes campos da análise de sinais, mas não fiz nenhum progresso.
Alguém tem alguma pista sobre o que posso fazer ou abordagens que devo pesquisar?
Atualização 28 de fevereiro de 2011: adicionadas algumas plotagens aqui mostrando exemplos dos dados.
Respostas:
A questão diz respeito ao cálculo da correlação entre duas séries temporais amostradas irregularmente (processos estocásticos unidimensionais) e a utilizá-la para encontrar o deslocamento no tempo em que elas estão maximamente correlacionadas (sua "diferença de fase").
Esse problema geralmente não é tratado na análise de séries temporais, pois presume-se que os dados das séries temporais sejam coletados sistematicamente (em intervalos regulares de tempo). É antes a província da geoestatística , que diz respeito às generalizações multidimensionais de séries temporais. O conjunto de dados geoestatísticos arquetípicos consiste em medições de amostras geológicas em locais com espaçamento irregular.
Com dois milhões de pontos, você poderá detectar pequenos desvios da estacionariedade. É possível que a diferença de fase entre as duas séries temporais também possa variar ao longo do tempo. Para lidar com isso, calcule o variograma cruzado separadamente para diferentes janelas espaçadas ao longo do período.
fonte