spatial weights matrix
공간통계분야의 논문을 읽다 보면 '공간가중행렬(spatial weights matrix)' 또는 'W'라는 용어를 자주 볼 수 있다. 두 단어는 같은 것을 지칭한다. W는 weights의 w에서 따온 것인데, 행렬이기 때문에 대문자로 표현하는 것이다.
그렇다면 공간가중행렬(W)이란 무엇일까? 먼저 개념을 만들어 보자.
공간가중행렬은 공간적인 관계(spatial relationship)에 대한 것이다. 지난해 우리를 공포에 떨게 했던 전염성 질병인 '메르스'를 예로 들어 보자.
평창동과 신림동에서 메르스가 발병했다고 치자. 이때 사당동 입장에서 메르스가 발생할 확률을 계산하려고 한다. 그럼 여기서 평창동과 신림동, 둘 중 어느 곳에 더 많은 가중치를 주어야 할까?
물론, 신림동이다. 신림동이 사당동과 더 '가까이' 있기 때문이다.
so simple. 이게 공간가중행렬의 가장 기본적인 개념이다. 그래서 공간가중행렬의 기본적인 형태는 아래 식처럼 생겼다.
여기서 d는 거리다. 즉, 거리에 기반해서 공간가중행렬을 구성하는 경우에 공간가중행렬, W는 '역거리행렬'이라고도 볼 수 있다. 그리고 이 저반에는 토블러의 지리학 제1법칙(Tobler's first law of geography)이 깔려 있다.
모든 것은 다른 모든 것과 연관되어 있다. 그러나 가까이 있는 것은 멀리 떨어져 있는 것보다 더 많이 연관되어 있다.
그럼 이제 실질적으로 공간가중행렬을 어떻게 만드는지 그림을 통해서 이해해 보자. 그림으로 보면 더 쉽다. 아래 그림을 보면 A부터 E까지 총 5개의 공간단위(n)가 있다. 이들을 가지고 공간가중행렬인 W를 만드는 것이다.
여기서 잠깐. W를 만드는 방법은 굉장히 많다. Gi*를 만든 Getis Ord가 정리한 것만 해도 12가지는 된다. 그중에서 지금 사용할 방법은 인접(contiguous) 개념이다. 그게 뭐냐면, 나와 붙어 있는 공간단위에게는 1의 값을, 그렇지 않은 경우에는 0의 값을 주는 것이다. 위의 육각형 그림을 보라. A와 붙어 있는 공간단위는 B, D, E다. 그리고 아래 행렬을 보면, A행의 B, D, E는 각각 1의 값을 가지고 있다. 이번에는 D를 보라. D는 A, B, C, E와 모두 인접하고 있다. 그래서 아래 D행을 보면, 자기 자신을 제외하고는 모두 1의 값을 가지고 있다. 여기서는 자기 자신은 이웃으로 취급하지 않기 때문에 대각선은 모두 0이다.
그런데 보통 W를 사용할 때 그냥 이대로 사용하지 않고, 행표준화(row-standardization)라는 것을 한다. 행표준화가 뭐냐 하면, 말 그대로 각 행을 표준화하는 것이다. 아래 노란색 박스를 보면, 각 행이 표준화된 것을 볼 수 있다. 그럼 각 행의 합이 1이 된다. 그리고 이 행렬의 모든 값을 다 더하면 뭐가 될까? 전체 공간단위개수(n)가 된다. 이러한 특성이, 통계량을 식으로 표현할 때 그 식을 굉장히 간단하게 만들어 줄 수 있다.
이제 다음 것을 보자. 위의 것과 아래의 것은 무슨 차이가 있을까? 아래의 W에는 오른쪽에 스타(*)가 붙어 있다. 그리고 행렬을 보면 대각선이 0이 아닌, 1이다. 이 말인즉슨 자기 자신도 이웃으로 취급을 한다는 뜻이다. 자기 자신을 이웃으로 취급을 하느냐 안 하느냐의 차이가 Gi*와 Local Moran's I의 아주 결정적인 차이를 만든다.
그 차이는 아래 그림을 보면서 설명하겠다. Local Moran's I는 4가지 경우에 대해 파악할 수 있다. 먼저, H-H는 High-High라는 뜻이다. 즉, 나도 높은 값, 내 주변도 높은 값이라는 의미다. 이건 '핫스팟(hot spot)'이다. L-L은 Low-Low다. 나도 낮은 값, 내 주변도 낮은 값이다. 이는 '콜드스팟(cold spot)'이다. 그럼 H-L와 L-H는 뭘까? 나는 높은데 내 주변은 낮은 경우, 또는 나는 낮은데 내 주변은 높은 경우이다. 이런 경우는 공간 아웃라이어(spatial outlier)라고 한다.
반면에 Gi*는 핫스팟 또는 콜드스팟의 경우밖에 파악할 수 없다. 왜일까? 그 비밀은 바로 공간가중행렬의 대각선에 있다. 대각선의 값이 0이 아니기 때문이다. 그건 곧 자기 자신도 이웃으로 취급한다는 얘기다. 나도 이웃의 바운더리 안에 속하게 되기 때문에 나와 이웃은 같은 값을 가질 수밖에 없는 것이다.
아래 그림을 보면, A와 B는 나와 이웃을 분리하여 생각한다. 그렇기 때문에 Local Moran's I에서처럼 H-H, L-L, H-L, L-H의 4가지의 경우가 모두 가능하다. 하지만 C는 어떻지? 나도 이웃으로 취급하기 때문에 나와 이웃은 항상 같은 값을 가질 수밖에 없다. 그래서 Gi*의 경우처럼 H-H와 L-L밖에 탐지하지 못하는 것이다.
같은 공간통계량이라고 해도 이런 차이가 있다. 그러니까 내가 만약 공간적 아웃라이어를 탐지하고 싶다면, Gi*가 아닌, Local Moran's I를 사용해야 하는 것이다.