-
[데이터 분석] 통계적 가설검정을 어렵게 느끼는 이유Data Science/데이터 분석, ML 2020. 9. 12. 20:30반응형
0. 들어가는 글
일반적으로 과학적인 방법론을 사용한 연구에서는 연구가설을 세웁니다.
예컨대 '새로 개발한 고혈압약이 효험이 있다'거나, '금리 인상 정책이 물가 안정에 도움을 준다'거나 하는 식으로요.
그리고 가설을 검정할 때는 통계학의 힘을 빌리고는 합니다.
이 때 적용하는 방식을 통계적 가설검정이라고 부릅니다.
말 그대로 통계적인 지식을 통해, 나의 연구가설이 말이 되는지 또는 터무니없는지 확인해보는 것이죠.
모든 연구자는 당연하게도 자신의 연구가 참이기를 바랍니다.
하지만 솔직히, 연구자가 신도 아닌데 자기가 하는 말이 무조건 맞는 말일 수는 없잖아요.
그렇다고 우겼다가는 크게 혼나기 때문에, 연구자는 스스로의 연구에 대해 고민을 하게 됩니다.
이 때 연구자가 궁금해 하는 것, 그리고 연구자 자신을 괴롭게 만드는 건 이런겁니다.
"내가
개고생해서얻어낸 이 결과가 사실은 우연에 의한 것은 아닐까?"이러한 문제에서 조금은 힘을 얻기 위해 통계학의 힘을 빌어 가설이 맞는지 테스트를 합니다.
문제는, 통계적 가설검정은 직관적으로 잘 이해가 되지 않는 점이 많아 어렵게 느껴집니다.
1. 어려운 이유는 무엇일까
우선 통계적 가설과정 전반에서 사용하는 언어인 수학이 통계적 가설검정을 어렵게 만드는 것 같습니다.
이건 단순히 수학을 잘하고 못하는 능력의 문제는 아닙니다.
수학이 비록 우리를 싫어할지라도, 우리는 포기하지 않고 교육과정 전반에서 열심히 배웠어요
하지만 순전히 계산하는 방법만 배우지 수학으로 대화하는 법을 배우지는 않습니다.
계산을 하라면 기똥차게 해내겠지만, 내 생각을 수학기호로 정리하는 건 어려운 일이에요.
바꿔 말하면, 통계적 가설검정이 어려운 이유는 순전히 교육과정 때문입니다(!).
두번째 이유가 사실 더 중요한데,
우리는 과학적 지식을 획득하는 과정을 암묵적으로 체득했지만 체계화해서 배울 기회가 많이 없습니다.
일반적으로 우리는 지식을 일방적으로 배웁니다.
학교에서 교육을 받거나, 강의를 듣거나, 책이나 유튜브를 통한 매체를 통해 접하는 식으로요.
하지만 저는 개인적으로 과학적 지식은, 객관적인 사실을 바탕으로 상호간에 합의된 내용이라고 생각해요.
즉 지식은 고정불변하지 않고, 그 시점에 다수의 연구가 지지하는 내용으로 합의된 결과물입니다.
여러 연구를 살펴보면 똑같은 현상을 두고 서로 다른 결론을 내리는 건 꽤나 비일비재하거든요.
그 중에 가장 타당성이 있는 설명에 힘이 쏠리는 법이죠.
물론 그 설명도 언젠가는 반박될 가능성이 높습니다. 새로운 사실과 이론은 언제든 나타나니까요.
그래서 과학적 지식이라는 건, 시험대를 통과한 결과물이자 합의된 정보라고 생각합니다.
말하자면 현 시점에서 적당히 합의되어, 적당히 객관적이고, 적당히 일반적인 정보입니다.
이 과정을 직접 배울 기회가 적다보니, 어려움을 겪는 게 아닌가 싶습니다.
대표적인 사람이 바로 접니다.
진지하게 통계적 가설검정에 대해 고민하기 전까지,
(정확히는 교수님이 저에게 물어 의미를 갖기 전까지 )통계적 가설검정은 그냥 어려운 녀석 정도로만 남아 있었습니다.
아무튼 과학적 지식을 얻는 과정, 적당히 합의하는 과정에서 통계적 가설검정이 들어옵니다.
통계적 가설검정이 적당한 시험대의 역할을 해주거든요.
2. 지식을 얻는 방법
우선, 지식이라는 게 적당히 일반적이고 적당히 객관적인 사실인 걸 어떻게 알 수 있을까요?
보통 확실하지 않은 일을 확실하다고 주장하려면 '증명'이 요구됩니다. 그리고 증명의 방식은 다양합니다.
주장을 뒷받침하는 근거를 다양하게 나열하여 증명할 수도 있고, 논리적인 사고과정을 통해 증명할 수도 있습니다.
무조건적으로 엄밀한 의미의 논리구조를 갖추지는 않더라도,
그럴싸한 근거와 논리적인 사고 끝에 나온 결과물이라면 누구나 '사실'이라고 받아들이는 데에 큰 부담은 없을 겁니다.
증명을 하는 여러 방법 중에, 여기서는 잠시 귀류법에 대해 간단히 소개하려고 합니다.
통상적으로 우리가 많이 알고 있는 증명 방식은 직접증명법인데, 대표적으로 삼단논법이 있습니다.
삼단논법은 보통 대전제와 소전제로부터 결론을 이끌어 내는 방식이에요.
예컨대 'A는 B이고 B는 C이다, 따라서 A는 C이다'와 같은 구조를 갖습니다.
많이 드는 예시로 '사람은 언젠가 죽는다(대전제), 나는 사람이다(소전제) 따라서 나는 언젠가 죽는다(결론)'와 같습니다.
직접증명법으로 증명하기 어려운 경우엔 간접증명법을 택하기도 합니다.
대표적인 간접증명법이 귀류법입니다.
귀류법은 증명하고자 하는 명제를 부정한 명제로부터 오류를 이끌어내서(모순을 이끌어내서) 증명하는 방법입니다.
말로는 잘 와닿지가 않는데, 생각보다 우리 일상에서 종종 벌어질만한 일입니다.
일상의 사례를 들어봅시다.
회사에 신입이 들어왔다.
첫 만남에 이야기를 해보니, 이 사람은 채식주의자인 것 같다.
둘이 같이 점심을 먹으러 갔는데, 이게 왠걸. 이 사람이 돼지고기가 들어간 김치찌개를 먹는다.우리는 충분히 상식적이고 이성적인 사람들이죠.
그렇다면 위와 같은 사례에서, '이 사람이 채식주의자'라는 전제가 잘못된 것일까요, 아니면 '이 사람이 돼지고기가 들어간 김치찌개를 먹는다'는 사실이 잘못된 것일까요?
종종 관용적으로 내 눈을 의심한다는 표현을 하긴 하지만, 당연히 직접 관찰한 사실을 부정하기는 어렵습니다.
당연히 처음 세웠던 전제가 잘못되었으므로, 전제를 부정하는 게 타당해보입니다.
즉, '이 사람은 채식주의자가 아니다'라고 결론내릴 수 있습니다.
아주 엄밀하지는 않지만 이러한 논리구조가 귀류법에 해당합니다.
그리고 통계적인 가설검정은 위와 유사한 방식을 따릅니다.
위와 같은 과정을 통해 우리는 적당히 객관적이고 적당히 일반적인 지식을 얻을 수 있습니다.
3. 통계적 가설검정의 절차
다만 일상의 방식을 학술적인 방법에서 완벽히 동일하게 사용할 수는 없으니, 어느 정도는 형식화가 필요합니다.
그럼에도 기본적인 방식은 위의 사례와 크게 다르지 않다는 점만 기억해두세요.
[1] 일단 우리는 가설을 세우고, 그 가설을 부정하는 명제를 떠올려봅니다.
우리가 처음 세운 가설을 대립가설이라고 하고, 가설을 부정한 명제를 귀무가설이라고 부릅니다.
[2] 이제 귀무가설이 참이라고 가정합니다. (=우리가 처음 세운 가설을 부정합니다.)
[3] 그리고 현실 세상을 열심히 관찰해봅니다.
열심히 관찰하다면 다양한 일이 일어날겁니다.
관찰한 사실 중에 어떤 것은 '귀무가설은 참'이라고 지지하는 근거가 나올 수도 있고,
귀무가설이 참이라고 보기엔 터무니없는 결과가 나올 수도 있습니다.
아무튼 그러한 근거들을 가능한 많이, 그리고 다양하게 모아놓고 분석을 해봅니다.
[4] 만약 여러 근거들을 토대로 볼 때, 귀무가설과는 너무 동떨어진 상황이 관측된다면?
앞선 신입직원의 사례처럼, 귀무가설이 참이라는 전제를 의심해봐야 합니다.
그리고 동떨어진 정도가 지나치다면, 귀무가설이 참이라는 전제를 포기하고, 귀무가설을 받아들이지 않도록 결론 내리는 것이 합리적으로 보입니다.
이를 앞의 채식주의자 신입사원과 대응해보면 이렇습니다.
과정 검정 절차 사 례 과정1 귀무가설을 세운다. 신입직원은 채식주의자다. 과정2 현상을 관측한다. 신입직원과 점심을 같이 먹으러 간다. 과정3 현상과 귀무가설이 얼마나 다른지 확인한다. 돼지고기를 먹는 게, 채식주의자와는 맞지 않다. 과정4 귀무가설을 기각한다/기각하지 않는다. 신입직원은 채식주의자가 아니다. 물론 이 과정은 대략적으로만 설명한 거고, 실제로는 전제조건들이 더 많이 있습니다.
(이에 대해서는 나중에 다시 자세히 다뤄보겠습니다.)
위 과정을 거치면 우린 어떠한 결론에 도달하게 됩니다.
만약 귀무가설을 기각하는 결론에 도달했다면, '신입직원은 채식주의자가 아니다'라는 지식을 얻은 셈이죠.
일상생활에서 할 법한 생각이 사실은 통계적 가설검정이라고 하면 다소 비약이 있어보이기는 합니다.
하지만 논리적인 구조만 놓고보면 비약은 아니에요.
평소 하던 것보다 조금 더 체계화하고, 조금 더 객관적으로 접근하기만 하면 됩니다.
중요한 건 통계적 가설검정이 어려워 보이지만,
사실 우리는 이미 일상에서 통계적 가설검정과 유사한 일을 매순간 해내고 있다는 점이에요.
우리 안에는 이미 통계적 가설검정을 이해할 수 있는 힘이 있습니다.
다만 조금 익숙하지 않을 뿐입니다.
반응형'Data Science > 데이터 분석, ML' 카테고리의 다른 글
[ML] 릿지Ridge, 라쏘LASSO를 배울 때 나오는 그래프는 뭘까 (0) 2022.05.02 [ML] 뉴턴-랩슨법(Newton's Method)을 쓰는 이유 (4) 2020.10.23 [데이터 분석] 회귀분석을 할 때 로그 변환을 하는 이유 (1) 2020.10.08 [데이터 분석] 로그변환을 "변화율, 성장률"로 해석하는 이유 (0) 2020.09.18 [데이터 분석] 최소제곱법(Ordinary Least Square)을 쓰는 이유 (0) 2020.09.18