통계이론/주류통계

가능성MLE 마지막 베이지안, 가설검증, LRT

학위논문통계 2014. 1. 7. 12:28

 

요새 2주일 동안 작업하던 노트북 2개가 연짝으로 죽어버려 작업하던 것이 다 날려 가버렸네요. 지금은 비상용으로 작업하고 있습니다.

 

 

 

 

 

1. 지난번에 힘들게 가능성함수(우도함수)까지 실제로 계산해 보았으니 말 나온 김에 더 해보죠.

 

 

먼저 가능성함수는 정의상 오로지 모수 u에 관한 함수입니다. 앞의 예에서 데이터 X1=0, X2=1이 관찰되었기 때문에 실제로 가능성함수에 있는 x1와 x2에 이 값이 들어가서 실제로는 오로지 u에 관한 함수입니다. 그러나 이론상 전개를 위해서 일반적인 x1, x2 표시를 한다는 것이죠.

 

 

 

그럼 이 가능성함수와 베이지안의 관계는 어떻게 될까요. 가능성함수의 개념자체는 문제가 안됩니다. 단지 주류통계학에서 가능성함수를 확률분포로 사용하기 때문에 문제라는 것이죠.

 

즉 L(u|x)=f(x|u)로 사용하기 때문에 문제라는 것입니다.

 

 

 

다른 말로 하면 주류통계학에서는 Pr(A|B)=Pr(B|A)라고 주장하는 꼴이 된 것입니다. 이게 틀린 것은 일반인의 상식으로도 알 수 있죠.

 

 

 

Pr(폭력적인 사람|스마트폰을 사용하는 사람)=Pr(스마트폰을 사용하는 사람|폭력적인 사람)

 

 

 

이게 같을 수가 없죠. 이건 개콘에서 나온 이야기죠.

 

 

그래서 원칙적으로 데이터 x가 관찰되었을 때 모수 u의 확률은

 

 

 

 

g(u|x)=g(u,x)/k(x)=f(x|u)*h(u)/k(x)

 

 

 

 

 

여기서 k(x)는 오로지 관찰된 데이터 값 x의 함수이기 때문에 실제로 숫자입니다. 실제 계산에서 의미없습니다. 일종이 정규화 요인(normalizing factor, 적분을 1로 만드는 요인, 물리학에서는 중요할 수 있고요)이라 볼 수 있습니다. 그래서

 

 

 

 

g(u|x)=f(x|u)*h(u)

 

 

 

 

가 되어야 하고 이 g(u|x)가 진짜 가능성 함수라는 것이죠.

 

 

이때 h(u)를 사전확률, a prior라고 합니다. 모수 u에 대해 연구자가 평소에 가지고 있는 분포라는 것이죠. 그러나 주류통계학에서는 이것을 받아드리지 않습니다. 모수 u는 우리가 모르고 있다는 것이지 이건 하나의 값이기 때문에 확률분포를 가정할 수 없다고 주장하는 것이죠. 여기서 확률의 기본 생각이 갈리고 있는 것이죠.

 

 

 

 

그러나 현실적으로 주류통계하는 사람이 이걸 기피하는 이유는 이 h(u)를 어떻게 모형화할 건가 하는 문제입니다. 이 문제를 해결할 수 없기 때문에 회피하는 것이죠. 또한 사람마다 이 h(u)가 다르다면 이걸 과학이라 할 수 있는가 하는 점이죠.

 

 

 

 

베이지안에서 이걸 어떻게 해결할건가요. 여기서 따라 또 학파가 갈리는데 현실적으로 기계적으로 conjugate를 사용합니다. 이걸 더 알고 싶으면 수리통계학 책을 보시고요.

 

 

 

 

제가 있는 라인은 뭐 objective baysian 이라고 칭하기도 하는데 제가 뭘 알아서 이 라인에 서 있는 것이 아니고 지도교수가 그 라인에 있어서 그렇다는 것이죠. 프라이어 자체가 주관적인데 왜 객관적 베이지안이라고 할 까요. 이 쪽 대가가 Jaynes 교수인데 이분 주장에 이 프라이어를 세울 때도 밑에 깔린 과학적인 원칙이 있다는 것이죠. 그 대표적인 원칙이 불변법칙, 또 엔트로피 최대화 법칙 이런 것이라는 것이죠.

 

 

 

 

더 나가면 골치 아프고 저도 잘 모릅니다. 헤매다 나온 사람이니 더 묻지 마시고 관심있는 분은 구글에서 검색해서 논문을 찾아 보시기 바랍니다.

 

 

 

 

 

 

 

 

2. 지난번 동전 두 번 던지는 베르누이 시행의 경우 가능성 함수를 실제 구해봤습니다. 계산이 맞았는지는 잘 모르겠지만. 첫 번째는 뒷면이 나오고 그래서 X1=0, 두 번째는 앞면이 나오고 X2=1 일 경우 u가 0.1일 가능성과 u가 0.9 일 가능성의 값을 구했습니다.

 

 

 

u=0.1 경우 L(u)=0.09

u=0.5 경우 L(u)=0.25

 

 

 

 

여러분이 어려운 통계 이론을 생각하지 않고도 상상적으로 어떤 선택을 하겠습니까. 당연히 u=0.5라고 생각하겠죠.

 

 

 

그럼 이론적으로 어떻게 하는 것이 좋을까요?

 

당연히

 

 

 

 

L(u=0.1)/L(u=0.5) > 1

 

 

 

 

이면 u=0.1이라 생각하고 그렇지 않으면 u=0.5 라고 생각하겠죠.

 

일반적으로

 

 

 

 

L(u=0.1)/L(u=0.5) > K

 

 

 

 

라는 일반적인 값 K를 사용합니다.

 

 

왜 1를 사용하지 않고 K라는 일반적인 값을 사용하는가 하면 우리가 u에 대해서 사전에 특별한 선호나 믿음이 없으면 1을 사용하는 것이 타당합니다. 그러나 우리가 평상시 동전이 앞면에 나올 가능성이 0.5라는 것이 거의 당연시 여겨진다면 이때는 K는 상당히 큰 값이 됩니다. 즉 동전 앞면이 나온 가능성 u=0.1이라고 믿을 만한 뚜렷한 데이터 값이 나와야 합니다. 이 경우 X1=0, X2=0 이렇게 나오면 이때 u=0.5일 가능성보다 u=0.1일 가능성이 상당히 있다는 것이죠. 또 우리의 데이터는 한번 관찰한 값이 불과합니다. 기존에 알려진 있는 것을 부정하고 다른 결과를 취하려면 이에 대응하는 뚜렷한 데이터 값이 있어야 합니다.

 

 

 

 

또 잘못돤 의사결정을 하였을 경우 지불해야 하는 비용입니다. 판사의 경우 가능하면 무죄를 선고해야 합니다. 유죄인 사람을 무죄로 선고해도 큰 문제가 없습니다. 그러나 무죄인 사람을 유죄로 선고하면 한 사람에게 엄청난 피해가 될 수 있거든요. 광우병의 경우 단순하게 과학적 사실만을 이야기해서는 안되죠. 만약 미국소를 수입하면 나중에 전국민이 치명적인 피해를 입을 수 있다는 것이죠. 이런 정책을 펴면 안됩니다. 천둥, 번개가 치는 날 밖에 나가도 한 개인이 벼락에 맞을 가능성은 확률상 거의 0%입니다. 그렇다고 해서 정부가 국민들을 천둥, 번개치는 날 강제로 밖으로 내모는 정권이 어디 있습니까.

 

 

 

 

 

3. 그래서 K 값은 우리가 의사결정할 때 잘못된 확률에 크게 의존합니다. 즉 귀무가설이 맞을 때 귀무가설을 기각하고 대립가설을 받아 드릴 확률, 즉 귀무가설이 사실일 때 잘못된 의사결정을 할 확률에 의해 이 K 값이 결정됩니다. 통상 이 확률을 검증크기라고 하기도 하고 더 일반적으로 유의수준(significant level) 이라 합니다.

 

 

 

 

이 유의수준은 연구자에 의해 주어집니다. 여기에 따라 이 K 값이 달라지고 우리가 귀무가설을 채택할지 아니면 대립가설을 채택할지 달라집니다. 즉 우리가 관찰된 데이터 값은 같아도 유의수준에 다르면 가설검증 결과는 달라집니다. 통상 유의수준은 0.1, 0.05, 0.01, 0.001 등을 놓습니다. 사회과학에서는 0.05로 많이 놓고 합니다. 이유는 없습니다. SPSS에서 기본사양으로 그렇게 되어 있으니까요. 참 답답하죠.

 

 

 

 

또 다른 에러도 있습니다. 대립가설이 옳은데 귀무가설을 채택하는 경우입니다. 그래서 우리의 의사결정은 이 두 개의 에러를 피할 수가 없습니다. 한쪽의 에러를 줄이려면 다른 쪽 에러가 커진다는 것이죠.

 

 

 

 

판사의 경우 나쁜 놈은 무조건 감방에 집어넣어야 한다는 사람은 가능하면 유죄로 선고하려고 합니다. 그러면 무죄인 경우 유죄로 선고받는 에러가 커지죠. 반대로 억울하게 죄를 뒤집어쓰는 경우가 없어야 한다고 믿는 판사는 가능하면 무죄로 선고하겠죠. 그러면 유죄인데도 무죄가 선고될 에러가 커진다는 것이죠. 즉, 판사 성향에 따라 유의수준이 달라질 수 있고, 거기에 따라 유죄 무죄가 달라질 수 있다는 것이죠. 전에 문어 살인 사건의 경우 판결이 달라졌죠. 우리나라에서는 이것보다는 정치적, 또는 돈이나 권력의 유무에 따라 많이 달라져서 문제죠.

 

 

 

 

하여간 귀무가설이 옳을 때 대립가설을 채택하는 경우 데이터 값의 범위를 기각역이라 합니다. 다시 이야기해

 

 

 

 

CR={X ; L(대립가설|X) / L(귀무가설|X) > some K)}

 

 

 

 

이때 K는 당연히 유의수준에 의해 결정되겠죠. 즉 유의수준을 0.05로 잡으면

 

 

 

 

Pr(CR|귀무가설이 맞을때)=0.05

 

 

 

 

로 놓고 K 값을 구합니다.

 

 

 

생각보다 어렵지 않습니다. 앞에서 이야기한 것처럼 가능성함수(우도함수)는 실제 확률분포이고 이것을 log 취하면 계산하기 쉬운 형태가 됩니다. 정규분포를 생각하면 로그 취하면 exponential이 날라가서 쉬운 모양이 되지요. 그리고 분수는 로그 취하면 빼기 형태가 되지요. 그래서 생각보다 쉽게 K 값을 구할 수 있습니다. 수리통계 시험문제에 잘 나오는 문제죠.

 

 

 

 

이와 같이 귀무가설일 경우 가능성 함수 값과 대립가설인 경우 가능성 함수 값을 비교하여 가설검증을 하는 생각이 MLE 계열인 LRT(Likelihood ration test:가능성비 검증)입니다.

 

 

 

 

한편 이 생각은 또 주류 중의 주류의 MPT(most powerful test)하고도 관계가 있습니다. N-P(Neyman- Pearson) lemma에 의하면 이렇게 가능성 함수 값을 비교하는 검증 방법은 유의수준 알파가 결정되었을 때, 즉 귀무가설이 옳은데 대립가설을 채택할 에러를 이미 결정하였을 때 파워 베타, 즉 대립가설이 옳을 때 대립가설을 채택하는 옮은 결정을 할 확률, 즉 검증력이 가장 크게 된다는 이야기입니다. 그래서 위의 가능성함수를 분수식으로 비례를 줘서 검증하는 단순한 아이디어의 방법이 좋은 검증 방법이라는 것입니다.

 

 

 

관심있는 분은 수리통계 책을 보시고요, 현실적으로는 이렇게 복잡한 것은 생각하시지 말고요 대부분 LRT를 사용합니다. 더구나 복잡한 경우 이것도 잘 안구해지기 때문에 대수의 법칙을 사용하여 점근 표준화 분포를 가정한 다음 신뢰구간을 역으로 돌려서 가설검증을 합니다. 이 생각은 잘 알아두시면 논문 보시기 편합니다.

 

 

 

 

 

 

4. 그럼 t 검증, F 검증 이런 것은 어디서 나오는 것일까요?

앞에서 가설검증은

 

 

 

L(u1)/L(u0) > K

 

 

 

 

이런 식으로 한다고 했습니다. 그러나 이런 좀 더 일반화해서 쓰면

 

 

 

L(u1|X1,X2,,,,,Xn) / L(u0|X1,X2,,,,,Xn) > K

 

 

 

 

이런식으로 표현됩니다, 이걸 풀면, 대부분 log를 취하지만, t 통계량이나 F 통계량의 부등식 모양으로 나옵니다. 이럴 경우 t 검증, F 검증 이런 말을 사용한다는 것이댜.

 

 

 

위에 쓴 내용은 정확한 LRT가 아닙니다. 기본적인 LRT 아이디어를 이야기 한 것입니다. 이 아이디어을 이해하면 정확한 LRT 개념은 별로 어렵지 않습니다.

 

 

 

 

 

 

 

5. 몇가지 가설검증에 대한 일반인의 잘못 알고 있는 상식을 적겠습니다. 흔히들 가설검증이라 하지만 가설과 검증은 다른 개념입니다.

 

 

통상 사회과학에서 세우는 가설은 대립가설입니다. 귀무가설은 통상 논문에 적지 않습니다. 좋지 않은 관행이죠.

 

가설에서는 통상 대립가설 모양에 따라 한쪽(one-sided) 가설, 양쪽(two-sided) 가설이라는 말을 사용하고 검증에는 한쪽 꼬리(one-tailed) 검증, 양쪽 꼬리(two-tailed) 검증이라는 말을 사용합니다. 보통 한쪽 가설이면 한쪽 꼬리 검증이 나오고 양쪽 가설이면 양쪽 꼬리 검증이 나오지만 항상 그렇지 않습니다. 두 개념은 완전히 다른 개념입니다. 예를 들어 이야기하죠.

 

 

 

 

단순회귀분석 즉

 

 

 

Y=a+bX+e

 

 

 

 

의 경우 상관관계 분석이랑 같습니다. 즉 회귀분석을 돌린 후 표준회귀계수를 보면 상관계수와 아마 일치할 겁니다. 그리고 t 검증에 따른 p 값을 보면 상관계수에서 구한 p 값과 일치합니다. 한번 두 변수를 선택해서 한번은 상관계수로 돌리고 한번은 회귀분석으로 돌려서 비교해 보세요.

 

그림 일반적인 가설은 다음과 같습니다.

 

 

 

 

                                                 귀무가설: b=0

                                                 대립가설: b는 0이 아니다.

 

 

 

 

즉 양쪽 가설입니다. 그리고 SPSS 회귀분석 결과에서 나온 t 검증은 양쪽 꼬리 검증입니다. 만약 여러분이 대립가설을 b> 0 이런 식으로 한쪽 가설로 세웠다면 SPSS 회귀분석 결과의 p 값을 그대로 사용하면 안됩니다. 한쪽꼬리 검증으로 해서 p 값을 적어야 합니다. 사회과학 교수들이 잘 몰라 그냥 넘어가는 것이죠.

 

 

 

 

하여간 단순회귀 분석을 돌리면 회귀계수에 대한 t 검증도 나오지만 F 검증도 나옵니다. 이때 t 검증의 p 값과 F 검증이 p 값을 비교해보세요. 두 p 값이 일치합니다. 즉 t와 F 검증으로 다르지만 사실 똑 같은 대립가설 b는 0이 아니다를 검증한 것입니다.

 

 

 

 

그래도 의심스러우면 t 값을 제곱해보세요. 그러면 아래 F 값이 정확하게 나옵니다. 그러나 이 F 검증은 한쪽 꼬리 검증입니다. 즉 F 값은 양의 값으로 매우 커야 b가 0이 아니다라고 판단하고 t 검증은 음의 값이나 양의 값이나 어느쪽이든 크면 b가 0이 아니다라고 판단합니다.

 

 

 

 

그래서 둘 다 b는 0이 아니다라는 양쪽 가설을 검증하는 것이지만 t 검증은 양쪽 꼬리 검증이고 F 검증은 한쪽 꼬리 검증입니다.

 

 

 

 

단순회귀가 아니고 독립변수가 여러개 들어가는 다중회귀분석이 경우는 다릅니다. 이때 t 검증은 해당 회귀계수 bi가 0이 아니다라는 가설을 검증하는 것이고 F 검증은 다중 가설 즉 b1, b2, .., bk 중 최소한 하나는 0이 아니다라는 가설을 검증하는 것입니다.