로그 묶기(log binning)에 관해 2008년에 글을 쓴 이후 오랜만에 다시 관련된 글을 쓰려고 한다. 그동안 꾸준히 로그 묶기 방법을 이용해왔고 다양한 경우에 대해 적용하다보니 나름대로 이해도 깊어지고 코드도 세분화되었다. 그중에서도 지난 번 글에서 분명하지 않았던 이슈가 있었는데 그 얘기를 해보려고 한다.


문제는, 데이터를 묶는 구간의 길이(period)와 그 안에 있는 데이터의 개수(number)가 차이가 날 때 어느 쪽을 이용해서 평균을 구해야 하는지에 관한 것이다. 편의상 구간의 길이를 이용하는 걸 ‘구간 틀맞춤’, 개수를 이용하는 걸 ‘개수 틀맞춤’이라 부르자. 이를테면 구간이 5부터 9, 즉 x=5, 6, 7, 8, 9라고 하자. 그런데 실제로 데이터는 x=6, 9 두개뿐이라고 하고 여기 해당하는 y 값은 각각 3, 5라고 하자. 이 구간에서 y의 합인 8을 데이터 개수 즉 2로 나누어서 묶을지(개수 틀맞춤), 아니면 구간의 길이인 5로 나누어서 묶을지(구간 틀맞춤)를 선택해야 한다. 문제는 x=5, 7, 8에 해당하는 데이터가 없다는 것이다. 이 x들에 해당하는 y를 0으로 놓자고 ‘가정’하자면 구간 틀맞춤을 해야 하지만, 그렇지 않은 일반적인 경우에는 주의깊게 판단해야 한다.



위 그림은 구간 틀맞춤이 적절하지 않은 경우의 예를 보여준다. 내가 지금 연구하고 있는 모형에서 얻은 데이터를 이용했는데 어떤 모형인지는 중요하지 않다. 원래 데이터의 경향을 잘 반영하는 틀맞춤 방법이 개수 틀맞춤(log-bin by number)인 경우다. 위의 예에서 x=5, 7, 8에 해당하는 y가 없다고 그걸 0으로 가정하면(구간 틀맞춤) 특히 x가 큰 구간에서는 무수히 많은 이런 0들 때문에 로그 묶기를 한 결과가 줄어드는 모양이 나타난다. 위 그림의 경우, x가 커지면서 y가 커지므로 비어있는 곳의 y값을 0으로 가정하는 것이 적절하지 않은 것으로 보인다. 즉 y가 x에 따라 커지느냐 줄어드느냐에 따라 어떤 틀맞춤 방법이 적절한지가 달라진다는 것이 나의 결론이다.