데이터를 살펴보면 키와 몸무게와 같이 연속적인 자료값이 있으며,
등수와 같이 순서를 나타내는 자료값도 있으며,
남녀와 같이 연속적이지도 않고, 순서를 의미하지도 않는 자료값도 있습니다.
연속적인 자료값은 연속형 변수라고하며,
키와 몸무게의 예시처럼 서로 연관성을 지닐 수도 있습니다.
이때 두 연속형 변수 사이에 연관성이 있는 정도를 보여주는 것이 공분산과 상관계수입니다.
순서를 나타내는 자료값은 순서형 변수라고하며,
수학등수와 영어등수의 예시처럼 서로 연관성이 있는지 여부를 파악하고 싶은 경우도 있습니다.
이때 두 순서형 변수 사이에 연관성이 있는 정도를 보여주는 것이,
스피어만의 순위상관계수와 켄달의 타우입니다.
켄달의 타우(Kendall's Tau)
켄달의 타우에서 켄달은 통계학자 모리스 켄달을 의미하며,
타우는 그리스문자로서 켄달의 타우의 결괏값을 의미합니다.
켄달의 타우는 순위에 대한 데이터가 있는 경우 활용하지만,
순위에 대한 데이터가 아닌 경우라도,
순위를 가진 데이터로 변경하여 활용하기도 합니다.
5명의 수학점수와 영어점수 데이터입니다.
점수사이에 어떤 수도 들어갈 수 있는 연속적인 자료이지만,
수학점수의 분포가 10점부터 90점까지 극단적으로 분포가 되어,
상관계수를 활용하면 데이터가 왜곡될 수 있습니다.
상관계수는 자료값들의 흩어진 정도가 평균을 중심으로 몰려있고,
평균보다 작아질수록, 평균보다 커질수록 점점 드물게 나온다고 가정하기 때문입니다.
즉, 데이터가 정규분포를 따른다는 전제 하에 상관계수를 사용합니다.
그래서 5명의 점수가 정규분포를 따르는지 따르지 않는지 확실하지 않은 경우에는,
분포를 가정하지 않는 켄달타우를 사용합니다.
순위를 가진 데이터로 변경 시 rank 메서드를 활용합니다.
켄달의 타우는 다음과 같이 구합니다.
조화로운 짝꿍(concordant pairs)과 조화롭지 않은 짝꿍(discordant pairs)을 구하여 연관성을 파악합니다.
여기서 조화로운 경우란 손가락으로 숫자를 세듯이,
수학등수를 1등, 2등, 3등, 4등, 5등을 세는 동안,
수학등수 1등이 영어등수도 1등이고, 수학등수 2등이 영어등수도 2등이어서,
수학등수에 비례하게 영어등수도 커지는 경우를 말합니다.
조화로운 짝꿍(concordant pairs)의 예를 살펴보겠습니다.
0번의 수학등수는 1등이고, 1번의 수학등수는 2등이므로 차이인 1 빼기 4는 -1입니다.
0번의 영어등수는 1등이고, 1번의 수학등수는 2등이므로 차이인 1 빼기 4는 -3입니다.
0번의 등수와 1번의 등수를 비교한 결과,
0번의 수학등수인 1에서 1번의 수학등수인 2로 늘어나는 동안,
0번의 영어등수인 1에서 1번의 영어등수도 4로 늘어나기 때문에,
0번과 1번의 수학등수와 영어등수는 조화롭다고 말할 수 있습니다.
조화롭지 않은 짝꿍(discordant pairs)의 예를 살펴보겠습니다.
1번의 수학등수는 2등이고, 3번의 수학등수는 4등이므로 차이인 2 빼기 4는 -2입니다.
1번의 영어등수는 4등이고, 3번의 수학등수는 2등이므로 차이는 4 빼기 2는 2입니다.
1번의 등수와 3번의 등수를 비교한 결과,
1번의 수학등수인 2에서 3번의 수학등수인 4로 늘어나는 동안,
1번의 영어등수인 4에서 3번의 영어등수도 2로 줄어들기 때문에,
1번과 3번의 수학등수와 영어등수는 조화롭다고 말할 수 없습니다.
이러한 방법으로 0번부터 4번까지 총 5명을 모두 비교합니다.
0번과 1번, 0번과 2번, 0번과 3번, 0번과 4번을,
1번과 2번, 1번과 3번, 1번과 4번을,
2번과 3번, 2번과 4번을,
3번과 4번을 비교합니다.
이는 5명 2명을 뽑는 경우의 수와 동일하며, 총 10번이 됩니다.
수식에서는 짝꿍의 수(number of pairs)를 뜻하며,
조화로운 짝꿍의 총 수와 조화롭지 않은 짝꿍의 총 수를 더해도 결과는 동일합니다.
조화로운 짝꿍과 조화롭지 않은 짝꿍을 계산을 통해 찾아내는 방법입니다.
0번과 1번을 비교하면서 0번의 수학등수에서 1번의 수학등수를 빼면 음수가 나옵니다.
0번과 1번을 비교하면서 0번의 영어등수에서 1번의 영어등수를 빼면 음수가 나옵니다.
이 값들을 모두 곱해주면 음수와 음수의 곱셈이 되어, 결과적으로 양수가 됩니다.
만약 위 값들이 모두 양수와 양수라도 양수와 양수의 곱셈이 되어, 결과적으로 양수가 됩니다.
즉 조화로운 짝꿍의 경우에는 곱셈의 결과가 양수가 됩니다.
조화롭지 않은 짝꿍의 경우에는 양수와 음수의 곱셈이 되어, 결과는 음수가 됩니다.
조화로운 짝궁의 수를 세기 위해 concordant_pairs를 0으로 설정합니다.
조화롭지 않은 짝궁의 수를 세기 위해 disconcordant_pairs도 0으로 설정합니다.
for문을 통해 자료값을 하나씩 가져올 준비를 합니다.
다음 순위와 비교를 위해 또 하나의 for문을 활용합니다.
0번부터 차례로 불러내기 위해 range 메서드를 사용합니다.
range(0, 5)의 의미는 0부터 5개의 정수를 불러오라는 의미이며, 결과는 다음과 같습니다.
if문에서는 ranked_data.math[0]를 통해 0번의 수학등수를 불러오고, 우선 0번과 0번을 비교합니다.
같은 등수이므로 결괏값에 영향을 주지 않습니다.
그다음 0번의 수학등수와 1번의 수학등수를 비교합니다. 뺄셈의 결과는 음수입니다.
같은 방식으로 0번의 영어등수와 1번의 영어등수를 비교합니다. 뺄셈의 결과는 음수입니다.
음수와 음수의 곱이므로, 결과는 양수가 되고, 조건이 0보다 크다는 if문의 조건이 참이 됩니다.
조건이 참이므로 concordant_pairs에 1을 더합니다.
결과가 음수인 경우는 else문의 조건이 참이 되어, discordant_pairs에 1을 더합니다.
같은 방식으로 진행되면, concordant_pairs와 discordant_pairs의 값을 구할 수 있습니다.
그리고 총짝꿍의 수는 concordant_pairs의 결괏값인 7과 discordant_pairs의 결괏값인 3을 더하여 10이 됩니다.
이를 수식에 대입하면 다음과 같습니다.
켄달타우는 -1부터 1 사이의 값을 보여줍니다.
켄달타우가 1에 가까운 수치라면, 양의 상관관계가 강하다고 볼 수 있으며,
본문의 예제를 활용하면, 수학등수가 높을수록 영어등수가 높다고 볼 수 있습니다.
켄달타우가 -1에 가까운 수치라면, 음의 상관관계가 강하다고 볼 수 있으며,
본문의 예제를 활용하면, 수학등수가 높을수록 영어등수는 낮다고 볼 수 있습니다.
수식을 이해하기 위해 직접적으로 계산하였으나,
scipy의 kendalltau 메서드를 이용하면 간단히 계산할 수 있습니다.
켄달타우는 데이터의 분포를 모르는 경우에 적합하며,
데이터를 탐색적으로 살펴보는 단계에 한하여 켄달타우를 활용합니다.
'순서형, 연속형, 범주형 변수간 분석 > 순서형 변수간 분석' 카테고리의 다른 글
[python/파이썬] 순서형 변수간 연관성을 보여주는 스피어만 순위상관계수 (1) | 2023.01.03 |
---|