독립이라는 단어는 일상적인 언어에서
다른 것에 예속하거나 의존하지 아니하는 상태로 됨.
이라는 의미로 사용되곤 합니다. 하지만 그 의미 때문에 확률과 통계에서 독립의 개념을 배울 때한 사건이 다른 사건과 아무런 관련이 없음을 의미한다고 착각하기 쉽습니다. 하지만 수학에서 독립은 한 사건의 발생이 다른 사건의 발생 확률에 영향을 미치지 않는 것을 의미합니다. 다시 말해, 어떤 조건에서든지 확률이 일정하게 유지되는 성질을 의미하는 것이지 배반사건 을 의미하는 것이 아닙니다.
두 사건 와 가 독립이라는 개념을 조건부 확률식을 이용해 나타내면
라 할 수 있습니다. 가 일어날 확률은 가 일어난다고 해도 바뀌지 않는다는 거죠. 따라서 와 가 독립이라면 증명하지 않아도 아래 식들 또한 자명해집니다.
이 개념을 처음 접하는 학생들은 문제에 바로 적용하기에는 어려움이 있어 학교에서는 조건부 확률의 성질을 이용해 필요충분조건인 식을 가르치죠.
그래서 독립이란 교집합을 곱셈으로 구할 수 있다 정도로만 생각하고 끝내기 십상입니다. 하지만 이러한 식은 독립이 갖고 있는 의미를 전혀 반영하지 못합니다. 독립은 하나의 변수가 다른 변수에 미치는 영향을 고려하지 않아도 되므로, 분석을 단순화할 수 있다는 큰 장점이 있습니다. 표본들이 독립이라는 가정 하에, 평균, 분산 등의 통계량을 추정하기 용이하여 모집단에 대한 일반화가 가능하죠.
독립개념을 확장하기
우선 독립의 필요충분 조건을 다시 보도록 하겠습니다. 이 식 자체로도 굉장히 깔끔하지만 저는 이 식의 변수를 조금 줄여보도록 하겠습니다.
확률의 정의를 사용하면 전체 사건 에 대해 각각의 확률을 집합의 원소의 수를 이용해 정의할 수 있습니다.
이제 두 사건 와 가 독립이므로 독립의 필요충분조건 식에 확률을 대입한 후에 양변에 전체 사건의 경우의 수를 곱하여 정리하면 에 대한 식을 얻을 수 있습니다.
독립성 확인
예를 들어보죠. 부터 까지의 카드가 있을 때, 집합와 를 다음과 같이 정의하겠습니다.
이 두 집합은 독립일까요?
확률을 이용한 독립성 확인
가장 일반적인 방법으로 확률을 이용해 독립성을 확인해보겠습니다. 전체에 대해 와 의 확률을 계산하면 는 전체 개 중 개이므로 이고 또한 전체 개 중 개이므로 입니다. 이제 를 보면 전체 개 중에서 와 에 동시에 포함된 원소는 즉, 개가 있으므로 입니다. 따라서 를 만족하므로, 독립이라고 할 수 있습니다.
비율을 이용한 독립성 확인
독립을 판단하는 방법은 확률 관계뿐만 아니라 비율을 보는 방법도 있습니다. 는 원소의 개수가 개 이므로 전체에서 절반의 비율을 차지하고 있습니다. 만약 와 가 독립이라면 는 안에서나 밖에서나 일정하게 그 비율을 유지해야합니다. 의 원소 에 대해 는 의 원소이기도 합니다. 따라서 를 전체라고 본다면, 는 안에서도 절반의 비율을 차지하고 있습니다. 그러므로 는 에 관계 없이 비율을 항상 일정하게 유지하고 있으므로 독립이라고 할 수 있습니다.
이러한 이유로 독립을 ‘비율 일정의 법칙’이라 부르기도 합니다. 왜 비율이 일정하다고 하는지는 빈도 교차표를 보면 더 눈에 띄게 드러납니다. 1번 표를 보면 남자에서는 미적과 확통의 비율이 인 반면 여자에서는 비율이 로 같지 않은 것을 알 수 있습니다. 따라서 남자와 여자는 미적과 확통에 대해 독립적이지 않다는 것을 알 수 있습니다.
반면에 2번 표를 보면 남자에서는 미적과 확통의 비율이 이며 이는 여자일 때도 비율이 일정하게 유지 되는 것을 알 수 있습니다. 따라서 남자와 여자는 미적과 확통에 대해 독립적이라고 할 수 있습니다. 이는 미적과 확통을 기준으로 남자와 여자의 비율을 보아도 로 일정하게 유지되는 것을 볼 수 있습니다.
이러한 성질을 알고 있다면 와 가 독립이라는 정보가 주어졌을 때, 비율을 이용해 미지의 값을 빠르게 구할 수 있습니다. 일반화하여 적용하는 방법은 잠시 후에 자세히 다루도록 하겠습니다.
전체 경우의 수로 확인
마지막으로 이전에 유도한 공식을 이용할 수도 있습니다. 와 의 원소의 개수를 곱한 값을 의 경우의 수로 나눈 값이 전체 경우의 수가 되는지 확인하는 방식을 이용하면 이전에 방법과 유사하지만 적은 연산으로도 빠르게 독립성을 판단할 수 있습니다.
포획-재포획법
앞서 보았듯 독립이란 조건을 이용하면 집합 와 만으로도 전체 사건의 경우의 수 즉, 전체 집합의 원소의 개수를 구할 수 있습니다. 예를 들어보죠.
코드 작성은 어려운 작업 중 하나입니다. 특히 복잡한 프로젝트에서는 수많은 줄의 코드가 얽혀 있으며, 그 중 하나라도 잘못되면 전체 시스템이 작동하지 않을 수 있죠. 이런 상황에서 모든 오류를 찾는 것은 정말 어려운 일입니다. 만약 엄청 복잡한 코드가 실행되지 않는 상황이 발생했다고 해보겠습니다. 두 프로그래머 와 가 이 문제를 해결하기 위해 코드 전체를 읽어보며 오류를 찾기로 했습니다. 이때, 와 는 각자 개와 개의 오류를 발견했다고 해보겠습니다. 다행히 두 프로그래머가 분석한 오류 중 중복으로 발견한 오류가 있었고, 그 개수는 개였습니다. 여기서 두 프로그래머의 작업은 독립적(각자 오류를 찾을 확률이 일정하다고 했을 때)이므로, 전체 오류를 찾을 수 있습니다.
가 발견한 오류와 가 발견한 오류를 곱하고, 그 결과를 둘 다 발견한 오류로 나누면 되죠. 결과적으로 전체 코드에서의 오류 개수는 개로 추정할 수 있습니다. 여기서 한 발 더 나아가 보겠습니다. 현재 발견한 코드의 오류 개수는 중복 영역에서 발견한 오류를 한 번만 세어야 하므로 합집합 개념을 이용해 표현할 수 있습니다.
와 가 현재 발견한 오류의 개수는 총 개이고 따라서 두 프로그래머가 앞으로 전체 코드에서 발견해야 할 오류의 개수가 개 라는 것을 파악할 수 있습니다.
이 과정을 일반화 해보죠. 먼저 전체 오류의 개수와 현재 발견한 오류의 개수를 구하는 식은 다음과 같이 정의했습니다.
앞으로 찾아야 할 오류의 개수는 합집합의 여집합이므로 계산하는 식에 위의 두 식을 대입할 수 있습니다.
두 프로그래머가 찾은 오류 중 중복되지 않은 오류의 개수를 각각 와 로 표현하고, 둘 다 찾은 오류의 개수를 로 표현하면, 앞으로 찾아야 할 오류의 개수는 다음과 같이 계산됩니다
이렇게 정리된 식은 우리에게 많은 정보를 줍니다. 먼저 이 식을 통해 와 가 각각 자신들만 찾은 오류가 많고, 둘 다 찾아낸 오류의 개수가 적다면, 여전히 많은 오류가 남아 있을 것이라는 정보를 줍니다. 그리고 이 식에는 두 프로그래머가 얼마나 오류를 잘 찾아내는지를 나타내는 정확도에 대한 내용이 없습니다. 따라서 와 가 오류를 찾는 정확도가 낮다고 하더라도 독립적이라는 성질만으로 전체를 꽤 정확하게 추측 할 수 있음을 보여줍니다.
How many words did Shakespeare know?
앞서 소개한 방법은 포획-재포획법이라 불리는 방법으로 독립이라는 성질을 이용해 적은 정보로 전체를 추정할 수 있게합니다. 이를 더 적극적으로 활용하면 어떨까요?
예를 들어 “셰익스피어가 실제로 알고 있었던 단어 수는 몇 개일까요?” 에프론(Bradley Efron)과 티스티드(Ronald Thisted)는 포획–재포획법(capture–recapture)을 기반으로 셰익스피어가 알고있었던 단어의 수를 찾고자 했습니다.1
우선 셰익스피어가 쓴 약 만 개의 단어들 중 번 등장한 단어 수를 라 할 때,
한 번이라도 등장한 고유 단어(word type)는 약 31,500개 였습니다. 특히 으로, 전체의 거의 절반이 단 한 번만 등장한 단어입니다. 이러한 희귀 단어들의 존재는 셰익스피어가 한 번도 쓰지 않았지만 알고 있었던 단어도 꽤 많았을 것이라는 추정할 수 있는 힌트가 됩니다.
만약 셰익스피어가 지금과 같은 분량의 글을 한 권 더 썼다면, 과연 새로운 단어는 몇 개 더 등장했을까요? 굿-툴민(Good–Toulmin) 추정식을 기반으로
일 때 등장할 새로운 단어의 수를 추정하면
개의 새로운 단어가 추가로 나타났을 것이라는 추정이 가능합니다.
그런데 문제가 하나 있습니다. 위의 급수는 일 경우 항이 지수적으로 증가합니다. 가 커질수록 진동하며 발산하므로, 무작정 항을 더하면 추정값이 엉망이 됩니다. 급수가 진동하고 수렴하지 않기 때문에, 추정식은 이론적으로만 유효하며 실전 계산에서는 사용할 수 없는거죠. 그래서 오일러 변환을 이용해 기존 급수를 안정적인 형태로 바꿔줍니다.(여기서 는 최대 빈도 컷오프값, 는 오일러 계수)
실제로 정도를 사용하면 원래의 추정치 과 거의 동일하지만, 계산의 안정성과 신뢰도가 훨씬 높아집니다.
마지막으로 전체 어휘 수, 즉 일 때 는 얼마일까요? 선형계획법(linear programming)을 이용해 데이터에 따라 최적화된 계수 를 조정함으로써, (어떤 단어 출현 분포 가 주어지더라도) 추정값이 보다 작거나 같도록 보장하는 식을 만듭니다.
이를 이용해 보수적인 하한선을 찾으면, 셰익스피어는 적어도 개의 추가적인 단어를 더 알고 있었으며,
기존에 사용한 단어수에 더하면 실제 어휘 수는 최소 개 이상이었을 것이라 추정할 수 있습니다.
우리가 보지 못한 것들을 마주할 때, “그건 안 보여서 몰라요”라고 말하기 전에, 이렇게 다시 묻는 것도 좋겠습니다. “관측된 걸 보면, 보이지 않는 것도 알 수 있지 않을까요?”