2.6 산점도

산점도(Scatterplots; 또는 산포도, 흩뿌림 그래프)

지금까지 다룬 그래프는 각각의 시계열을 시각화 할 때 유용합니다. 시계열 사이의 관계를 살필 때도 쓸모가 있습니다.

그림 2.7은 두 개의 시계열을 보여줍니다. 2014년 호주 빅토리아 주의 30분 단위의 전력 수요(단위: 기가 와트)와 기온(단위: 섭씨)입니다. 온도값은 빅토리아 주의 가장 큰 도시인 멜버른에서 측정한 것이고, 수요값은 주 전체에 대한 값입니다.

autoplot(elecdemand[,c("Demand","Temperature")], facets=TRUE) +
  xlab("연도: 2014") + ylab("") +
  ggtitle("호주 빅토리아 주의 30분 단위의 전력 수요")
2014년 호주 빅토리아 주 30분 단위 전력 수요와 기온.

Figure 2.7: 2014년 호주 빅토리아 주 30분 단위 전력 수요와 기온.

(이 그래프를 실제로 그리는 코드는 가로축에 몇 월인지 나타내기 위해 작업하는 것 때문에 보이는 것보다 좀 더 복잡합니다.)

한 시계열에 대해 또 다른 시계열을 그려서 수요과 기온 사이의 관계가 어떤지 살펴볼 수 있습니다.

qplot(Temperature, Demand, data=as.data.frame(elecdemand)) +
  ylab("수요 (단위: 기가 와트GW)") + xlab("기온 (섭씨)")
2014년 호주 빅토리아 주의 30분 단위 전력 수요를 기온에 따라 나타낸 그래프.

Figure 2.8: 2014년 호주 빅토리아 주의 30분 단위 전력 수요를 기온에 따라 나타낸 그래프.

이 산포도는 이러한 변수 사이의 관계를 시각화하는데 도움이 됩니다. 에어컨 효과 때문에 온도가 높을 때 수요가 높게 나타나는 것을 분명하게 확인할 수 있습니다. 하지만, 온도가 아주 낮을 때 수요가 증가하는 난방 효과도 나타납니다.

상관

상관계수(correlation coefficient)는 두 변수 사이의 관계의 강도를 측정할 때 흔히 계산하는 양입니다. 두 변수 \(x\)\(y\) 사이의 상관계수는 다음과 같이 주어집니다. \[ r = \frac{\sum (x_{t} - \bar{x})(y_{t}-\bar{y})}{\sqrt{\sum(x_{t}-\bar{x})^2}\sqrt{\sum(y_{t}-\bar{y})^2}}. \]

\(r\)은 항상 \(-1\)\(1\) 사이의 값을 갖고, 음수는 음의 관계를 양수는 양의 관계를 의미합니다. 그림 2.9 에서 그래프들은 다양한 수준의 상관(correlation)을 지닌 데이터들의 예시입니다.

상관계수가 다른 데이터를 나타내는 예제.

Figure 2.9: 상관계수가 다른 데이터를 나타내는 예제.

상관계수(correlation coefficient)는 선형관계의 강도만 측정하기에, 종종 오해로 이어질 수 있습니다. 예를 들면, 그림 2.8 에서 볼 수 있는 전력 수요와 기온 데이터에서 상관계수는 0.28입니다만, 비-선형 관계가 더 큽니다.

그림 2.10 에서 그래프는 모두 0.82의 상관계수를 갖습니다만, 나타나는 관계는 아주 다릅니다. 이를 통해 상관계수값에만 의존하지 말고 데이터를 그려서 살펴보는 것이 얼마나 중요한지 알 수 있습니다.

각각의 그래프에서 상관계수는 모두 0.82 입니다. 여기에서 사용한 데이터는 다음 논문에서 가져온 것입니다: FJ Anscombe (1973) Graphs in statistical analysis. American Statistician, 27, 17–21.

Figure 2.10: 각각의 그래프에서 상관계수는 모두 0.82 입니다. 여기에서 사용한 데이터는 다음 논문에서 가져온 것입니다: FJ Anscombe (1973) Graphs in statistical analysis. American Statistician, 27, 17–21.

산점도행렬

몇 가지 후보가 될 만한 예측변수(predictor variable)가 있을 때, 각 변수를 다른 변수에 대해 나타내는 것이 도움이 됩니다. 그림 2.11 에 나타낸 5개의 시계열을 다뤄봅시다. 각 시계열은 호주 뉴 사우스 웨일즈 주(NSW)에 있는 5개 지역의 분기별 방문수를 나타냅니다.

autoplot(visnights[,1:5], facets=TRUE) +
  ylab("각 분기별 여행자 숙박일 수(단위: 백만 명)")
호주 NSW의 여러 지역에서 분기별 여행자 숙박일 수.

Figure 2.11: 호주 NSW의 여러 지역에서 분기별 여행자 숙박일 수.

이러한 5개의 시계열 사이의 관계를 살펴보기 위해, 각 시계열을 다른 시계열에 대해 나타내볼 수 있습니다. 이러한 그래프들은 그림 ?? 에 나타낸 것과 같이 산점도행렬(scatterplot matrix)로 늘어놓을 수 있습니다. (이 그래프를 그리기 위해서는 GGally 패키지가 설치되어있어야 합니다.)

GGally::ggpairs(as.data.frame(visnights[,1:5]))

각 패널에서, 세로 축에 있는 변수는 그 해당하는 행의 변수 이름으로 주어지고, 가로 축에 있는 변수는 그 해당하는 열의 변수 이름으로 주어집니다. 각 패널 안에 다른 그래프를 나타낼 수 있는 여러 가지 방법이 있습니다. 기본값으로 주어진 것은, 그래프의 반쪽인 위쪽 오른편에는 상관관계(correlation)를 나타내고, 나머지 반쪽인 아래쪽 왼편에는 산점도(scatterplot)를 나타냅니다. 대각 성분에는 히스토그램(histogram) 또는 밀도 그래프(density plot)를 나타냅니다.

산점도행렬의 값은 모든 변수의 모든 관계를 빠르게 나타낼 수 있도록 합니다. 이 예제에서는, 두 번째 열에 있는 그래프는 NSW 북쪽 해안 방문객과 NSW 남쪽 해안 방문객 사이에 강한 양의 관계가 있다는 것을 보여줍니다만, NSW 북쪽 해안 방문객과 NSW 남부 내륙 방문 사이에는 주목할만한 관계가 없다는 것을 나타냅니다. 이상치도 보일 수 있습니다. NSW 광역 도시권에서 2000 시드니 올림픽과 관련하여 비정상적으로 높은 분기가 나타납니다. 이것을 그림 ?? 의 왼쪽 열에 있는 첫 2개 그래프에서 쉽게 관찰할 수 있습니다. 여기에서 NSW 광역 지역에 대한 가장 큰 값은 관측값의 무리에서 떨어져있습니다.