Eu estou quebrando a cabeça com isso já faz um tempo e estou empacado. Medir a correlação nas séries temporais é algo realmente não trivial pra dados com “spikes”.
Primeiro vamos importar dados de picos de 2 indivíduos
ind1 <- c(110.5, 113.2, 116.5, 119.2, 121.9, 124.5, 127.2, 130.5, 134.5, 136.5,
138.5, 141.2, 143.9, 148.5, 151.2, 154.6, 157.2, 158.6, 161.2, 164.6, 167.2,
169.2, 171.2, 174.6, 177.2, 179.2, 180.6, 183.3, 185.3, 187.9, 192.6, 195.3,
197.9, 199.9, 201.9, 211.3, 213.3, 216, 218, 221.3, 223.3, 231.3, 237.3,
240, 245.3, 247.3, 249.3, 251.3, 254, 257.3, 258.7, 260.7, 266, 268, 270,
272.7, 274.7, 279.3, 282.7, 285.4, 287.4, 289.4, 292, 294, 296.7, 298, 300,
301.4, 303.4, 306.7)
ind2 <- c(111.4, 118.1, 122.1, 126.1, 130.1, 133.4, 136.7, 139.4, 142.1, 144.1,
148.8, 152.1, 156.1, 158.8, 162.8, 166.8, 179.4, 181.4, 183.5, 186.1, 188.8,
197.5, 199.5, 202.1, 211.5, 213.5, 216.2, 218.2, 220.8, 222.8, 231.5, 236.8,
240.2, 244.8, 247.5, 249.5, 251.5, 254.2, 256.9, 258.9, 260.9, 263.5, 266.2,
268.2, 272.9, 274.9, 278.9, 282.2, 285.6, 287.6, 290.9, 294.2, 296.9, 299.6,
303.6, 307.6, 310.9, 314.2, 316.9, 320.9, 323.6, 326.3, 328.9, 332.3, 334.9,
337.6, 340.3, 342.9, 345.6, 348.3)
Eu fiz uma função que toma uma série temporal, a divide em um número definido de intervalos e conta o número de acenos em cada intervalo:
contagem<-function(X,n){
breaks<-seq(from=min(X), to=max(X), by=(max(X)-min(X))/n)
count<-numeric()
for (i in 1:n) count[i]<-length(X[X>=breaks[i] & X<breaks[i+1]])
count
}
Depois, é só contar o número de vezes onde houve 0, um ou 2 acenos em um determinado intervalo
res<-cbind(contagem(ind1,200),contagem(ind,200))
obs.sync<-table(rowSums(res))
Eu pensei que depois daria simplesmente pra fazer um teste de qui-quadrado pra ver se há uma associação de acenos maior do que o esperado por acaso. O problema é os valores observados são muito influenciados pelo tamanho da “janela” de tempo. Nesse caso, o resultado é:
0 1 2
80 102 18
Notem que tanto o 0 como o 2 indicam sincronização. Ou seja, nesse caso há 98 janelas sincronizadas e 102 não-sincronizadas. Isso faz sentido pra vcs?