다양한 스토리를 담고 있는 연재를 만나보세요.
[난그댄!] 일렁이는 파도 또는 산맥 같은 플랏
Bio통신원(뉴로)
난.그.댄 독자 여러분 안녕하세요?
그간, 난해한 그래프와 신나게 댄스를 추시는 분들이 많아지셨길 빕니다.
눈이 완전히 녹고 점점 사람들의 옷차림이 가벼워지는 요즘입니다. 그런 주변 풍경을 바라보며 곧 오게 될 여름휴가를 생각하니 퍼뜩 떠오른 플랏입니다.
지난 시간, 우리는 분포를 보여주는 박스플랏을 알아봤습니다. 이것과 비슷한 점이 많은 것이 바로 히스토그램입니다. 박스플랏이나 히스토그램 모두 데이터의 분포를 보여준다는 점에선 목적이 같습니다. 그래서, 많은 경우에 상호 호환이 가능합니다.
다른 점이라면, 히스토그램은 데이터의 분포를 일정한 구간으로 나눠서 해당 구간의 수를 바그래프로 묶어서 만드는 것입니다. 이렇게만 말하면 감이 잘 안 안 올 겁니다. 아래의 그림을 보면서 직관적으로 비교해 봅시다.
그림 1. 난수 생성을 통해 만든 박스플랏과 히스토그램. 같은 난수값으로 만든 경우 동일한 색으로 색칠함.
지금 보여드리는 플랏들은 파이썬의 numpy 라이브러리를 통해 생성한 난수들의 분포를 박스플랏과 히스토그램을 통해 보여주고 있습니다. 균등 분포와 베타 분포를 이용해 정규분포에 가까운 분포부터 한쪽에 치우친 분포나 양극단에 쏠린 분포를 보여주고 있죠.
2개의 플랏은 대다수의 경우 서로 호환이 가능한 것을 알 수 있습니다.
하지만, 히스토그램이 좀 더 데이터의 분포를 자세히 설명해 주는 것을 볼 수 있을 것입니다. 특히 uniform (빨강)과 beta1 (파랑)을 보시면 박스플랏을 통해서 봤을 때 이들의 분포는 구분이 거의 되지 않습니다. 반면, 히스토그램을 통해 보면 명확하게 구분이 되는 것을 볼 수 있죠.
이렇게 보면 박스플랏에 비해 히스토그램이 좋아 보입니다. 하지만, 장점이 있으면 단점이 있기 마련입니다.
그림 2. 그림 1의 데이터들을 모아 그린 플랏
그림 2를 보시면 각 항목을 표기할 때 박스플랏 (a패널)이 단순 히스토그램 (b패널) 보다 더 잘 구분되는 것을 볼 수 있습니다. 위의 데이터와 같이 대략 0.1 ~ 0.9 구간에선 히스토그램으로 표기하는 경우 막대들이 겹쳐지면서 항목들을 구분하기가 무척 어려워집니다.
이러한 히스토그램의 문제를 해결할 때는 패널 c와 같이 밀도 함수 (density plot)을 통해 그리게 됩니다. 이렇게 할 경우 각 데이터의 분포가 상대적으로 잘 보이는 장점이 있습니다. 물론, 박스플랏에 비할 바는 아니긴 합니다. 그래서, 최근엔 산등성 플랏 (ridge plot, 릿지플랏)이라는 방식으로 쪼개서 보여줍니다. 꼭 파도가 넘실대는 느낌이 아니신가요?
그림 3. 산등선 플랏 (ridge plot)
그렇다면 히스토그램이나 밀도 함수는 주로 어디서 사용되는지 살펴봅시다.
그림 4. 다양한 히스토그램 및 밀도 함수들 [출처 1-3]
지난 시간에 보여드렸던 박스플랏들과 달리 히스토그램은 오로지 1개의 분포를 표현할 때도 쓰이는 것을 볼 수 있습니다. 그리고 그룹 간의 비교를 할 때도 숫자가 적은 것을 볼 수 있죠.
릿지플랏으로 비교 그룹의 수를 늘릴 순 있지만 좀처럼 하진 않습니다. 특히나 예시를 들었던 것들에서 볼 수 있듯이 릿지플랏은 y 축 정보가 사라지게 됩니다. 그림 2와 3을 비교해 보시면 어떤 의미인지 아시게 될겁니다. 다른 것으로는 그룹 내에 관측 값이 무척 많은 것들에 사용된다는 것입니다. 이건 박스플랏과 동일하지만 숫자가 적으면 이쁜 곡선이나 막대들로 표현되지 않고 군데군데 이가 빠진 칫솔같이 보이게 됩니다.
정리하면, 히스토그램은 어떤 데이터의 1차원 적인 숫자의 나열이 어떤 분포를 이루는지 볼 때 좋습니다. 그룹 간의 비교를 할 수 있지만 박스플랏에 비해 용이하지 않아 대게 2 ~ 3개의 그룹이 한계입니다.
그 외의 여담이지만 박스플랏만 그리면 논문이 조금 심심해질 수도 있습니다. 적절히 히스토그램, 밀도 함수 그리고 릿지플랏을 그리면 좀 더 다채로운 그림들로 구성될 겁니다.
이번 시간에도 실제 출간된 데이터들을 활용해 히스토그램을 그려보는 실습이 준비되어 있습니다.
박스플랏과의 비교를 위해 사용한 그림 1/2/3을 그린 코드들도 함께 있으니 언젠가 요긴하게 사용하시길 빕니다.
실습코드
https://colab.research.google.com/drive/1A-cvU_npu5W9HTzXNYl4_NsK4dk94br_?usp=sharing
질문이나 의견이 있으신 분은 댓글이나 제 이메일로 부탁드립니다.
agicic[at]naver.com
다음에 또 새로운 그래프로 다시 만납시다.
출처 :
[1] 10.1038/s41467-020-17139-y
[2] 10.1038/s41588-022-01273-y
[3] 10.1038/s12276-022-00876-z
본 기사는 네티즌에 의해 작성되었거나 기관에서 작성된 보도자료로, BRIC의 입장이 아님을 밝힙니다. 또한 내용 중 개인에게 중요하다고 생각되는 부분은 사실확인을 꼭 하시기 바랍니다.
[기사 오류 신고하기]
생명과학자들은 반드시 '그래프 3 잘'이라는 소양이 있어야 한다. 그래프 3 잘 이란 '그래프를 잘 보고, 잘 이해하고, 잘 그려야 한다'라는 뜻이다. 그러나, 이 중요한 소양은 대게 좌충우돌과 시행착오로 개개인이 습득을 한다. 이 글은 생명과학 데이터로 '그래프 3 잘'하고 싶은 독자들을 돕고자 하는 글이다. 저자 뉴로는 '암은 굶어죽지 않는다.'를 신념으로 삼고 살아가는 직장인이다. 오늘도 그는 종양 오믹스데이터로 그래프를 그린다.
다른 연재기사 보기
전체 보기