오늘은 목표가 확실한 날이었다. 지난 파이썬 세션의 강의 복습을 완전히 하는 것이었고, 나는 그걸 달성해냈다. 큰 욕심을 가지진 않았기 때문에 가능하기도 했었지만, 판다스의 작성 방식이 파이썬 알고리즘과는 완전히 다른 방식이었고, 그런 의미에서 즐겁게 작성이 가능했다.
오늘은 이것과 함께, 아티클 스터디에서 배운 A/B 테스트의 단측 검정과 양측 검정에 대해서도 이야기해보자.
처음 세션에서 판다스 라이브러리의 함수들을 배웠을 때는 코랩 UI의 불친절함과 이해가 되지 않는 코드 작성에 아무 것도 할 수가 없었다. 애당초 파이썬도 이해가 안 가는데, 판다스 함수를 이해할 것이라고 믿어지지 않았다. 개인적으로 가장 큰 문제는 아직 나에겐 파이썬 언어가 직관적으로 이해가 가지 않았기 때문이 컸다.
하지만 오늘 판다스를 복습해보면서 느낀 점은, 분명 같은 한글 기반으로 이야기를 하고 있지만 대한민국의 한국어와 북한의 문화어가 다른 체계를 갖고 있는 것처럼, 파이썬 알고리즘과 판다스 함수는 같은 파이썬이라도 느낌이 다르다. 오히려 판다스 함수는 SQL의 쿼리와 더 가깝게 느껴지기 때문이다.
df2 테이블을 활용하여 gender 기준 customer id count하기
# Pandas df2.groupby('Gender')['Customer ID'].count()
# SQL SELECT Gender, COUNT(Customer ID) FROM df2 GROUP BY Gender
이 둘은 서로 같은 질문에 대한 pandas와 SQL의 답이다. 물론 문법이 다르긴 하지만, 나에겐 오히려 둘이 더 가까워 보인다. 그래서 공부를 하면서 파이썬 알고리즘과는 다르게, 조금 재미가 있었다. 물론 여전히 어렵긴 하지만, PANDAS는 SQL처럼 친해질 엄두가 좀 난다.
내일은 지금까지 세션에서 배운 PANDAS 함수를 모두 복습해보는 시간을 가져야겠다.
A/B테스트 제대로 이해하기: 3. A/B테스트 계산기의 세팅과 설정
다음은 오늘 아티클에 대해서 이야기해보자. 호기롭게 팀원들과 덤볐던 A/B 테스트 아티클은 지난 아티클에서 무자비하게 4팀을 난타한 통계학의 공포와 함께 조금 두려워지기 시작했다. 이번 아티클은 특히나 지난 아티클에서 우리를 혼란스럽게 했단 단측 검정과 양측 검정에 대한 이야기가 메인이었다. 실제로 아티클은 A/B테스트 계산기인 A/B Testguide에 대한 아티클이었지만, 그 기능을 설명하면서 단측, 양측 검정에 대한 설명을 주로 하고 있다.
단측 검정과 양측 검정은 그럼 무엇일까? A/B 테스트는 이름처럼 대상군들에게 조건의 차이를 주고, 그 차이에 따라 A, B, 혹은 그 이상의 집단으로 나누어 테스트를 진행하고, 그 차이에 대한 설명을 통해 데이터 분석을 통해 세운 가설, 주장의 근거로 삼는 실험이다. 따라서 데이터 분석가에게 A/B 테스트는 매우 중요한 의미를 갖는다.
단측 검정과 양측 검정은 이 테스트 과정에서 두 집단군을 어떠한 관점으로 볼지에 대한 개념이다. 단측 검정은 A와 B 중에서 둘 중 하나가 더 우세하거나, 혹은 더 열세일 것이라 상정을 하고 신뢰구간과 P값을 설정하는 반면, 양측 검정은 어떠한 우세와 열세를 상정하지 않고, 그저 둘이 차이를 보일 것이라는 정도의 얕은 가정만으로 진행한다.
척보기에도 그렇지만, 뭔가 우리는 본능적으로 양측 검정이 더 객관적이지 않을까 하는 생각을 한다. 그도 그럴 것이 단측 검정처럼 테스트의 결과를 어느 상정해두고 실험을 진행했다간 자칫 확증 편향의 오류로 실험이 완전히 망가질 수도 있다는 우려가 있기 때문이다. 아티클에서도 양측 검정을 '보수적이고 안전한 접근'이라고 언급하며 이를 간접적으로 긍정하고 있다. 우리 팀원들 역시 그 점에 동의하던 와중, 우리 팀원이시자, 통계학을 학부 시절 배우셨던 세영님이 재미있는 의견을 제시하셨다.
요약하자면 이렇다. 글에서 나온 것처럼 양측 검정이 정가의 보도마냥 반드시 객관적인 것도 아니고, 단측 검정이 '답정너'의 어감처럼 객관성을 밥말아 먹은 것도 아니다. 오히려 데이터 분석을 통해 세운 가설을 토대로 조금 강한 지향성을 가지고 단색 검정으로 실험을 세팅한 뒤, 원하는 결과가 나오지 않았을 때 실험 방향을 체크하기 위해 양측 검정을 세팅으로 실험을 진행하는 것이 좋은 방법이 될 것이다. 혹은 상황에 따라 그 반대로 실험을 진행하는 것도 의미가 있다.
오늘 아티클 스터디는, 팀원들이 단순히 아티클을 요약하고 그 내용 내에서 인사이트를 찾는 것을 넘어, 그것을 반박하는 아티클을 소개해주고, 또 이야기를 나눴다는 점에서 큰 의미가 있었다.
뭔가 해야할게 많은 건 당연하다. 우린 파이썬, 판다스 라이브러리, SQL의 실력도 높여야 하고, 5월에 있을 SQLD, ASDP 등의 시험도 준비해야 한다. 데이터 시각화와 리터러시 등 이론적인 공부도 게을리해서는 안된다.
하지만 그렇다고 너무 급하게 하려다간 모두 놓칠 것만 같다. 지치면 아무 것도 못한다. 나름대로의 흥미를 찾아가면서, 내가 파고들 수 있는 포인트를 잡아야 한다. SQL은 그게 됐고, 판다스도 가능하리라 믿는다. 오늘도 수고했다.