합의된 숫자를 잘 해석하기 위해 필요한 전제들
'지표(Indicators)'와 '지수(Index)'는 자주 쓰는 말입니다. 흔히 지표는 'KPI'의 'I'로 많이 알려져 있습니다. 어떤 대상을 측정하기 위한 수단이죠. 지수는 '주가 지수', '빅맥 지수'처럼 시간의 흐름에 따라 동질한 집단이 어떻게 변해가는지 보기 위해 만든 숫자입니다.
기업에서도 지표와 지수는 많이 사용하고 혼용되기도 합니다. 지표는 성과를 측정하기 위해 만들어집니다. 사실상 기업에서 다루는 숫자의 상당수는 모두 지표입니다. 매출부터 클릭률까지 지표가 아니고서는 정량적인 이해가 어렵습니다. 지수를 만들어야 할 때도 있습니다. 어떤 현황을 합의된 기준에서 앞으로 계속 제공해야 하거나 내부적으로 한 주제를 시간의 변화에 따라 계속 추적하고 다른 성과 지표들과의 관계를 파악하기 위해 지수를 새로 만들기도 합니다.
이번 아티클은 Turn-over, Reaction-rate 등 단순히 기존 데이터를 사칙 연산해서 뭔가 만드는 지표가 아닌 완전히 새로운 지수를 개발해야 할 때 고려해봐야 할 내용을 공유합니다. 대표성, 상대적인 거리, 인덱스의 불변성입니다.
커머스 기업에서 내부 판매 상품의 속성을 태깅해서 몇 년간의 트렌드 변화를 입점 업체에 알려주는 서비스를 개발한다고 생각해 봅시다. 시장 지배적인 플랫폼의 판매 데이터를 통한 인사이트는 입점 업체에게는 분명 매력적인 정보입니다. 실제 플랫폼을 가진 많은 회사들이 데이터 판매 혹은 컨설팅, 정보 제공 등의 서비스를 함께 하고 있으니까요. 하지만 트렌드를 일련의 숫자로 나타낸 지수가 전체 상품을 대표하지 못한다면 지수의 가치는 어떻게 될까요?
실제 많은 이유로 지수가 대표성을 잃게 됩니다. 결측치가 발생하는 게 원인이죠. 태깅을 해서 상품의 속성을 만들 때 태깅이 안되거나 아직 태거의 성능이 떨어져 적절한 분류가 되지 않는 특정 카테고리를 제외할 수 있습니다. 인프라 문제로 특정 기간의 데이터 유실 문제도 있죠. 지수가 특정 기간의 이동 평균을 통해 나오는 것이라면 기간의 유실은 좋은 지수를 만드는 데 문제가 될 수 있습니다. 혹은 지수를 설계하는 과정에서 프로토 타입으로 만들어서 일부 데이터로만 지수를 만들었다면 현재 지수 값은 향후 어떤 데이터를 함께 포함하느냐에 따라 처음부터 다시 세팅해야 할 수도 있습니다.
기업 내부 매출 데이터처럼 전수를 토대로 지수를 만드는 경우라면 상대적으로 낫지만 온라인 외부 데이터를 통해 빈도에 따른 동향을 파악하는 지수를 만들어야 한다면 합계를 알 수 없는 경우가 많습니다. 수집한 데이터가 이 세계를 다 모았다는 보장이 없는 경우가 많으니까요. 단순히 특정 시점의 특정 값이 커졌다고 이게 더 나아졌다는 전제를 잃게 되는 것이죠. 이런 경우 명확한 한계점을 표기하고 그 안에서의 해석으로 지수를 활용하는 차선책도 있습니다.
지수를 만들 때 값을 변환하는 과정을 거칠 때가 많습니다. 전체적인 추세 속에서 상대적인 값이 더 중요할 경우 그렇습니다. 처음 수집된 절대값을 그대로 사용하는 것보다 상대적인 비중으로 표현합니다. 또한 비중 값으로 지수를 만든다면 너무 숫자가 작아서 전체적으로 숫자를 키운다든지 각각 스케일이 다른 몇 가지를 가져와서 상대적인 지수를 만들어야 하는 경우 등도 그렇습니다. 이 때는 스케일의 변화에 따른 상대 값의 가치를 잃게 되는지 생각해봐야 합니다.
흔히 정규화, 표준화, 로그 변환 등을 할 때 그렇습니다. 각 변환 방법에 따라 구간이 정해지고 구간 내에서 상대적인 크기가 결정됩니다. 어떤 방법을 선택하느냐에 따라 값과 값 사이의 큰 차이가 특정 구간에만 좁혀지는 일도 있고 음수로 나오는 값도 발생합니다. 원천 데이터 값과 변환 값의 상대적인 값들의 거리를 보고 그대로 두는 게 나은지 생각해 볼 필요가 있습니다.
상대적인 거리의 의미를 생각하는 것도 중요합니다. 이게 그냥 서수로써 가치가 있는 것인지 상대적인 크기의 차이 값이나 비율이 어떤 의미가 있는지 정확한 해석이 동반되지 않으면 지수를 받는 사람이 자의적으로 계산으로 활용하는 일도 벌어집니다. 때로는 지수를 만들 때 비중을 예쁘게 만들기 위해 아웃라이어(outlier)를 제거하는 결정을 하려고 합니다. 하지만 정말 유효한 숫자라면 너무 크거나 작다고 해서 꼭 제거를 해야 하는지는 비즈니스 기반의 논의가 필요합니다.
지수를 만들고 운영하면서 이 지수를 구성하는 요소가 바뀌는지 생각해 봅시다. 항상 같은 값만 있는 지수의 결과만 나오는 게 좋은 질문도 있지만 새로운 값이 지수에 시의성 있게 나와야 가치가 있는 인덱스도 필요합니다. 지수를 사전에 정의하는 것과 값을 통해 매 번 인덱스를 만드는 로직을 타서 결과가 나오게 하는 것 중 어떤 게 좋은 지 설계해야 합니다.
'구글 트렌드'처럼 정기적으로 새로운 키워드가 필요한 주제면 인덱스가 나오는 설계 자체가 중요합니다. 반면 인덱스가 한 번 흔들리면 지수 활용이 제약받는 일도 생깁니다. 한 시점의 스냅샷만 의미가 있고 다시 인덱스가 바뀌는 시점과 그다음 시점과의 비중으로 만들어진 지수 값의 해석이 어려워지는 일도 있습니다.
여러 토픽을 다소 거칠 게 썼지만 얻고자 하는 방향은 같습니다. 원래 데이터의 취지에 맞는 지수를 만들자는 것이죠. 데이터가 주는 본래 의미의 왜곡 없이 지수를 만드는 과정에서 생각해봐야 할 내용이라고 생각하시면 좋겠습니다.