본문 바로가기

Theory/DataScience

Box Plot의 기초

요즘 수업하면서 box plot의 기초에 대해 궁금해 하시는 분들이 많아서 이 부분만 다시 이야기하려고 블로그에 정리합니다. 데이터의 분포를 관찰하는 좋은 도구 중에 하나가 Box Plot입니다. 간단히 예를 보도록 하죠.

임의로 데이터를 만들어 두겠습니다. 그리고 그림을 그리기 위한 y값도 1로만 채워두겠습니다.

그려보면 위 그림처럼 되죠. 100 근처의 값들이 생뚱(^^)맞게 크게 잡혀있네요.

이제 numpy의 median 명령으로 중간값을 찾아보겠습니다. 45라는 값이 딱 중간 값인가 봅니다.

numpy의 percentile 명령을 이용하면 4분의1 (25%), 4분의3 (75%) 지점의 값들을 찾아보면 16과 48이라고 합니다.

그 값을 각각 q1, q3라고 하고 가운데 값은 q2라고 하겠습니다. 그리고 q3와 q1의 간격을 iqr이라고 이름붙입니다. iqr의 1.5배만큼 75%지점에서 큰 값을 upper_fence, iqr의 1.5배 값을 25% 지점보다 낮은 지즘을 lower_fence라고 합니다.

그리고 axvline이라는 수직선을 그리는 함수를 이용해서 그립니다.

저렇게 되는군요. 빨간선이 가운데값, 두 검은 선이 각각 1/4, 3/4 지점의 값, 그걸 각각 q1, q3라고 하고, 그 간격을 iqr이라고 하고 1.5배 이상 벌어진 값보다 큰값, 위 그림에서는 100 근처의 값 두 개가 outlier가 됩니다.

방금 했던 이야기를 정리하면 위 그림처럼 됩니다.

물론 간단하게 seaborn을 이용해서 boxplot을 쉽게 그릴 수 있습니다~~^^

반응형