10.2 그룹화된 시계열
그룹화된 시계열(Grouped time series)에는 계층적 시계열보다 더 일반적인 합산 구조가 포함됩니다. 그룹화된 시계열에서, 구조는 어떤 고유한 계층을 따라 자연스럽게 나뉘지 않기도 하고, 그리고 종종 나뉜 것이 교차되거나 나뉜 것 사이에 포함관계가 나타나기도 합니다. 예를 들면, 호주 여행객 데이터의 모든 지리적 수준을 여행 목적에 따라(예를 들면, 휴가, 출장 등) 더 나눌 수 있습니다. 그래서 호주 전체에 대해, 각 주(state)에 대해, 각 지역(zone)에 대해 여행자들의 숙박 정보를 여행 목적에 따라 살펴볼 수 있습니다. 그러면, 지리적인 계층으로 “교차(crossed)”가 일어난 여행 목적을 포함하는 구조를 다루게 됩니다.
그림 10.4은 \(K=2\)-수준 그룹화된 구조를 나타냅니다. 계층 구조의 맨 위는 전체이고 데이터 전체를 포함하는 수준입니다. 이것을 또 다시 \(y_t\)로 씁니다. 전체는 시계열 \(\y{A}{t}\)와 \(\y{B}{t}\)을 이루는 속성 (A, B) 또는 \(\y{X}{t}\)와 \(\y{Y}{t}\)을 이루는 속성 (X, Y)로 나눌 수 있습니다. 가장 아래 단계의 수준에서 데이터는 두 속성 모두로 나뉩니다.

Figure 10.4: 두 단계 그룹 구조를 나타내는 다른 방법.
이 예제는 그룹화된 구조에 대해서 모으는 다른 경로가 있다는 것을 나타냅니다. 어떤 시간 \(t\)에 대해, 계층 구조와 같이, \[\begin{equation*} y_{t}=\y{AX}{t}+\y{AY}{t}+\y{BX}{t}+\y{BY}{t}. \end{equation*}\] 하지만, 그룹화된 구조의 첫 번째 수준에 대해서는, \[\begin{equation} \y{A}{t}=\y{AX}{t}+\y{AY}{t}\quad \quad \y{B}{t}=\y{BX}{t}+\y{BY}{t} \tag{10.4} \end{equation}\] but also \[\begin{equation} \y{X}{t}=\y{AX}{t}+\y{BX}{t}\quad \quad \y{Y}{t}=\y{AY}{t}+\y{BY}{t} \tag{10.5}. \end{equation}\]
\(n\times m\) 합산행렬(summing matrix) \(\bm{S}\)로 이러한 등식을 나타낼 수 있습니다. 전체 시계열 개수는 가장 밑바닥 단계 수준에서 \(n_K=4\), 시계열일 때 \(n=9\)입니다. 그림 10.4의 그룹화된 구조에 대해 다음과 같이 적습니다. \[ \begin{bmatrix} y_{t} \\ \y{A}{t} \\ \y{B}{t} \\ \y{X}{t} \\ \y{Y}{t} \\ \y{AX}{t} \\ \y{AY}{t} \\ \y{BX}{t} \\ \y{BY}{t} \end{bmatrix} = \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \y{AX}{t} \\ \y{AY}{t} \\ \y{BX}{t} \\ \y{BY}{t} \end{bmatrix}, \] 또는 \[ \bm{y}_t=\bm{S}\bm{b}_{t}, \] 여기에서 \(\bm{S}\)의 2번째와 3번째 행은 (10.4)을 나타내고 4번째와 5번째 행은 (10.5)을 나타냅니다.
그룹화 할 수 있는 순서가 유일하지 않다는 점에서 그룹화된 시계열은 종종 유일한 계층 구조만으로 나타나지 않는 계층적 시계열로 생각할 수 있습니다.
10.2.0.1 예제: 호주 수감 인구
그림 10.5의 맨 윗줄은 2005년 1분기부터 2016년 4분기까지 호주 전체 수감 인구를 나타냅니다. 이 그래프는 그룹화된 구조에서 가장 꼭대기 수준의 시계열을 나타냅니다. 나머지 그래프는 수감 인구를 (i) 지역별로20 (ii) 수감자의 법적 지위별로(선고 받았거나 선고를 기다리거나), 그리고 (iii) 성별로 분배한 것입니다. 이 예제에서는 3가지 요인이 교차됩니다만, 요인 사이에 포함관계가 나타나진 않습니다.

Figure 10.5: 호주 분기별 전체 성인 수감 인구를 주별로, 법적 상태로, 성별로 분배한 것.
그룹화된 시계열을 만들기 위해 gts()
함수를 사용합니다. hts()
함수와 비슷하게 gts()
함수에 넣는 입력값은 그룹화된 구조에 관한 밑바닥 수준의 시계열과 정보입니다. prison
은 밑바닥 수준 시계열을 포함하는 시계열 행렬입니다. characters
입력값을 사용하여 그룹 구조에 관한 정보를 넘길 수 있습니다. (시계열의 라벨을 더 명시적으로 두고 groups
입력값을 사용하는 방법도 있습니다.)
<- gts(prison/1e3, characters = c(3,1,9),
prison.gts gnames = c("주", "성별", "법적 상태",
"주*성별", "주*법적 상태",
"주*법적 상태"))
주요 그룹을 나타내는 한 가지 방법은 다음과 같습니다.
%>% aggts(level=0:3) %>% autoplot()
prison.gts autoplot(groups)
약간 더 작업해서, 다음과 같은 코드로 그림 10.5 을 그릴 수 있습니다.
<- prison.gts %>% aggts(level=0) %>%
p1 autoplot() + ggtitle("호주 수감 인구") +
xlab("연도") + ylab("전체 수감 인구수 ('000)")
<- aggts(prison.gts, level=1:3)
groups <- sample(scales::hue_pal(h=c(15,375),
cols c=100,l=65,h.start=0,direction = 1)(NCOL(groups)))
<- as_tibble(groups) %>%
p2 gather(Series) %>%
mutate(Date = rep(time(groups), NCOL(groups)),
Group = str_extract(Series, "([A-Za-z ]*)")) %>%
ggplot(aes(x=Date, y=value, group=Series, colour=Series)) +
geom_line() +
xlab("연도") + ylab("수감 인구수 ('000)") +
scale_colour_manual(values = cols) +
facet_grid(.~Group, scales="free_y") +
scale_x_continuous(breaks=seq(2006,2016,by=2)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
::grid.arrange(p1, p2, ncol=1) gridExtra
다른 그룹 조합의 그래프도 비슷하게 그릴 수 있습니다. 그림 10.6은 호주 수감 인구를 모든 가능한 두 가지 속성의 조합으로 분배한 것을 각각 나타냅니다. 위쪽 그래프는 수감 인구를 지역과 법적 지위로 분배한 것이고, 가운데 그래프는 지역과 성별로 분배한 것이고, 아래쪽 그래프는 법적 지위와 성별로 분배한 것입니다.

Figure 10.6: 호주 성인 수감 인구를 속성의 쌍으로 분배한 것.
그림 10.7은 호주 성인 인구를 지역, 법적 지위, 성별로 분배한 것을 나타냅니다. 이것이 호주 수감 인구에 대한 그룹화된 구조의 밑바닥 수준 시계열을 구성합니다.

Figure 10.7: 주, 법적 상태, 성별로 그룹화한 호주 성인 수감 인구의 밑바닥 수준 시계열.
호주에는 다음과 같이 6개의 주와 2개의 영역으로 구성된 8개의 지역이 있습니다: 호주 수도 지역(Australian Capital Territory), 뉴 사우스 웨일즈(New South Wales), 북부 지역(Northern Territory), 퀸즈랜드(Queensland), 남부 호주(South Australia), 태즈매니아(Tasmania), 빅토리아(Victoria), 서부 호주(Western Australia).↩︎