베하~ 안녕하세요! BTC_현상수배범 입니다.
지난번에는 Streamlit을 활용하여, DALYs 데이터에 대해 시각화(box plot)를 해보았습니다.
이번에는 각각의 변수(질병/재해) 간의 상관 관계를 확인해보고 시각화해보고자 합니다.
상관계수란?
상관계수(Correlation Coefficient)는 두 변수 간의 관계의 정도와 방향을 수치적으로 표현한 값입니다. 상관계수의 값은 -1부터 1까지 범위를 가집니다.
- 1에 가까울수록 두 변수가 강한 양의 상관관계를 가짐 (하나의 변수가 증가하면 다른 변수도 증가)
- -1에 가까울수록 두 변수가 강한 음의 상관관계를 가짐 (하나의 변수가 증가하면 다른 변수는 감소)
- 0에 가까울수록 두 변수가 거의 무상관 (하나의 변수의 변화가 다른 변수의 변화에 큰 영향을 주지 않음)
상관계수는 여러 가지 방법으로 계산될 수 있습니다. 가장 널리 사용되는 방법은 피어슨 상관계수(Pearson Correlation Coefficient)입니다. 피어슨 상관계수의 계산 공식은 다음과 같습니다:
여기서 x와 y는 각각 두 변수 x와 y의 개별 관측값, x-와 y-는 각 변수의 평균값입니다.
다른 종류의 상관계수에는 스피어만 순위 상관계수(Spearman's Rank Correlation Coefficient)와 켄달의 타우(Kendall's Tau) 등이 있습니다. 이들은 순위나 순서가 중요한 데이터에 더 적합하며, 특히 비선형 관계를 측정할 때 유용합니다. 상관계수는 변수 간의 관계를 평가하는 데 유용한 도구이지만, 인과관계(causality)를 설명하지는 않습니다. 즉, 두 변수 사이에 상관관계가 있다고 해서 하나의 변수가 다른 변수를 '발생시킨다'고 볼 수는 없습니다.
수식은 어려워 보이지만, 다행히도 파이썬의 numpy, Pandas에서는 쉽게 계산할 수 있는 메서드를 제공합니다. 이를 활용하여 DALYs 데이터의 여러 변수(질병/재해 종류)에 대해 상관계수를 계산해보도록 하겠습니다. 상관 계수는 수치형 데이터에 대해서 수행되기 때문에, Entity, Year와 같은 컬럼은 제외하고 진행하였습니다.
우측의 범례와 같이, 짙은 주황색(?)일 수록 두 변수 간 양의 상관 관계를 가지고 있는 것이고, 짙은 초록색일 수록 서로 간 음의 상관 관계를 가지고 있다는 의미입니다. 종류가 너무 많아 보기 어려워서, 지난 시간에 확인해 보았던 Nutritional deficiencies(영양 결핍)에 대해서만 확인해보도록 하겠습니다.
Nutritional deficiencies(영양결핍) 상관계수 확인
앞서 말씀드렸던 것 처럼, 1에 가까울수록 양의 상관 관계를 가지고 있고, -1에 가까울 수록 음의 상관 관계를 가지고 있습니다. 0에 가까우면 가장 무관하다고 생각하시면 되겠습니다. 쉽게 생각하면, 양의 상관관 계는 비교 대상인 두 변수가 동일하게 우상향을 한다고 보시면 되고, 음의 상관 관계는 하나는 우상향, 하나는 우하향으로 반대된다고 생각하시면 되겠습니다. 위 그래프에서는 좌측으로 갈 수록 음의 상관 관계가 높아지고, 우측으로 갈 수록 양의 상관 관계가 높아집니다.
- 가장 높은 양의 상관 관계:
Maternal Disorders(산모 질환), 상관계수: 0.669
이는 영양 결핍과 산모 질환 사이에 뚜렷한 양의 상관 관계가 있다는 것을 의미합니다. 영양 결핍이 심한 지역에서는 산모 질환의 발생 빈도가 높을 가능성이 있습니다. 임신과 분만에 필요한 영양소가 부족할 경우 발달 지연, 조산, 면역계 문제 등 다양한 문제를 초래할 수 있기 때문입니다.
- 가장 낮은 음의 상관 관계:
Neurological disorders(신경계 질환), 상관계수: -0.651영양 결핍과 신경계 질환은 서로 음의 상관 관계에 있다고 합니다. 이는 영양 결핍이 높은 국가에서는 신경계 질환이 낮을 확률이 높고, 영양 결핍이 낮은 국가에서는 그 반대의 결과가 나타날 확률이 높다고 볼 수 있습니다. 영양 결핍이 가장 낮은 국가와 가장 높은 국가의 신경계 질환을 살펴보면 두 변수가 상반되는 것을 확인할 수 있었습니다. 다만, 두 변수가 음의 상관 관계를 나타낸다고 해서 인과 관계 또한 그렇다고 볼 순 없습니다.
- 가장 무관한 변수:
Exposure to forces of nature(자연재해), 상관계수: 약 -0.003저는 가뭄, 홍수 같은 재해로 인해 농작물 수확이 어려워지면 영양 결핍에 영향이 있지 않을까 했는데, 데이터 상에서는 무관하다고 볼 수 있을 것 같습니다.
이번 시간에는 각각의 변수(질병/재해) 간의 상관 관계를 확인해보고 시각화를 해보았습니다.다음 시간에는 지도를 활용하여 시각화를 해보고자 합니다.
'Programming > Python' 카테고리의 다른 글
Pandas & Numpy (0) | 2023.09.27 |
---|---|
Streamlit - Kaggle DALYs 데이터 분석 & 시각화 - 3 (0) | 2023.09.15 |
[Python] 예외 처리 (try, exept, else, finally) (1) | 2023.08.21 |
Streamlit - Kaggle DALYs 데이터 분석 & 시각화 - 1 (0) | 2023.08.16 |
Streamlit이란? (0) | 2023.08.04 |
댓글