오늘은 R을 활용한 다변량 데이터를 시각화 하는 몇 몇 기본적인 사례를 공유한다.
시각화에 대한 방법은 너무도 많고 때에 따라서 적당한 시각화를 고려해야 하기 때문에 많은 사례들을 알아두는것도 도움이 된다고 본다.
| Bibrate boxplot
두 변수에 대한 boxplot을 그릴 때 사용한다.
MVA 패키지에서 제공한다.
코드
library(HSAUR2)
library(MVA)
data(USairpollution)
head(USairpollution)
x = USairpollution[,c(4,5)]
bvbox(x, xlab="manu", ylab="popul")
title("bivariate boxplot")
identify(x) # identify함수는 outliers를 밝히기 위해 이용된다.
결과
| Bubble plot
아래 예제를 보면 USairpollution 데이터 셋중 temp(온도) 와 wind(바람)의 산점도에 제 3의 변수인 SO2의 정보의 크기를 원으로 표기한 내용이다.
3개의 변수에 대한 표기가 가능하다.
코드
library(HSAUR2)
plot(wind~temp, data=USairpollution, pch=9)
head(USairpollution)
with(USairpollution, symbols(temp, wind, circles=SO2, inches=0.5, add=T))
title("Bubble plot")
결과
| Chernoff face
체르노프 페이스는 사람의 얼굴 이미지로 다변량 데이터를 표현하다. (얼굴그림)
얼굴의 가로 너비, 세로 높이, 눈, 코, 입 등의 길이를 기준으로 변수의 크기를 표현한다.
사실 아래 예제를 보면 한번에 여러 변수에 대한 표현이 가능하지만 그게 어떤 의미인지 해석하기가 좀 어려워 보인다.
분석 보다는 흥미가 주 목적일 것 같다.
R 에서는 aplpack 패키지에 포함되어 있다.
코드
library(MASS)
str(Cars93)
Cars93_tmp <- Cars93[c(1:20), c("Price","RPM","Length","Weight", "Wheelbase")] #숫자형 변수만 선택
head(Cars93_tmp)
#install.packages("aplpack")
library(aplpack)
faces(Cars93_tmp, face.type = 0, labels = Cars93[1:20,]$Model, main = "Chernoff faces, face.type = 0")
faces(Cars93_tmp, face.type = 1, labels = Cars93[1:20,]$Model, main = "Chernoff faces, face.type = 1")
faces(Cars93_tmp, face.type = 2, labels = Cars93[1:20,]$Model, main = "Chernoff faces, face.type = 2")
결과
[참고자료]
방송통신대학교 다변량 분석 강의교재
댓글