구글 애널리틱스를 사용하면서 가장 당황스러웠던 것이 샘플링이라는 개념이었습니다. 특히나 10년 넘게 데이터 베이스 위주의 데이터를 분석하면서 구글 애널리틱스의 샘플링은 이해할수 없는 개념이기도 했구요. 샘플링에 대해 간단하게 얘기해 보겠습니다.
샘플링(sampling)이란
한마디로 구글 애널리틱스가 분석하는 데이터를 전체로 하지 않고 일부분만을 추출하여(sampling) 분석하는 개념입니다. 무료버전 기준 50만 건이 넘어가면 샘플링이 일어납니다. 얼마만큼의 데이터를 샘플링 할지는 구글 애널리틱스 알고리즘에 의해 결정됩니다. 이렇게 하는데는 여러가지 이유가 있겠지만, 대표적인 이유로 생각되는 것은 성능적으로 전체 데이터를 모두 분석하기 어렵기 때문입니다. 과거에 비하면 대용량 데이터 처리 기술이 발달해서 빅데이터다 인공지능이다 라고 얘기하고 있지만, 여전히 대용량 데이터를 처리하는 것은 처리 능력이 받쳐줘야 가능합니다. 특히나 웹데이터는 트래픽이 일어날때마다 다수의 관련된 데이터가 실시간으로 생성되니 만큼, 데이터의 양이 어마어마하게 발생합니다. 이런 데이터를 모두 처리하겠다는 것은 대단히 어려운 일입니다. (구글이 무료 GA버전 까지 제공하는 것을 생각해보면 이런 데이터들을 처리하기 위한 장치와 성능이 얼마나 많이 요구되는지를 상상해 볼수 있습니다.) 그래서 결국 전체중에 일부만을 발췌해서 분석하는 샘플링 기법이 적용됩니다. 모집단에서 일부만 추출해서 예측분석을 하는 통계기법과 비슷한 이치입니다. GA는 샘플링을 통해 일부 데이터를 분석하고, 분석을 기반으로 예측해서 결과를 내놓습니다. 샘플링은 데이터 분석중에 강제로 자주 일어나는데, 정확한 데이터 분석을 위해 GA360 유료 샘플링되지 않은 보고서(unsampled report)를 제공합니다.
샘플링이 일어나면 어떤 문제가 나타나나?
샘플링은 성능을 위해서는 대단히 좋은 기법일 것입니다. 다만 분석하는 사람입장에서는 문제점을 고려해야 합니다. 가장 큰 문제는 GA가 숫자를 예측해서 보여준다는 것입니다. 예측해서 보여주는 것이 무엇이 문제인가? 라고 생각하는 분들도 있을 것입니다. 예측이란게 말그대로 예측, 즉 예상 값이라는 것이 큰 문제입니다. 예측값이기 때문에 100% 신뢰할수 없습니다. 구글과 관련된 문서에서는 10% 정도의 오차를 인정해야 한다고 합니다. 10% 라....작다면 작은 숫자입니다, 다만 1의 오차도 큰 파장을 일으킬수 있는 분야, 예를 들어 신약개발, 임상실험, 제조생산 등 분야에서는 허용할 수 없는 수치입니다. 그래서 GA의 활용 분야는 명확한 것 같습니다. 예전에 이런 일이 있었습니다. GA 리포트를 보는 중에 이상한 결과를 확인하게 됩니다
Users 4
Sessions 0
엥? 아니 무슨 세션은 0인데 왜 유저수가 4야? 구글에서 제공하는 메트릭 항목의 구성 원리와는 전혀 맞지 않는 결과입니다. 세션의 유니크 한 값이 유저이니까요. 원래대로라면 세션도 최소 4가 나와야 맞는 것입니다. 그런데 0입니다.
한참을 고민하다 확인해 보니 GA가 샘플링해서 사용한 데이터가 전체의 25% 였고, 유저수가 4인 것은 GA가 아무 생각없이(?) 유저에 4라는 값으로 치환한 것이기 때문이었습니다. (100/4=25 그래서 4를 곱해야한다. 그렇다면 세션도 4라는 값으로 치환하던가.....;) 그래서 4가 되었습니다. 샘플링은 이런 말도 안되는 결과를 만들어 낼수 있습니다. 샘플링은 특히데 이터가 대용량일때와 데이터 블렌딩과 커스텀리포트, 세그먼테이션 등 조작중에 많이 발생합니다.
샘플링이 있어났는지 확인하는 방법은 다음과 같습니다. 우상단에 Channels 옆 아이콘이 파란색이면 샘플링이 없는 것이고 (그림은 100% 세션을 사용함) 아이콘이 노란색으로 색상으로 바뀌면 샘플링 된 것입니다. 샘플링된 수치도 나타납니다.
샘플링에 대처하는 방법
무료버전 기준, 대용량을 사용하지 않는다, 복잡한 리포트를 구성하지 않는다, 데이터를 쪼개서 본다 등 언발의 오줌누기 수준의 방법은 있습니다만, 딱히 완벽한 방법은 없습니다. 그저 샘플링을 인정하는 수밖에요. (아니면 고가의 GA360 쓰던가)
첫 직장을 다닐때 전자제품 자재를 판매하고 이것이 매출로 이어지는 비즈니스가 있었습니다. 하루는 한달 마감이 돌았는데, 수만건의 거래 내역중에 한건이 맞지 않는 것이었습니다. 즉 거래는 있는데 자재는 없는 상황이었죠. 몇시간 동안 원인이 뭔지, 로직이 뭐가 잘못되었는지, 프로그램 로직을 검증하며 로그와 데이터 베이스를 모두 뒤져가며 찾았던 기억이 있습니다. GA는 이런 용도로 사용하는 툴이 아닙니다. 현상과 트렌드를 보는 툴에 가깝다고 보면 됩니다. 거래와 관련 된 데이터 중에 몇건이 안맞는다 해도 그럴수 있습니다. DB쟁이들과 통계쟁이들은 이해할수 없겠지만 태생이 그런 시스템입니다.
하지만 샘플링이란 현상이 있다는 것을 명확히 알고 데이터를 분석하는 것과 그렇지 않은것에는 분명 차이가 있을 것입니다. 모든 분석 툴이 마찬가지겠지만 구글 애널리틱스가 유난히 분석 경험이 중요한 이유가 이때문입니다. (경험적으로 알아야할 돌발과 예외 상황이 많아요~)
구글 애널리틱스를 사용하면서 가장 당황스러웠던 것이 샘플링이라는 개념이었습니다. 특히나 10년 넘게 데이터 베이스 위주의 데이터를 분석하면서 구글 애널리틱스의 샘플링은 이해할수 없는 개념이기도 했구요. 샘플링에 대해 간단하게 얘기해 보겠습니다.
한마디로 구글 애널리틱스가 분석하는 데이터를 전체로 하지 않고 일부분만을 추출하여(sampling) 분석하는 개념입니다. 무료버전 기준 50만 건이 넘어가면 샘플링이 일어납니다. 얼마만큼의 데이터를 샘플링 할지는 구글 애널리틱스 알고리즘에 의해 결정됩니다. 이렇게 하는데는 여러가지 이유가 있겠지만, 대표적인 이유로 생각되는 것은 성능적으로 전체 데이터를 모두 분석하기 어렵기 때문입니다. 과거에 비하면 대용량 데이터 처리 기술이 발달해서 빅데이터다 인공지능이다 라고 얘기하고 있지만, 여전히 대용량 데이터를 처리하는 것은 처리 능력이 받쳐줘야 가능합니다. 특히나 웹데이터는 트래픽이 일어날때마다 다수의 관련된 데이터가 실시간으로 생성되니 만큼, 데이터의 양이 어마어마하게 발생합니다. 이런 데이터를 모두 처리하겠다는 것은 대단히 어려운 일입니다. (구글이 무료 GA버전 까지 제공하는 것을 생각해보면 이런 데이터들을 처리하기 위한 장치와 성능이 얼마나 많이 요구되는지를 상상해 볼수 있습니다.) 그래서 결국 전체중에 일부만을 발췌해서 분석하는 샘플링 기법이 적용됩니다. 모집단에서 일부만 추출해서 예측분석을 하는 통계기법과 비슷한 이치입니다. GA는 샘플링을 통해 일부 데이터를 분석하고, 분석을 기반으로 예측해서 결과를 내놓습니다. 샘플링은 데이터 분석중에 강제로 자주 일어나는데, 정확한 데이터 분석을 위해 GA360 유료 샘플링되지 않은 보고서(unsampled report)를 제공합니다.
샘플링은 성능을 위해서는 대단히 좋은 기법일 것입니다. 다만 분석하는 사람입장에서는 문제점을 고려해야 합니다. 가장 큰 문제는 GA가 숫자를 예측해서 보여준다는 것입니다. 예측해서 보여주는 것이 무엇이 문제인가? 라고 생각하는 분들도 있을 것입니다. 예측이란게 말그대로 예측, 즉 예상 값이라는 것이 큰 문제입니다. 예측값이기 때문에 100% 신뢰할수 없습니다. 구글과 관련된 문서에서는 10% 정도의 오차를 인정해야 한다고 합니다. 10% 라....작다면 작은 숫자입니다, 다만 1의 오차도 큰 파장을 일으킬수 있는 분야, 예를 들어 신약개발, 임상실험, 제조생산 등 분야에서는 허용할 수 없는 수치입니다. 그래서 GA의 활용 분야는 명확한 것 같습니다. 예전에 이런 일이 있었습니다. GA 리포트를 보는 중에 이상한 결과를 확인하게 됩니다
Users 4
Sessions 0
엥? 아니 무슨 세션은 0인데 왜 유저수가 4야? 구글에서 제공하는 메트릭 항목의 구성 원리와는 전혀 맞지 않는 결과입니다. 세션의 유니크 한 값이 유저이니까요. 원래대로라면 세션도 최소 4가 나와야 맞는 것입니다. 그런데 0입니다.
한참을 고민하다 확인해 보니 GA가 샘플링해서 사용한 데이터가 전체의 25% 였고, 유저수가 4인 것은 GA가 아무 생각없이(?) 유저에 4라는 값으로 치환한 것이기 때문이었습니다. (100/4=25 그래서 4를 곱해야한다. 그렇다면 세션도 4라는 값으로 치환하던가.....;) 그래서 4가 되었습니다. 샘플링은 이런 말도 안되는 결과를 만들어 낼수 있습니다. 샘플링은 특히데 이터가 대용량일때와 데이터 블렌딩과 커스텀리포트, 세그먼테이션 등 조작중에 많이 발생합니다.
샘플링이 있어났는지 확인하는 방법은 다음과 같습니다. 우상단에 Channels 옆 아이콘이 파란색이면 샘플링이 없는 것이고 (그림은 100% 세션을 사용함) 아이콘이 노란색으로 색상으로 바뀌면 샘플링 된 것입니다. 샘플링된 수치도 나타납니다.
무료버전 기준, 대용량을 사용하지 않는다, 복잡한 리포트를 구성하지 않는다, 데이터를 쪼개서 본다 등 언발의 오줌누기 수준의 방법은 있습니다만, 딱히 완벽한 방법은 없습니다. 그저 샘플링을 인정하는 수밖에요. (아니면 고가의 GA360 쓰던가)
첫 직장을 다닐때 전자제품 자재를 판매하고 이것이 매출로 이어지는 비즈니스가 있었습니다. 하루는 한달 마감이 돌았는데, 수만건의 거래 내역중에 한건이 맞지 않는 것이었습니다. 즉 거래는 있는데 자재는 없는 상황이었죠. 몇시간 동안 원인이 뭔지, 로직이 뭐가 잘못되었는지, 프로그램 로직을 검증하며 로그와 데이터 베이스를 모두 뒤져가며 찾았던 기억이 있습니다. GA는 이런 용도로 사용하는 툴이 아닙니다. 현상과 트렌드를 보는 툴에 가깝다고 보면 됩니다. 거래와 관련 된 데이터 중에 몇건이 안맞는다 해도 그럴수 있습니다. DB쟁이들과 통계쟁이들은 이해할수 없겠지만 태생이 그런 시스템입니다.
하지만 샘플링이란 현상이 있다는 것을 명확히 알고 데이터를 분석하는 것과 그렇지 않은것에는 분명 차이가 있을 것입니다. 모든 분석 툴이 마찬가지겠지만 구글 애널리틱스가 유난히 분석 경험이 중요한 이유가 이때문입니다. (경험적으로 알아야할 돌발과 예외 상황이 많아요~)