경험적 직교 함수 분석: EOF
정의
시계열 데이터에 대한 주성분 분석을 경험적 직교 함수EOF, Empirical Orthogonal Function 분석이라 한다.
설명 1 2
EOF 분석은 데이터를 지배적으로 잘 설명하지만 상대적으로 수가 적고 상관관계가 없는 독립 변수들로써 원래의 패턴 대부분을 요약하려는 통계적 기법이다. 느낌으로 따질 것 같으면 주성분 분석과 푸리에 변환 그 사이 어딘가의 철학을 따르며 실제로 그 용도나 장단점 역시 그와 비슷하다 볼 수 있겠다.
보통은 실제 구현 또한 특이값 분해를 쓰기 때문에 PCA 그 자체인데, PCA를 PCA라 하지 않고 EOF라 따로 부르는 가장 큰 이유는 분야field의 차이라 할 수 있다. 많은 경우 EOF는 해양에 관련되며 드넓은 해역을 다루는 다변량 시계열 데이터에 적용된다.
EOF는 푸리에 해석으로 따지자면 기저가 되는 삼각함수를 데이터에 기반한 경험적 함수empirical function $f_{k} : \mathbb{R} \to \mathbb{R}$ 들의 선형결합으로 나타내는 것을 목적으로 한다. 이는 함수라는 것의 일반적인 정의를 숙지한 수학자들에게는 다소 낯설 수 있지만, 지구과학을 전공한 입장에서 함수라는 건 수 하나를 넣었을 때 수 하나가 나오는 고교 수준의 함수로써 더욱 친숙할 수 있음을 감안해보는 게 좋다.
디자인 매트릭스 $X \in \mathbb{R}^{m \times n}$ 는 $n$개 지점에서 $i = 1 , \cdots , m$ 번째 타임스텝이 기록된 패널 데이터셋로 본다. 이에 대한 특이값 분해의 결과로써 행렬 $U, \Sigma, V$ 가 있을테고 $U$ 의 $j$번째 열벡터는 그 즉시 $j$번째 EOF가 된다. $j$번째 특이값은 PCA와 마찬가지로 $j$번째 EOF의 중요도에 대한 지표로써 해석된다.
예시
이 데이터는 동해의 150개 지점에서 5년 반동안 수집된 해수면온도SST, Sea Surface Temperature 데이터로써, 하이컴에서 얻을 수 있다.
원래의 데이터가 위와 같다면, 전체 데이터는 다음과 같이 처음 두 개의 EOF로써 거의 대부분이 설명된다.
이러한 결과를 얻는 $U$ 를 구하려면 단지 $X \in \mathbb{R}^{m \times 150}$ 에 특이값 분해를 적용하면 된다. 다음의 코드는 줄리아로 쓰여졌으나 언어는 크게 중요하지 않다.
U, S, V = svd(Matrix(data))
plot(
plot(U[:, 1]),
plot(U[:, 2]),
)

저희들의 저서 「줄리아 프로그래밍」이 2024 세종도서 학술부문에 선정되었습니다!

