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