더북(TheBook)

지터

지터Jitter는 데이터 값에 약간의 노이즈를 추가하는 방법을 말한다. 노이즈를 추가하면 데이터 값이 조금씩 움직여서 같은 값을 가지는 데이터가 그래프에 여러 번 겹쳐서 표시되는 현상을 막아준다. 표 6-13에 jitter( ) 함수에 대해 정리했다.

표 6-13 지터

jitter : 숫자에 노이즈를 추가한다.

jitter(
  x,  # 노이즈를 추가할 숫자 벡터
  # factor, amount는 추가할 노이즈의 정도를 지정한다. 보통은 이 값들을 직접 지정할 필요는 없다.
  # 노이즈의 크기를 지정하는 수식은 help(jitter)를 참고하기 바란다.
  factor=1,
  amount=NULL
)

반환 값은 노이즈가 추가된 숫자 벡터다.

같은 값이 여러 번 나타나는 데이터의 예로 Ozone 데이터를 살펴보자. Ozone의 V6과 V7은 각각 로스앤젤레스 공항LAX에서의 풍속과 습도를 담고 있다. 그런데 이 둘은 자연수로 표시되므로, 같은 값을 가지는 날들이 종종 있다. 예를 들어, 아래에 보인 것처럼 풍속 4는 3행과 6행, 풍속 3은 4행과 5행에서 관찰된다.

> head(Ozone[, c("V6", "V7")])
  V6 V7
1  8 20
2  6 NA
3  4 28
4  3 37
5  3 51
6  4 69

이처럼 값이 같은 데이터가 많은 경우에 (V6, V7) 순서쌍을 좌표 평면에 그리면 여러 점이 한 위치에 겹쳐서 표시되어 서로 구분이 되지 않는다. 이 경우 지터를 적용하면 데이터 값을 조금씩 움직여 값이 겹치지 않게 된다.

다음 코드는 원본 데이터와 지터를 사용한 경우를 각각 그래프로 그리는 코드다. 그림 6-14에서 볼 수 있듯이 지터를 사용하면 데이터가 몰리는 점이 더 쉽게 파악된다.

> plot(Ozone$V6, Ozone$V7, xlab="Windspeed", ylab="Humidity", main="Ozone", pch=20, cex=.5)
> plot(jitter(Ozone$V6), jitter(Ozone$V7), xlab="Windspeed", ylab="Humidity", main="Ozone",
+      pch=20, cex=.5)
그림 6-14 지터를 적용한 그래프 그리기
그림 6-14 지터를 적용한 그래프 그리기
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.