티스토리 뷰
데이터를 분석하는 것 자체도 중요하지만 분석결과를 남들이 쉽게 이해할 수 있도록 전달하는 것 또한 중요합니다.
이를 위해 데이터 시각화와 관련 함수 및 패키지에 대해 다룹니다.
Plot ( )
R에서는 plot 함수를 사용해 여러 객체들을 시각화 할 수 있다. 이때 type 파라미터에 아무런 값을 주지않으면, 기본적으로 산점도가 그려지게 된다. 산점도란 주어진 데이터를 점으로 표시해 흩뿌리듯이 시각화한 그림이다.
ex. mlbench패키지에 Ozone 데이터를 사용해 산점도를 그리는 예제
- Ozone 데이터 적재
- 산점도 출력
+ 여러 파라미터를 부여하여 축이나 점의 옵션을 조절할 수 있다.
- xlab : x축이름
- ylab : y축이름
- pch : 점의 모양 ( 숫자의 경우 해당 숫자에 지정된 심볼이 나타나며, 문자를 입력하면 해당 문자로 점을 표시한다.)
- cex : 점의 크기
- col : 색상 (색상코드나, 색상고유 이름을 입력하면 된다.)
- xlim : x축의 범위를 설정한다.
- ylim : y축의 범위를 설정한다.
- type
그래프의 유형을 지정할 수 있다.
ex. cars 데이터를 사용해 다양한 type의 그래프를 출력한다.
ex. 평균을 구해 그래프를 그리는 예제
- mfrow
한 창에 여러개의 그리프를 나열할 수 있도록 형식을 지정할 수 있다.
- par( )
mfrow를 지정하며, 정의한 형식을 인수로 넣어 실행시키면 기존 화면으로 초기화 시킨다.
- jitter ( )
데이터 값에 약간의 노이즈를 추가하여 같은 값을 가지는 데이터가 그래프에 여러 번 겹쳐서 표시되는 현상을 막아준다.
- points( )
이미 그려진 plot에 점을 추가할 수 있도록 한다.
- attach( ), detach( )
모든 코드에서 컬럼들을 컬럼명으로 직접 접근할 수 있게 한다. (같은 데이터를 지속적으로 이용할 경우 용이하다, 사용후에는 detach를 호출해 할당을 해제하는 것을 권장한다.)
- lines( )
이미 그려진 plot에 선을 추가할 수 있도록 한다.
- lowess( )
데이터에 대한 추세선을 찾는 방법이다. LOWESS는 y를 x로부터 추정하는 다항식을 찾는다. LOWESS가 찾는 다항식은 y = ax +b 또는 y = ax2 + bx + c와 같은 형태의 저차 다항식(low degree polynomial)이다. 다음과 같이 각 점에서 찾아진 다항식들을 부드럽게 연결하면 데이터의 추세를 보여주는 선이 된다.
- abline( )
y = bx + a(a 파라미터가 기울기가 아닌 절편으로 사용된다..!) 형태의 직선이나 y=h 형태의 수평선, 또는 x=v 형태의 수직선을 그래프에 그린다. lines와 유사해 보이나 lines 주어진 (x, y) 좌표들을 연결하는 꺾은선을 긋는 것이기 때문에 차이가 있다.
- curve( )
주어진 식에 대해 곡선을 그린다.
+ 선형 회귀 함수 lm( )을 이용해 거리에 따른 속력의 선형 회귀 직선을 그리는 예제이다. lm (formula, data = 데이터)으로 사용되며 formula는 종속변수 ~독립변수 형식을 가진다.
- text( )
plot에 문자를 입력하는 함수이다.
- identify ( )
실행후 클릭된 좌표에서 가장 가까운 점들의 데이터를 레이블로 표시한다. 그래프를 그린 뒤 identify( )를 호출하면 마우스가 커서가 십자 모양으로 변한다. 이때 십자 커서로 그래프에서 특정 점을 클릭하면 중단후 클릭된 점과 가장 가까운 데이터에 레이블이 plot에 표시된다. (마우스 클릭을 중단하려면 finish를 클릭한다.)
+ legend( )
범례를 표시하는데에 사용된다.
- matplot( ), matlines( ), matpoints( )
앞서 살펴본 plot( ), lines( ), points( ) 함수와 유사하지만, 행렬 형태를 가진 데이터를 이용해 그래프를 그린다. 함수 호출 방식 역시 큰 차이가 없으며, 입력이 행렬로 주어지기만 하면 된다.
- boxplot ( )
boxplot을 그린다. boxplot이란 데이터의 분포를 보여주는 그림으로, 선과 상자로 이루어져 있다. 상자는 제1사분위수, 중앙값, 제3사분위수를 시각화하며, 선은 lower whisker(중앙값 - 1.5 × IQR’보다 큰 데이터 중 가장 작은 값)와 upper whiske(중앙값 + 1.5 × IQR’보다 작은 데이터 중 가장 큰 값)을 나타낸다.
- hist( )
히스토그램을 그린다. 히스토그램은 값의 범위마다 빈도를 표시한 그래프다. freq(빈도) 파라미터를 지정하지 않으면, 각 구간의 확률 밀도가 그려진다.
- density( )
히스토그램은 막대를 그리는 구간(bin)의 너비를 어떻게 잡는지에 따라 전혀 다른 모양이 될 수 있다는 단점이 있다. density는 막대의 너비를 가정하지 않고 모든 점에서 데이터의 밀도를 추정하는 커널 밀도 추정(kernel density estimation) 방식을 사용하여 이러한 문제를 피한 방법이다.
+ rug( ) 함수를 사용하면 실제 데이터의 위치를 x축 위에 표시할 수 있다.
- barplot( )
막대 그래프를 그린다.
ex. tapply로 Sepal.Width 평균값을 종별로 구하고 막대그래프로 나타낸 예제
- pie( )
원그래프(파이그래프)를 그린다. 데이터의 비율을 표현하는 목적으로 흔히 사용된다.
+ cut : 숫자들을 구간에 따라 분류해 factor로 변환한다.
- mosaicplot( )
범주형 다변량 데이터(하나 이상의 변수가 있는 데이터)를 표현하는데 적합한 그래프다. 모자이크 플롯에는 사각형들이 그래프에 나열되며, 각 사각형의 넓이가 각 범주에 속한 데이터의 수에 해당한다.
ex. 타이타닉 데이터로 모자이크플롯을 그리는 예제
- pairs( )
산점도 행렬을 그리기 위해 사용된다. 산점도 행렬이란, 다변량 데이터에서 변수 쌍 간(양별로 비교)의 산점도들을 그린 그래프를 말한다. 산점도 행렬을 사용하면 여러 변수가 있을 때 모든 변수 간 산점도를 손쉽게 그릴 수 있고, 이를 들여다보면 변수들 간 상관관계 등의 특징을 쉽게 찾을 수 있다.
- persp( ), contour( )
각각 투시도와 등고선 그래프를 그리는 함수이다.
+ dmvnorm( ) : mvtnorm 패키지에 있으며, 다변량 정규 분포의 확률 밀도를 구한다.
+ outer( ) : 배열의 외적(outer product)을 구한다.
[참고자료]
감사합니다.
2022년 AI분석을 위한 R통계교육의 수업내용을 정리한 글입니다.
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'R' 카테고리의 다른 글
[R] 데이터 시각화 - ggmap (0) | 2022.07.05 |
---|---|
[R] 데이터 시각화 - ggplot2 (0) | 2022.07.04 |
[R] 고급 통계 (0) | 2022.06.30 |
[R] 기초 통계 (0) | 2022.06.29 |
[R] 모드(mode)와 자료구조 (0) | 2022.06.28 |