2024. 8. 22. 13:38ㆍMachine Learning/Fundamentals of Data Visualization
7 Visualizing distributions: Histograms and density plots
7.1 Visualizing a single distribution
승객들을 비슷한 나이대로 그룹화하고, 각 그룹에 속하는 승객 수를 계산하면 그 결과가 하나의 표로 나타날 수 있습니다.
이 데이터를 시각화하기 위해, 각 나이 구간(연령대)의 승객 수를 나타내는 막대를 그립니다. 막대의 높이는 해당 구간에 속한 승객 수를 나타내고, 막대의 너비는 해당 나이 구간의 범위를 나타냅니다. 이러한 시각적 표현 방식을 히스토그램이라고 부릅니다.
히스토그램의 시각적 표현이 데이터의 빈(bin) 너비 선택에 따라 달라질 수 있습니다.
일반적으로, 빈 너비가 너무 작으면 히스토그램이 지나치게 세분화되어 시각적으로 복잡해지고, 데이터의 주요 경향을 파악하기 어려워집니다. 반대로, 빈 너비가 너무 크면 데이터의 작은 특징들, 예를 들어 나이 10세 부근에서의 감소 같은 것이 사라질 수 있습니다.
타이타닉 승객들의 나이 분포를 예로 들면, 1년 단위의 빈 너비는 너무 작고, 15년 단위의 빈 너비는 너무 큽니다. 하지만 3년에서 5년 사이의 빈 너비는 적절하게 작동하며, 데이터의 주요 특징을 잘 반영합니다.
히스토그램은 18세기부터 인기가 있었으며, 손으로도 쉽게 그릴 수 있다는 점에서 널리 사용되었습니다. 그러나 최근에는 노트북이나 휴대폰과 같은 일상적인 장치에서도 강력한 컴퓨팅 파워가 사용 가능해지면서, 히스토그램이 점차 밀도 그래프로 대체되는 추세가 나타나고 있습니다.
밀도 그래프에서는 데이터의 기저 확률 분포를 시각화하기 위해 적절한 연속 곡선을 그립니다. 이 곡선은 데이터를 바탕으로 추정해야 하며, 가장 일반적으로 사용되는 추정 방법은 커널 밀도 추정(kernel density estimation)입니다. 커널 밀도 추정에서는 각 데이터 지점의 위치에 작은 너비를 가진 연속 곡선(커널)을 그린 후, 이 곡선들을 모두 더해서 최종적인 밀도 추정을 얻습니다.
가장 널리 사용되는 커널은 가우시안 커널(즉, 가우시안 종형 곡선)입니다. 그러나 이 외에도 여러 가지 커널을 사용할 수 있습니다. 밀도 그래프는 데이터의 분포를 부드럽게 표현하여 히스토그램보다 더 직관적으로 데이터를 이해할 수 있게 해줍니다.
타이타닉 승객들의 나이 분포를 가우시안 커널과 대역폭 2를 사용해 추정한 밀도 곡선을 보여줍니다. 이 곡선의 높이는 면적이 1이 되도록 스케일링됩니다.
밀도 그래프의 시각적 형태는 선택한 커널과 대역폭에 따라 달라지는데, 이는 히스토그램의 빈 너비 선택과 유사한 역할을 합니다.
(a) 가우시안 커널, 대역폭 = 0.5
(b) 가우시안 커널, 대역폭 = 2
(c) 가우시안 커널, 대역폭 = 5
(d) 직사각형 커널, 대역폭 = 2
대역폭이 너무 작으면 밀도 추정치가 지나치게 뾰족하고 시각적으로 복잡해져서 데이터의 주요 경향이 가려질 수 있습니다. 반대로, 대역폭이 너무 크면 데이터 분포의 작은 특징들, 예를 들어 데이터의 특정 부분에서 나타나는 작은 변화, 이 사라질 수 있습니다.
또한, 커널의 선택도 밀도 곡선의 모양에 영향을 줍니다.
예를 들어, 가우시안 커널은 매끄럽고 꼬리 부분이 부드러운, 가우시안 분포처럼 보이는 밀도 추정을 생성하는 경향이 있습니다. 반면에, 직사각형 커널은 밀도 곡선에 계단 모양의 변화를 나타낼 수 있습니다.
또한, 히스토그램이나 밀도 그래프 대신에 경험적 누적 밀도 함수(ECDF)나 q-q 플롯과 같은 다른 방법(8장에서 설명)을 선택할 수도 있습니다.
7.2 Visualizing multiple distributions at the same time
이번 섹션에서는 여러 분포를 동시에 시각화하는 방법에 대해 설명하고 있습니다. 예를 들어, 타이타닉 승객들 중 남성과 여성의 나이 분포를 동시에 시각화하고자 한다고 가정합니다. 이 경우, 남성과 여성 승객들의 나이에 차이가 있었는지, 아니면 비슷한 나이대를 가졌는지를 확인하고 싶을 수 있습니다.
이를 시각화하는 흔한 방법 중 하나는 스택드 히스토그램(stacked histogram)입니다. 이 방법에서는 남성 승객의 히스토그램 막대 위에 여성 승객의 히스토그램 막대를 다른 색으로 겹쳐 그립니다. 이렇게 하면 한 눈에 두 성별의 나이 분포를 비교할 수 있습니다. 스택드 히스토그램은 분포를 비교할 때 유용하며, 서로 다른 그룹 간의 차이나 공통점을 쉽게 시각화할 수 있는 방법입니다.
이 그래프는 두 가지 주요 문제가 있습니다.
막대의 시작점이 불분명함: 그림만 봐서는 막대가 정확히 어디에서 시작하는지 명확하지 않습니다. 색이 바뀌는 부분에서 시작하는 것인지, 아니면 0에서 시작하는 것인지 헷갈릴 수 있습니다. 예를 들어, 18-20세 여성 승객이 약 25명인지, 아니면 거의 80명인지 알기 어렵습니다(실제로는 약 25명입니다).
여성 승객의 막대 높이 비교 불가능: 여성 승객의 막대가 각기 다른 높이에서 시작하기 때문에, 이들의 높이를 직접 비교할 수 없습니다. 예를 들어, 남성 승객이 평균적으로 여성보다 나이가 많았다는 사실이 이 그림에서는 전혀 드러나지 않습니다.
이 문제를 해결하기 위해 모든 막대를 0에서 시작하고, 막대를 부분적으로 투명하게 만들어 보는 방법을 고려할 수 있습니다.
이 접근 방식은 새로운 문제를 야기합니다
세 개의 그룹으로 보임: 이제 실제로는 두 그룹만 존재하지만, 시각적으로는 세 개의 다른 그룹이 있는 것처럼 보입니다.
막대의 시작과 끝이 불명확함: 각 막대가 어디에서 시작하고 끝나는지를 여전히 명확하게 알기 어렵습니다. 반투명 막대가 다른 막대 위에 그려지면, 반투명 막대가 아닌 다른 색의 막대처럼 보이게 되는 경향이 있습니다.
겹치는 밀도 그래프(overlapping density plots)는 히스토그램의 겹치는 문제를 보완할 수 있습니다. 밀도 곡선의 연속적인 선들이 각 분포를 시각적으로 분리하는 데 도움이 됩니다. 그러나 이 특정 데이터셋(타이타닉 승객의 나이 분포)에서는 남성과 여성의 나이 분포가 17세까지 거의 동일하게 나타나고, 이후에 차이가 나타나기 때문에 이 시각화 방법도 완벽하지는 않습니다.
따라서 이 데이터셋에 더 적합한 해결책은 남성과 여성 승객의 나이 분포를 각각 전체 나이 분포의 비율로 표시하는 것입니다. 이 시각화는 20-50세 연령대에서 여성 승객이 남성 승객보다 훨씬 적었다는 사실을 직관적이고 명확하게 보여줍니다.
두 개의 분포를 시각화할 때 사용하는 또 다른 방법으로 나이 피라미드(age pyramid)가 있습니다. 두 개의 개별 히스토그램을 90도 회전시켜, 하나의 히스토그램 막대가 반대 방향을 향하게 배치하는 방법을 설명합니다. 이 방법은 나이 분포를 시각화할 때 흔히 사용되며, 인구 피라미드라고도 불리는 결과물로 나타납니다. 나이 피라미드는 각 그룹의 나이 분포를 시각적으로 비교하는 데 매우 효과적이며, 특히 연령대별 인구 구조를 이해하는 데 유용합니다.
나이 피라미드는 두 개의 분포를 비교할 때 매우 효과적인 도구이지만, 동시에 세 개 이상의 분포를 시각화할 때는 적합하지 않습니다. 그 이유는 여러 분포를 한꺼번에 표현할 경우 히스토그램이 매우 혼란스러워지기 때문입니다.
이와 같은 경우, 밀도 그래프(density plots)가 더 적합합니다. 밀도 그래프는 분포들이 어느 정도 구분 가능하고 연속적인 경우에 효과적으로 작동합니다.