14. 샘플링된 수치로 상사에게 보고하는 방법

2020. 9. 4. 22:59Google Products/Google Analytics

 

구글 애널리틱스의 경우, 조금이라도 표준리포트에서 변형을 하고자 하는 경우 샘플링이 들어갈 수 있다. 물론 샘플링은 최대한 피할수록 좋다. 그리고 샘플링을 피할 수 있는 다양한 팁들을 이전 포스팅에서 다루었었다.

 

이전 포스팅에서 샘플링을 피할 수 있는 법을 최대한 다루기는 하였지만, 그럼에도 불구하고 어쩔 수 없이 샘플링을 감내해야할 순간이 있다.

 

예를 들면 운영하고 있는 사이트가 정말 커서 하루에도 70만 가량의 세션이 발생하는 사이트라고 해보자. 이런 사이트들은 하루 데이터만 살펴보아도, 표준리포트에서 변형을 가할 경우 샘플링이 들어가기에 샘플링의 마수에서 벗어나기가 무척 힘들다.

 

그럼 어떻게 할까? 아래와 같이 말할 것인가?

 

나: 오늘 xxx캠페인에서 발생한 세션의 숫자는 1,000 / 전환수는 20회 입니다.

상사: 허..어제는 캠페인에서 발생한 세션 숫자가 3,000에 전환수는 80회 아니었나? 왜 갑자기 이렇게 줄었지?

나: 그게..구글 애널리틱스 데이터가 샘플링되어서 수치가 정확하지 않을 수 있습니다.

상사: 그래서?

 

회사에서 이렇게 보고하면, 상사의 눈총만 살 수 있다. 구글 애널리틱스가 샘플링해서 데이터를 주는 것은 데이터를 주는 것이고, 상사는 실제 숫자를 원한다. 이거 참..중간에 껴서 고생이 많을 수 있는 순간이다.


원하는 신뢰 구간 안에서 샘플링된 세션의 범위 구하기

신뢰 구간 내의 범위 구하기..고3 수능 이후로 보지 않은 단어들이다. 솔직히 경영 통계를 들었지만 그닥 성적이 좋지 못할 정도로 나는 통계에 강한 편도 아니다. 뭐..그래도 수능봤던 기억을 살리고 살려 이 정도까지는 이해할 수 있을 것 같다. 다시 전공을 선택할 수 있다면 나는 컴퓨터공학과 통계학 복수 전공을 하고 싶다.

 

오늘 포스팅은 통계를 모르는 사람도 쉽게 이해할 수 있도록 가급적 통계학 용어는 빼고 설명토록 해보겠다.

 

 

만약 현재 데이터를 분석해야하는데 분석해야 할 데이터가 1000만 세션을 가지고 있다고 하자. 여기에서 분석을 위하여 세그먼트를 적용하면? 50만 세션을 기준으로 샘플링이 일어날 것이다.

 

전체 트래픽은 1000만, 샘플링은 50만 세션에 대하여 일어난다. 즉, 샘플링한 세션 숫자와 전체 트래픽 간의 차이는 딱! 20배가 난다.

 

만약 여기에 광고캠페인A가 있다. 샘플링이 된 후 이 캠페인의 세션 숫자는 20,000이 나왔다.

이 20,000이라는 세션은 어떻게 도출된 것일까?

 

 

이해하기 쉽게 위에 그림으로 그려봤다.

 

1000만 세션 중 샘플링 50만 세션이 있다고 했을 때,  그 안에서 캠페인 A가 1,000세션 있었다고 하자. 그러면 GA는 1,000세션에 20을 곱하여 20,000세션을 캠페인A에 할당한다.

 

만약 1,100세션이 있었다면? 22,000세션이 될 것이다.

 

이 수치는 물론 샘플링 된 수치이기에 100% 정확한 수치가 아니다. 아~주 적은 확률이기는 하지만 캠페인이 실제로 1,000세션을 일으켰는데 하필이면 이 1,000세션이 샘플링된 50만 세션 안에 전부 포함되어 있을 수도 있다. 그러면 캠페인 수치는 실제보다 19,000세션이나 더 잡힌 것이 된다. 반대의 경우도 있다. 실제로 해당 캠페인이 1,000세션을 일으켰는데, 샘플링 값에 하필이면 하나도 캠페인A로부터 온 트래픽이 없을 수도 있다. 그럼 캠페인A 트래픽은 0이 찍힐 것이다. 물론 그럴 가능성도 무~척 희박하다.

 

20배라는 숫자는 전체 세션 숫자를 샘플링된 세션 값으로 나눈 값이다. 여기까지는 초등학교 수학만 해도 충분히 계산할 만한 수치이다 :)

 

GA상에는 캠페인A에 대한 20,000세션만 보일 것이다. 여기에서 50만 세션에 있었을 캠페인A에 대한 1,000세션을 역산해서 알아내야 한다.

 

이러한 데이터를 기반으로 우리는 샘플링에 따른 오차범위를 계산해볼 수 있다. Lunametric은 여기에서 세 가지 시나리오를 제시하고 있다.

 

오늘은 세션 숫자에 대한 오차범위 계산만 하고자 한다. 전환율의 경우는 샘플 숫자가 적은 경우에 적용하는 다른 공식이 있다. 더 귀찮기 때문에 다루지는 않겠다.

 

- 세션 숫자에 대한 오차범위 계산

- 전환율이나 이탈률과 같은 % 지표에 대한 오차범위 계산

- 세션시간/세션 당 페이지수와 같은 지표에 대한 오차범위 계산

 

여기서부터는 고등학교 수학이 사용된다.

세션 숫자에 대한 오차범위 계산 공식은 아래와 같다.

 

p ± 1.96 √(p(1–p)/n)

 

여기서 n은 샘플 숫자(예시에서 500,000세션)이고 p는 샘플링된 총 세션 속에서 캠페인A가 가지는 세션의 비율이다. 즉, 예시에서는 1,000/500,000으로 1/500 혹은 0.2%이다.

 

이에 따라 95% 신뢰 구간으로 계산된 세션의 값은 0.002 + (1.96(0.2*0.7)/500,000)^(1/2)로

여기에 역시 20을 곱하면,

95%로 신뢰할 수 있는 세션구간은 20,000±1,240, 즉 18,760~21,240이다.

즉, 캠페인A의 세션값은 95%의 신뢰수준으로 18,760에서 21,240이라는 값을 보인다.

 

여기에서 총 세션숫자를 반영하여 통계값을 조금 더 정확하게 계산해보자.

 

논리적으로 생각해볼 때, 1,000만 세션 중 50만 세션을 골라내는 작업과 60만 세션 중 50만 세션을 골라내서 처리하는 작업은, 샘플링의 정확도가 다를 수 밖에 없다.

 

따라서 통계적 분석 정확성을 더하기 위해서는 총 세션 숫자를 기준으로 추가 조정을 해줘야만 한다.

그 공식은 아래와 같다.

 

√((N–n)/(N–1)

 

N은 총 세션 숫자이고, n은 샘플링된 세션 숫자이다.

 

즉, 예시에 따르면 약 0.97이라는 수치가 나온다. 이 0.97을 1,240에 곱하면 1,207이 나온다. 크게 차이는 없다.

 

하지만 만약 총 세션 숫자가 1,000만이 아니라 60만이면 위의 조정값이 0.41이 나오기 때문에 훨씬 더 정교한 범위를 구할 수 있다.

 

복잡해보이지만, 고등학교 통계학 수준에서 크게 벗어나지 않는다.

 

 

 

 

 

(출처: clicknote.tistory.com/24)