데이터과학 기초/통계

최소한의 통계로 p-value 이해해 보기

eigenvector 2022. 9. 1. 12:41
반응형

p-value란 도대체 무엇인가?

 

t-test부터 분산분석(ANOVA)에 이르기까지, 우리는 다양한 통계 검정을 실습하고 해석해 봤습니다.

 

여기까지 검색해서 오신 분들이라면 대개 통계에 대해 익숙하신 분들이겠지만, 만약 오랜만에 통계를 돌리거나 처음 실습하시는 분들은 다양한 의문이 생기실 겁니다.

 

특히, 저를 포함해서 통계를 처음 배우시는 분들은 p-value에 대해 여러 의문을 갖고 있는 분들이 많을 것이라 생각합니다.

 

"도대체 p-value가 뭐지?"

"왜 0.05 이하면 p-value가 유의하다고 하는 거지? 별 표시는 뭐지?"

 

와 같은 의문 말입니다.

 

물론, 인터넷의 광대한 세계에서는 이런 의문을 쉽게 해결할 수 있지만 어느 정도 수학 실력을 요구합니다.

 

저 또한 수학을 이해하지 않고 통계를 돌리는 것은 반대합니다.

 

하지만, "맥락을 잡기 위해 간단한 비유를 사용하는 것은 괜찮지 않나?" 라고 생각합니다.

 

오늘은 이런 맥락에서 아주 단순화시킨 p-value와 검정 논리에 대해 알아보겠습니다.

 

(이제부터 전개될 내용은 "최대한 수학을 제외"하고 "직관적 이해"에 목적을 둔 설명으로 어느 정도 과장/생략이 있다는 사실을 유의해 주시길 바랍니다)

 


커피숍 매장의 비밀? (모집단의 문제)

여러분이 전국 단위의 체인 커피숍을 운영하는 팀에 속해있다고 해 봅시다.

 

서울부터 부산까지 한국 방방곳곳에 체인점이 존재하고, 수백~수천 개의 매장에서 엄청난 숫자들이 들어옵니다.

 

여러분들은 수익 다각화/메뉴 품질 유지 등을 를 위해 여러 가지 메뉴나 실험적인 시도를 수행해 봅니다.

 

이때, 제반 비용 등을 고려해서 얻은 맛의 기본값을 70이라고 가정해 봅시다.

 

최소한 평균 70 이상의 맛이 나오지 않으면 상품으로써 가치가 없습니다.

 

어느 날, 새로운 로스팅 공정을 사용하면 가격을 획기적으로 줄일 수 있다는 것을 전달받았습니다.

 

다만, 소비자가 새로운 방식을 좋아할지 or 싫어할지 알아야 할 필요가 있습니다.

 

가장 간단한 방식은 전국의 커피 소비자에게 한날한시에 설문을 하는 것입니다.

 

"새로운 로스팅 공정으로 뽑은 커피의 만족도를 평가해 주세요"

 

이렇게 해서 평균값을 비교해서 70보다 큰지 작은지 알면 끝입니다.

 

(70보다 같거나 크다 -> 새로운 공정 도입, 70보다 작다 -> 새로운 공정 포기)

 


샘플링을 하는 이유

이렇게 하는 것은 간단하지만 불가능한 방식입니다.

 

전국의 커피 소비자를 일제히 한 시간대에, 한번에 모두 조사한다는 것은 상식적으로 불가능한 일이니까요.

 

또한, 현재 우리 커피 체인에서 커피를 마시는 사람 뿐만 아니라 앞으로의 잠재적인 고객도 생각할 필요가 있습니다.

 

결과적으로 우리는 "존재하지 않는 가상의 거대한 집단 (=한국의 커피 소비자)"을 조사할 수 없다는 사실을 깨닫게 됩니다.

 

그렇다면 이제 우리가 할 수 있는 방식은 어떤 게 있을까요?

 

"모두를 조사할 수 없다면, 일부를 조사하면 된다" 입니다.

 

커피 소비 집단(나이, 직업 등등의 조건...)을 모방한 집단을 선정해서 조사를 진행하면 됩니다.

 

이렇게 일부 집단(Sample, 표본)을 뽑는 방식을 샘플링(Sampling, 표본추출)이라고 부릅니다.

 

이 정도는 회사에서도 충분히 조사가 가능한 일입니다.

 

"잠깐만요, 모두를 조사하는 건 아니니까 오류가 있지 않을까요?"

 

당연합니다. 그래서 "모든 통계는 틀릴 가능성을 가지고 있습니다"

 

그렇기에 원래 표본과 차이가 나지 않으려면 인원수를 늘리고 인구 비율을 맞추는 등의 노력이 필요합니다.

(교재에서 보이는 표본추출 기법이나 샘플링 기법은 이렇게 원래 집단과 최대한 비슷하게 만들려는 노력의 결과로 생각하시면 됩니다)

 

그런데, 보고서에 "틀릴 수도 있지만 일단 이게 맞음"이렇게 적을 수는 없는 노릇입니다....

 

그렇기에 얼마나 맞는지/틀린 지 설명할 필요가 있습니다.

 


통계의 사용 - 일부에서 전체를 상상한다

이제 불가능을 해결하기 위해 통계를 사용할 때입니다.

 

"우리가 상상하는 전체 집단(=한국의 커피 소비 인구)"과  "(현실적으로) 선택한 일부 인구(=표본, 샘플)"를 연결해야 하기 때문입니다.

 

이 과정은 몇 가지 수학/통계적 방법이 사용되지만, 이 부분은 살짝 건너뛰고 조금 상상력을 발휘해 보겠습니다.

 


정규분포의 중요성

 

우리는 이전에 통계 수업을 하면서 "정규성 검정(Normality Test)"이라는 작업을 계속 수행했습니다.

 

왜 이런 작업을 해야 했을까요?

 

그것은 우리가 자연스럽게 [샘플 -> 전체집단]으로 넘어가는 과정의 연결고리 중 하나가 "분포(Distribution)"에 대한 가정이기 때문입니다.

 

머리가 살짝 뜨거워지지만, 좀 더 복잡한 상상을 해 봅시다.

 

만약 우리가 결과가 신통치 않아서(혹은 불안해서) 한 번 더 실험을 해 봤다고 합시다.

 

두 번째 한 테스트는 첫 번째 테스트와 다른 평균값과 분산 값(데이터가 퍼져있는 정도)을 가질 것입니다.

 

그렇다면 세 번째 실험은 어떨까요? 네 번째는? 다섯 번째는...?

 

이렇게 반복하다 보면 우리는 다양한 샘플에 대한 통계치를 수집할 수 있습니다.

 

값은 신경 쓰지 말고, 대충 아래 같은 "상상의 표"가 만들어질 수 있습니다.

 

집단 평균 표준편차
(우리가 진짜 뽑아낸 집단) 72 2.2
가상 집단 1 (통계적 상상) 73 2.1
가상 집단 2 (통계적 상상) 74 2.5
.... ... ...
가상 집단 n (통계적 상상) 76 2.7

 

이렇게 가상의 집단을 상상하는 것이 무슨 통계와 어떤 상관이 있을까요?

 

맞습니다. "직접" 모집단을 보는데 이 과정은 아무 의미가 없습니다. 아무리 많이 반복한들 모집단을 알지는 못하니까요.

 

(샘플을 모집단만큼 뽑으면 되지만, 이 경우는 통계를 적용하는 이유가 없어집니다)

 

하지만 이 방법을 통해서 우리는 "간접적"으로 모집단을 알 수 있게 됩니다.

 

"중심 극한 정리"라는 중간다리가 존재하기 때문입니다.

 


중심극한 정리(central limit theorem)

중심극한 정리가 말하고자 하는 바는 간단합니다.

 

뽑는 샘플 수가 충분할 때 위에서 본 것처럼, 계속 뽑아서 평균값을 기록하면 모양이 "정규분포"를 띄게 된다는 것입니다.

 

그렇다면 정규분포는 무엇일까요?

 

수학 없이 설명하기는 정말 힘들지만, 약간의 과장을 섞어서 말하자면 다음과 같습니다.

 

"주어진 평균과 표준편차에서 가장 자연스럽게 데이터가 퍼져 있는 것"

(표준편차를 모른다면, 간단히 말해 데이터가 평균에 얼마나 붙어있는지 측정한 정도라고 생각하면 됩니다).

 

결국 수학을 써 보자면 이렇게도 설명할 수 있습니다.

 

"주어진 평균, 표준편차에서 엔트로피를 최대화하는 형태로 데이터가 퍼져 있는 것"

 

엔트로피의 최대화? 이것은 무슨 뜻일까요? 

 

엔트로피의 최대화란 "어느 한쪽에 치우지지 않고 고르게 확률이 퍼져 있는 상태"라는 뜻입니다.

(도박을 예로 들자면 주사위를 굴려서 무조건 1이 나온다면 엔트로피가 낮은 상태, 1~6이 고르게 나온다면 엔트로피가 높은 상태입니다)

 

정규분포 조건을 만족한다면 데이터의 시각화는 가운데(평균)에서 가장 볼록하고 나머지는 평평해지는 종모양(Bell-Shaped)을 갖게 됩니다.

 

간단히 말해 정규분포를 따른다면 데이터를 구간별로 쪼개서 숫자를 센 다음, 막대그래프로 그리면 아래와 같이 바뀐다는 것이지요.

정규 분포의 예시

이 정규분포/정규 분포 시각화를 테마로 엄청나게 설명할 것이 많지만.... 오늘은 넘어가도록 하겠습니다.

 


표본 분포(sampling distribution)의 연결고리

이제 우리가 알고 있는 정보를 정리해 보겠습니다.

 

  1. 우리는 사실 모집단(의 분포)을 알고 싶지만, 현실적으로 불가능하다
  2. 우리는 대신 표본(Sample)을 뽑아서 통계치를 계산한다
  3. 우리는 통계학 기법(중심 극한 정리)을 통해서 둘 사이를 연결할 수 있다

이 내용을 모두 정리하면 아래와 같이 정리할 수 있습니다.


그래서 p값은 무엇인가?

이쯤 되면 여러분의 마음에는 다음과 같은 말이 나오려고 할 것입니다.

 

아니 그래서 p값이 무엇인지 알고 싶은데 왜 자꾸 다른 말을 하는 건가요?

 

자, 이제 우리의 여정을 마무리할 때가 됐습니다.

 

p값을 알려면 우리는 처음의 질문으로 돌아가야 합니다.

 

왜냐하면 p값은 "가설"이 있어야 만들어지는 값이기 때문입니다.

 

우리는 새로운 커피에 대한 맛 평가가 70 이상의 값을 가져야 한다는 사실을 알고 있습니다.

 

즉, 실험을 했을 때 "새로운 커피는 평균 70 이상의 맛 수치를 갖는가?"를 확인해야 합니다.

 

과학자들은 이를 우아하게 두 가지 조건으로 나눠서 정리합니다.

 

H0 : 새로운 커피는 70 미만의 맛 평균을 가질 것이다.

H1 : 새로운 커피는 70 이상의 맛 평균을 가질 것이다.

 

여기서 H0을 귀무가설(효과 "없음"으로 돌아감), H1을 대립 가설(효과가 없다는 가설과 맞섬)이라고 부릅니다.

 

p값은 이 두 가지 가설을 요구합니다. 정확히 말하면 귀무가설을 만들면 대립 가설이 반대에 서기 때문에 귀무가설이 꼭 필요하다고 할 수 도 있겠습니다.

 

p값의 의미는 "귀무가설이 맞다고 쳤을 때, 우리가 관찰한 값(이나 더 차이가 나는 값)이 확인될 확률"을 말하기 때문입니다.

 

우리는 전체 집단에 테스트를 해 본 것이 아닌데 그걸 어떻게 확인하죠?

 

라는 질문을 받는다면, Sampling Distribution을 활용한다. 정도로 알고 있으면 되겠습니다.

 

모집단을 모르지만 (일정 수준의 오차를 감수하고) 모집단의 분포를 추정하게 해 주는 것이 중간다리의 역할이니까요.

 

그리고 우리는 관례적으로 0.05를 아주 희박하기 때문에, 우연히 결과가 나온다고 보기 힘든 기준으로 설정합니다.

(그래서 아주 옛날 논문을 보면 0.1이 기준인 경우도 존재합니다. 어디까지나 임의의 기준이기 때문입니다)

 


별? 의 등장

이제 p값의 의미를 알게 됐으니, 별의 의미를 알아볼 차례입니다.

(참고로 별 표시라고 해서 논문에 star라고 쓰시면 안 됩니다. asterisk라고 적어야 합니다)

 

*은 p-value의 수준(숫자 범위)을 대략적으로 보여주는 기호입니다. 일반적으로 0.05에서 하나를 표시하고 더 작은 값일수록 표시를 늘려갑니다.

 

별이 많아진다 =  희박한 사건이다 = 귀무가설을 기각한다(틀렸다고 본다) = (실험 조건이) 효과가 있다!

 

의 관계인 셈입니다.

 

주의할 점은 "별이 많아진다 = 통계의 효과가 크다"가 아니라는 점입니다.

 

p값은 우리가 가설을 기각할지 채택할지(효과의 유/무)를 보여줄 뿐 "크기"를 보여주지 않기 때문입니다.

 

"0.05보다 0.01이 더 작은 값이니까 더 큰 통계 효과가 있겠군"이 절대 아닙니다!

 

이렇게 판단하면 통계를 잘못 해석하고 있는 셈입니다.


부록 : 그래서 신뢰구간(Cofidence Interval)은 무엇인가?

아마 여기까지 읽은 분은 신뢰구간(C.I, Confidence Interval)에 대해서도 알고 싶을 것입니다.

 

잠깐, 이전의 내용으로 돌아가 "(가상 세계에서) 계속 샘플을 추출해서  평균과 표준편차를 낸다"는 내용으로 돌아가 봅시다.

 

신뢰구간은 추출한 샘플의 평균에서 고정된 일정량의 값(표준편차를 활용한 값)을 더하고 빼서 만든 범위입니다

(좀 더 구체적으로 말하면 point estimate와 critical value라는 용어를 사용합니다)

 

첫 번째 실험에서 [1~3], 두 번째 실험에서 [2~4], 세 번째 실험에서 [1.5~2.5] 이런 식으로 끝없이 범위를 만들면 수많은 범위 집단이 생겨나겠죠?

 

이런 행동을 하는 이유는, 이렇게 반복해서 만든 범위 안에 진짜 평균(모평균)이 있을 것이라 생각하기 때문입니다.

 

얼마만큼 있을까요? 이게 바로 신뢰구간에서 말하는 신뢰도입니다(95%면 전체 조합 중 95%, 99%면 전체 조합 중 99%)

 

즉, 신뢰구간에서 중요한 것은 "평균"에서 얼마나 더하고 빼는가?입니다.

 

신뢰구간과 신뢰도, 표본수

 

그렇다면, ~라는 통계는 95% 신뢰할 수 있어 vs 99% 신뢰할 수 있어라고 비교한다면 어느 쪽이 구간이 더 넓을까요?

 

맞습니다. 신뢰도가 높아질수록 신뢰구간(or 더하고 빼는 값)이 넓어집니다.

 

시험 점수를 예측할 때, "80점 이상입니다"라고 말하면 틀릴 수도 있지만 "0점에서 100점 사이입니다"라고 말하면 100%니까요

 

좀 더 응용해 볼까요? 그렇다면 많은 사람을 대상으로 조사할 때와 적은 사람을 대상으로 조사할 때, 신뢰구간은 어떤 변화가 생길까요?

 

맞습니다. 많은 사람을 대상으로 조사할 때, 신뢰 구간(=평균에서 더하고 빼는 범위)은 축소됩니다(!)

 

300명의 성적 평균을 예측할 때, 200명 정도 조사하면 범위가 좁아도 비슷하게 맞출 수 있지만 5명 정도 조사하면 범위를 크게 잡아야 하니까요.


정리

 

지금까지 배운 내용을 다 합해서 정리하면 통계 검정은 다음과 같은 과정을 거친다고 보면 되겠습니다.

 

  1. 일단 표본을 추출해서 통계 값을 구한다(평균, 표준편차)
  2. 통계기법을 통해 Sampling Distribution을 만들고, p값을 계산한다
  3. p값 수준에 따라 가설을 채택하거나 기각한다

이해되지 않는 부분이 있거나/제대로 공부하고 싶다면 위 내용에 기초해서 다른 내용을 더 찾아보시면 좋을 것 같습니다.

 

어디까지나 위 내용은 수학을 최대한 사용하지 않고 이해하기 위한 것이기 때문입니다.

반응형