더북(TheBook)

산점도 행렬(pairs)

산점도 행렬Scatter Plot Matrix은 다변량 데이터에서 변수 쌍 간의 산점도들을 그린 그래프를 말한다. 산점도 행렬을 사용하면 여러 변수가 있을 때 모든 변수 간 산점도를 손쉽게 그릴 수 있고, 이를 들여다보면 변수들 간 상관관계 등의 특징을 쉽게 찾을 수 있다.

표 6-29 산점도 행렬

pairs : 산점도 행렬을 그린다.

pairs(
  formula, # ~ x + y ~ z 형태로 지정한 포뮬러. 모든 변수 간의 조합에 대해 산점도가 그려진다.
  data,    # 포뮬러를 적용할 데이터
  ...
)

다음은 아이리스 데이터에서 각 종별로 Sepal.Width, Sepal.Length, Petal.Width, Petal.Length의 산점도 행렬을 그리는 예다. pch는 각 조합별로 서로 다른 점 모양을 사용하게 하려고 지정했다.

> pairs(~ Sepal.Width + Sepal.Length + Petal.Width + Petal.Length,
+       data=iris, pch=c(1, 2, 3)[iris$Species])
그림 6-41 iris 데이터의 산점도 행렬
그림 6-41 iris 데이터의 산점도 행렬

예제를 실행하면 setosa는 사각형, versicolor는 원형, virginica는 십자형 기호로 표시된다. 각 Species가 어떤 기호를 사용하게 되는지는 levels( )로 범주의 목록을 살펴보면 알 수 있는데, 아래 코드에서 볼 수 있듯이 setosa가 1, versicolor가 2, virginica가 3에 해당해 각각 pch 1, 2, 3을 사용하게 된다. pch 1, 2, 3이 각각 사각형, 원형, 십자형임은 example(points) 명령을 실행해보면 쉽게 알 수 있다.

> levels(iris$Species)
[1] "setosa"   "versicolor" "virginica"

> as.numeric(iris$Species)
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [25] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [49] 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 [73] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 [97] 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[121] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[145] 3 3 3 3 3 3
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.