태그 보관물: correlation

correlation

두 시계열을 간격과 다른 타임베이스와 연관시키는 방법? 에 StackOverflow에 걸쳐,

내가 물었다 이 질문 에 StackOverflow에 걸쳐, 여기를 물어 추천되었다.


나는 서로 다른 타임베이스 (샘플링 시간 동안 약간의 크리프와 함께 다른 시간에 시작된 클럭)를 가지고 있으며 다른 크기의 많은 간격을 포함하고 (분리에 대한 쓰기와 관련된 지연으로 인해) 두 개의 3D 가속도계 데이터 시리즈가 있습니다. 플래시 장치).

내가 사용하는 가속도계는 저렴한 GCDC X250-2 입니다. 가속도계를 최대 게인으로 실행하고 있으므로 데이터의 노이즈 플로어가 상당히 높습니다.

시계열은 각각 약 2 백만 개의 데이터 포인트 (512 샘플 / 초에서 1 시간 이상)를 가지며 약 500 개의 관심 이벤트를 포함하며, 여기서 일반적인 이벤트는 100-150 샘플 (각 200-300ms)에 이릅니다. 이러한 많은 이벤트는 플래시 쓰기 중 데이터 중단의 영향을받습니다.

따라서 데이터는 깨끗하지 않으며 매우 예쁘지 않습니다. 그러나 내 시선 검사에는 관심있는 정보가 명확하게 포함되어 있습니다. 필요한 경우 플롯을 게시 할 수 있습니다.

가속도계는 비슷한 환경에 있지만 적당히 결합되어있어 각 가속도계에서 어떤 이벤트가 일치하는지 눈으로 알 수 있지만 소프트웨어에서 지금까지 실패했습니다. 물리적 한계로 인해 장치가 서로 다른 방향으로 장착되어 축이 일치하지 않지만 가능한 한 직각에 가깝습니다. 예를 들어, 3 축 가속도계 A 및 B의 경우 + Ax는 -By (위쪽 아래)에, + Az는 -Bx (왼쪽 오른쪽)에, + Ay는 -Bz (앞뒤)에 매핑됩니다. .

나의 첫 번째 목표는 세로 축의 충격 이벤트를 상관시키는 것이지만 결국 a) 축 매핑을 자동으로 감지하고 b) 매핑 된 에이스의 활동을 상관 시키며 c) 두 가속도계 간의 동작 차이 (예 : 비틀림)를 추출하려고합니다. 또는 구부림).

시계열 데이터의 특성상 파이썬의 numpy.correlate ()를 사용할 수 없습니다. 나는 또한 R ‘s Zoo 패키지를 보았지만 그것에 진전하지 않았습니다. 도움을 얻기 위해 여러 가지 신호 분석 분야를 살펴 봤지만 진전이 없었습니다.

누구나 내가 할 수있는 일이나 연구해야 할 접근법에 대한 단서가 있습니까?

2011 년 2 월 28 일 업데이트 : 여기 에 데이터의 예를 보여주는 플롯이 추가되었습니다 .



답변

문제는 불규칙적으로 샘플링 된 2 개의 시계열 (1 차원 확률 론적 프로세스) 사이의 상관 관계를 계산하고 이를 최대 상관 된 시간 오프셋 ( “위상차”)을 찾는 데 사용하는 것입니다.

시계열 데이터는 체계적으로 (정기 시간 간격으로) 수집되는 것으로 가정되기 때문에이 문제는 일반적으로 시계열 분석에서 해결되지 않습니다. 오히려 시계열의 다차원 일반화와 관련된 지형 통계학 의 주입니다 . 전형적인 지질 통계 데이터 세트는 불규칙한 간격으로 지질 샘플을 측정하는 것으로 구성됩니다.

간격이 불규칙하면 한 쌍의 위치 사이의 거리가 달라집니다. 두 거리가 같을 수는 없습니다. 지리 통계학은 경험적 variogram으로 이것을 극복합니다 . 이것의 “전형적인”(종종 평균 또는 중앙값) 값을 계산한다 고마웠다 “semivariance”- 여기서 Z ( P은 ) 지점에서의 측정 값을 나타내고, Ppq 사이의 거리는 “lag”라 불리는 간격 내에 놓 이도록 제한됩니다. 우리가 프로세스 Z 라고 가정하면

(z(p)z(q))2/2

z(p)

p

p

q

Z

정지 및 공분산을 가지고 다음 semivariance의 기대 (동일한 최대 공분산 동일 임의 대한 P ) 마이너스의 공분산 Z ( P )Z ( 질문을 ) . 이 지연으로 인한 비닝은 불규칙한 간격 문제에 대처합니다.

Var(Z(p))

p

Z(p)

Z(q)

(z(p),w(p))

z

w

2 백만 점을 사용하면 정상 성과의 작은 편차를 감지 할 수 있습니다. 두 시계열의 위상차도 시간에 따라 달라질 수 있습니다. 이 기간 동안 서로 다른 창에 대해 교차 Variogram을 별도로 계산하여 이에 대처하십시오.

O(nk)

O(n2)

k


답변