R언어로 통계와 관련된 기본적인 기능들을 알아보고 있습니다. 이번에는 상자그림(Box Plot)에 대해서 알아보도록 하겠습니다. 제가 여러가지 인자를 사용해 보았는데, 상자그림은 기본 옵션만으로도 충분히 기능을 발휘하는 것 같습니다. 최근 엑셀에도 상자그림을 사용할 수 있도록 되어 있었지만, 과거에는 엑셀이나 파워포인트에서 상자그림을 그릴려면 많은 수고가 필요했던 것이 사실입니다. 엑셀에 워낙 편하게 되어 있어서 크게 의미가 없을 수도 있으나, 기본 기능이니 간단히 알아보도록 하겠습니다.
우선, 데이터를 불러오겠습니다. 데이터는 K-MOOC 강좌 포스텍 김혜선 교수님의 :데이터 과학을 위한 R 프로그래밍"자료에서 발췌하였습니다. 문제가 된다면 삭제하겠습니다.
파일을 불러오기 합니다. 과거에는 코딩으로 되어 있었지만, RStudio를 사용하면 GUI 방식으로 쉽게 불러올 수 있습니다.(과거 블로그 참조해 주세요.)
불러온 데이터에 대한 정보를 간단히 볼 수 있는 함수입니다. 2행은 brain2210이라는 데이터셋을 brain이라고 간략화한 변수로 입력한 것이고요, head()함수는 데이터셋의 일부(6개)를 보여주는 함수입니다 wt, sex라는 변수 2개가 있고요. 형태는 wt는 수치형(dbl), sex는 범주형(문자형, chr)변수인 것을 볼 수 있습니다,
dim()함수는 데이터 셋의 차원을 볼 수 있습니다. 185개의 데이터가 있고, 2개의 변수가 있다고 나오네요. 이 데이터 셋으로 상자그림을 그려보도록 하겠습니다.
boxplot(wt ~ sex)라고 다른 인자는 사용하지 않고, 기본적으로 그린 상자 그림은 아래와 같습니다.
상자 그림의 기본적인 해석을 해보면 아래와 같습니다. 기본적으로 일사분위수, 중앙값, 사분위수로 박스를 만들고, 최대값 최소값으로 범위를 나타내주는 것이 상자그림의 기본입니다. 여기서 성별이 m인 오른쪽 상자그림에는 위/아래로 동그라미가 표현된 것을 볼 수 있는데, 이것은 이상치(특이점, Outlier)입니다. 이상치(특이점)을 제외한 데이터의 최대값, 최소값이 표현되어 지는 것입니다.해당 데이터를 기준으로 outlier를 계산해 보도록 하겠습니다.
우선 최대값쪽 기준을 계산해 보겠습니다. 우선 IQR = Q3 - Q1 = 1300 - 1096 = 204, Q3(3rd Qu) + (1,5 * IQR = 1300 + (1,5 * 204) = 1606 입니다. 즉 1606을 넘는 데이터는 이상치(특이점)로 취급하고, 그런 데이터가 2개가 있다는 의미입니다.
몇 가지 인자를 수정해 봤습니다. col함수는 박스 색상입니다. 라이트 블루, 라이트그림으로 지정을 했습니다. 색상은 위와 같이 문자로 써도 되고 #FF0000 처럼 RGB 코드를 사용해도 됩니다, boxwex는 상자의 폭을 나타냅니다. 이건 직접 해보시면 금방 어느 정도가 적당하지 아실 수 있습니다.(0.2 ~ 0.5) ylim은 y축의 범위를 나타냅니다. 마지막으로 outpch는 이상치(특이점)을 나타내는 표식입니다. 여러가지 표식이 있는데, 1~25번까지 바꿔서 해보시면 어떤 것이 좋은지 아실 수 있습니다. 1, 15, 16, 19, 22번 정도가 무난해 보이네요. main은 그래프 제목입니다.




