11.1 Serie storiche gerarchiche e raggruppate

Serie storiche gerarchiche

La figura 11.1 mostra una semplice struttura gerarchica. Al vertice della gerarchia c’è il “Totale”, che è il livello dei dati più aggregato. La \(t\)-esima osservazione della serie Totale è indicata con \(y_t\), per \(t=1,\dots,T\). Il Totale è disaggregato in due serie, che sono a loro volta divise in tre e due serie, rispettivamente, al livello più basso della gerarchia. Al di sotto del livello più elevato, indichiamo con \(y_{j,t}\) la \(t\)-esima osservazione della serie corrispondente al nodo \(j\). Per esempio, \(\y{A}{t}\) indica la \(t\)-esima osservazione della serie corrispondente al nodo A, \(\y{AB}{t}\) indica la \(t\)-esima osservazione della serie corrispondente al nodo AB, e così via.

Un diagramma ad albero gerarchico con due livelli.

Figura 11.1: Un diagramma ad albero gerarchico con due livelli.

In questo semplice esempio, il numero totale di serie nella gerarchia è \(n=1+2+5=8\), mentre il numero di serie al livello più basso è \(m=5\). Si noti che per tutte le gerarchie vale la condizione \(n>m\).

Ad ogni tempo \(t\), la somma delle osservazioni al livello più basso della gerarchia sarà pari alla somma delle osservazioni delle serie al livello immediatamente superiore. Per esempio, \[\begin{equation} y_{t}=\y{AA}{t}+\y{AB}{t}+\y{AC}{t}+\y{BA}{t}+\y{BB}{t}, \tag{11.1} \end{equation}\] \[\begin{equation} \y{A}{t}=\y{AA}{t}+\y{AB}{t}+\y{AC}{t}\qquad \text{e} \qquad \y{B}{t}=\y{BA}{t}+\y{BB}{t}. \tag{11.2} \end{equation}\] Sostituendo la (11.2) nella (11.1), si ottiene anche \(y_{t}=\y{A}{t}+\y{B}{t}\).

Esempio: La gerarchia del Turismo australiano

L’Australia è divisa in sei stati e due territori, ciascuno con il proprio governo e con una certa autonomia economica ed amministrativa. Per semplicità, chiameremo “stati” tanto gli stati quanto i territori. Ciascuno stato può essere ulteriormente suddiviso in regioni, come mostrato nella Figura 11.2 e nella Tavola 11.1. In totale ci sono 76 regioni. Programmatori economici e autorità turistiche sono interessati alle previsioni per l’intera Australia, per ciascuno stato e ciascun territorio, ed anche per le regioni.

Stati e regioni del Turismo australiano.

Figura 11.2: Stati e regioni del Turismo australiano.

Tabella 11.1: Regioni del Turismo australiano.
State Region
Australian Capital Territory Canberra
New South Wales Blue Mountains, Capital Country, Central Coast, Central NSW, Hunter, New England North West, North Coast NSW, Outback NSW, Riverina, Snowy Mountains, South Coast, Sydney, The Murray.
Northern Territory Alice Springs, Barkly, Darwin, Kakadu Arnhem, Katherine Daly, Lasseter, MacDonnell.
Queensland Brisbane, Bundaberg, Central Queensland, Darling Downs, Fraser Coast, Gold Coast, Mackay, Northern Outback, Sunshine Coast, Tropical North Queensland, Whitsundays.
South Australia Adelaide, Adelaide Hills, Barossa, Clare Valley, Eyre Peninsula, Fleurieu Peninsula, Flinders Ranges and Outback, Kangaroo Island, Limestone Coast, Murraylands, Riverland, Yorke Peninsula.
Tasmania East Coast, Hobart and the South, Launceston Tamar and the North, North West, Wilderness West.
Victoria Ballarat, Bendigo Loddon, Central Highlands, Central Murray, Geelong and the Bellarine, Gippsland, Goulburn, Great Ocean Road, High Country, Lakes, Macedon, Mallee, Melbourne, Melbourne East, Murray East, Peninsula, Phillip Island, Spa Country, Upper Yarra, Western Grampians, Wimmera.
Western Australia Australia’s Coral Coast, Australia’s Golden Outback, Australia’s North West, Australia’s South West, Experience Perth.

Lo tsibble tourism contiene dati sulla domanda turistica interna, misurata dal numero di pernottamenti che gli Australiani effettuano lontano dalla propria abitazione. Le variabili chiave State e Region indicano le aree geografiche, mentre un’altra chiave, Purpose, descrive lo scopo del viaggio. Per il momento tralasciamo di considerare lo scopo del viaggio, e consideriamo solo la gerarchia geografica. Per rendere i grafici e le Tavole ancora più semplici, ricodifichiamo State per usare delle abbreviazioni.

tourism <- tsibble::tourism %>%
  mutate(State = recode(State,
    `New South Wales` = "NSW",
    `Northern Territory` = "NT",
    `Queensland` = "QLD",
    `South Australia` = "SA",
    `Tasmania` = "TAS",
    `Victoria` = "VIC",
    `Western Australia` = "WA"
  ))

Usando la funzione aggregate_key(), possiamo creare la serie storica gerarchica con i pernottamenti nelle regioni al livello più basso della gerarchia, aggregate successivamente per stati, che vengono quindi aggregati nel totale nazionale. Una serie storica gerarchica corrispondente ad una struttura annidata viene creata usando una specificazione genitore/figlio.

tourism_hts <- tourism %>%
  aggregate_key(State / Region, Trips = sum(Trips))
tourism_hts
#> # A tsibble: 6,800 x 4 [1Q]
#> # Key:       State, Region [85]
#>    Quarter State        Region        Trips
#>      <qtr> <chr*>       <chr*>        <dbl>
#>  1 1998 Q1 <aggregated> <aggregated> 23182.
#>  2 1998 Q2 <aggregated> <aggregated> 20323.
#>  3 1998 Q3 <aggregated> <aggregated> 19827.
#>  4 1998 Q4 <aggregated> <aggregated> 20830.
#>  5 1999 Q1 <aggregated> <aggregated> 22087.
#>  6 1999 Q2 <aggregated> <aggregated> 21458.
#>  7 1999 Q3 <aggregated> <aggregated> 19914.
#>  8 1999 Q4 <aggregated> <aggregated> 20028.
#>  9 2000 Q1 <aggregated> <aggregated> 22339.
#> 10 2000 Q2 <aggregated> <aggregated> 19941.
#> # ℹ 6,790 more rows

Ora il nuovo tsibble ha alcune righe aggiuntive che corrispondono alle aggregazioni date dagli stati e dal totale nazionale per ciascun trimestre. La Figura 11.3 mostra il totale aggregato dei viaggi con pernottamento per l’intera Australia e per gli stati, che rivelano dinamiche ricche e diverse. Per esempio, a partire dal 2010 per l’Australia e per alcuni stati come ACT, New South Wales, Queensland, South Australia e Victoria, c’è una notevole crescita. Inoltre, nel 2014 si registra un salto significativo per la Western Australia.

tourism_hts %>%
  filter(is_aggregated(Region)) %>%
  autoplot(Trips) +
  labs(y = "Trips ('000)",
       title = "Turismo australiano: nazionale e stati") +
  facet_wrap(vars(State), scales = "free_y", ncol = 3) +
  theme(legend.position = "none")
Pernottamenti interni nel periodo 1998 Q1 - 2017 Q4 aggregati per stato.

Figura 11.3: Pernottamenti interni nel periodo 1998 Q1 - 2017 Q4 aggregati per stato.

Grafici stagionali dei pernottamenti interni in Queensland, Northern Territory, Victoria e Tasmania, che evidenziano le differenze negli andamenti stagionali tra stati australiani settentrionali e meridionali.

Figura 11.4: Grafici stagionali dei pernottamenti interni in Queensland, Northern Territory, Victoria e Tasmania, che evidenziano le differenze negli andamenti stagionali tra stati australiani settentrionali e meridionali.

L’andamento stagionale degli stati del nord, come il Queensland e il Northern Territory, si caratterizza per un picco delle visite in inverno (corrispondente al terzo trimestre) a causa del clima tropicale e dei mesi estivi piovosi. Invece, negli stati meridionali tale picco si manifesta in estate (corrispondente al primo trimestre). Ciò appare evidente nei grafici stagionali mostrati in Figura 11.4 per il Queensland e per il Northern Territory (mostrati nella colonna di sinistra) rispetto agli stati più meridionali Victoria e Tasmania (mostrati nella colonna di destra).

Pernottamenti interni nel periodo 1998 Q1 - 2017 Q4 per alcune regioni selezionate.

Figura 11.5: Pernottamenti interni nel periodo 1998 Q1 - 2017 Q4 per alcune regioni selezionate.

I grafici in Figura 11.5 mostrano i dati per alcune regioni selezionate. Essi ci aiutano a visualizzare le diverse dinamiche regionali all’interno di ciascuno stato, con alcune serie che mostrano forti trend o stagionalità, altre che mostrano stagionalità contrastanti, ed altre ancora che sembrano essere caratterizzate solo da andamenti irregolari.

Serie storiche raggruppate

Per una serie storica raggruppata, la struttura dei dati non può essere naturalmente disaggregata in un unica modo gerarchico. La Figura 11.6 mostra una semplice struttura raggruppata, al vertice della quale c’è il Totale, che è il livello più aggregato dei dati, rappresentato di nuovo da \(y_t\). Il Totale può essere disaggregato secondo gli attributi (A, B) formando le serie \(\y{A}{t}\) e \(\y{B}{t}\), oppure secondo gli attributi (X, Y), dando vita alle serie \(\y{X}{t}\) e \(\y{Y}{t}\). Al livello più basso, i dati sono disaggregati secondo entrambi gli attributi.

Rappresentazioni alternative di una struttura raggruppata a due livelli.

Figura 11.6: Rappresentazioni alternative di una struttura raggruppata a due livelli.

Questo esempio mostra che per strutture raggruppate esistono diversi modi per aggregare. Per ogni tempo \(t\), come per la struttura gerarchica, vale \[\begin{equation*} y_{t}=\y{AX}{t}+\y{AY}{t}+\y{BX}{t}+\y{BY}{t}. \end{equation*}\] Tuttavia, per il primo livello della struttura ragguppata, \[\begin{equation} \y{A}{t}=\y{AX}{t}+\y{AY}{t}\quad \quad \y{B}{t}=\y{BX}{t}+\y{BY}{t} \tag{11.3} \end{equation}\] ma anche \[\begin{equation} \y{X}{t}=\y{AX}{t}+\y{BX}{t}\quad \quad \y{Y}{t}=\y{AY}{t}+\y{BY}{t} \tag{11.4}. \end{equation}\]

Le serie storiche raggruppate possono talvolta essere pensate come serie storiche gerarchiche che non impongono un’unica struttura gerarchica, nel senso che l’ordine con cui le serie vengono raggruppate non è unico.

Esempio: La popolazione carceraria australiana

In questo esempio consideriamo i dati sulla popolazione carceraria australiana già considerata nel Capitolo 2. Il pannello superiore nella Figura 11.7 mostra il numero totale di detenuti in Australia nel periodo 2005Q1–2016Q4. Questa costituisce la serie di livello più elevato nella struttura raggruppata. I pannelli inferiori mostrano la popolazione carceraria disaggregata o raggruppata per (a) stato, (b) condizione giuridica (se i detenuti sono già stati giudicati o se sono in attesa di giudizio), e (c) genere. I tre fattori sono incrociati, ma nessuno di essi è annidato in uno degli altri.

Popolazione carceraria adulta australiana, disaggregata per stato, per condizione giuridica e per genere.

Figura 11.7: Popolazione carceraria adulta australiana, disaggregata per stato, per condizione giuridica e per genere.

Il codice seguente, già presentato nella Sezione 2.1, costruisce un oggetto tsibble per i dati sui detenuti.

prison <- readr::read_csv("https://OTexts.com/fpp3/extrafiles/prison_population.csv") %>%
  mutate(Quarter = yearquarter(Date)) %>%
  select(-Date)  %>%
  as_tsibble(key = c(Gender, Legal, State, Indigenous),
             index = Quarter) %>%
  relocate(Quarter)

Usando aggregate_key() viene creata una serie storica raggruppata in cui le caratteristiche o i raggruppamenti di interesse sono ora incrociati usando la sintassi attributo1*attributo2 (invece della sintassi genitore/figlio usata per le serie storiche gerarchiche). Il codice seguente costruisce uno tsibble raggruppato per i dati sui detenuti con attributi incrociati: genere, condizione giuridica e stato.

prison_gts <- prison %>%
  aggregate_key(Gender * Legal * State, Count = sum(Count)/1e3)

L’uso di is_aggregated() all’interno di filter() serve ad esplorare o rappresentare graficamente i principali gruppi mostrati nei pannelli inferiori della Figura 11.7. Per esempio, il codice seguente rappresenta graficamente il numero totale di detenuti di sesso maschile e femminile in tutta l’Australia.

prison_gts %>%
  filter(!is_aggregated(Gender), is_aggregated(Legal),
         is_aggregated(State)) %>%
  autoplot(Count) +
  labs(y = "Number of prisoners ('000)")

Grafici di altre combinazioni tra gruppi possono essere ottenuti in maniera simile. La Figura 11.8 mostra la popolazione carceraria australiana raggruppata secondo tutte le possibili combinazioni di due caratteristiche alla volta: stato e genere, stato e condizione giuridica, e condizione giuridica e genere. Il codice seguente produce il primo grafico nella Figura 11.8.

Popolazione carceraria adulta australiana disaggregata per coppie di attributi.

Figura 11.8: Popolazione carceraria adulta australiana disaggregata per coppie di attributi.

prison_gts %>%
  filter(!is_aggregated(Gender), !is_aggregated(Legal),
         !is_aggregated(State)) %>%
  mutate(Gender = as.character(Gender)) %>%
  ggplot(aes(x = Quarter, y = Count,
             group = Gender, colour=Gender)) +
  stat_summary(fun = sum, geom = "line") +
  labs(title = "Popolazione carceraria per stato e genere",
       y = "Numero di detenuti ('000)") +
  facet_wrap(~ as.character(State),
             nrow = 1, scales = "free_y") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

La Figura 11.9 mostra la popolazione carceraria adulta australiana disaggregata in base a tutte e tre le caratteristiche: stato, condizione giuridica e genere. Queste variabili formano le serie di livello più basso della struttura raggruppata.

Serie storiche del livello più basso per la popolazione di detenuti australiani adulti, raggruppate per stato, condizione giuridica e genere.

Figura 11.9: Serie storiche del livello più basso per la popolazione di detenuti australiani adulti, raggruppate per stato, condizione giuridica e genere.

Strutture gerarchiche e raggruppate miste

Accade spesso che i fattori in base ai quali la serie viene disaggregata sono sia annidati sia incrociati. Per esempio, i dati del Turismo australiano possono essere disaggregati anche per i quattro scopi del viaggio: vacanza, affari, visita ad amici e parenti, e altro. Questa variabile di raggruppamento non si annida in nessuna delle variabili geografiche. In effetti, potremmo considerare i viaggi con pernottamento distinti per scopo del viaggio per l’intera Australia, oppure per ciascun stato, o per ciascuna regione. Una simile struttura viene chiamata gerarchia geografica “annidata”, “incrociata” con lo scopo del viaggio. Usando aggregate_key() ciò può essere specificato semplicemente combinando i fattori:

tourism_full <- tourism %>%
  aggregate_key((State/Region) * Purpose, Trips = sum(Trips))

Lo tsibble tourism_full contiene 425 serie, incluse le 85 serie della struttura gerarchica, ed anche altre 340 serie ottenute quando ciascuna serie della struttura gerarchica viene incrociata con lo scopo del viaggio.

Pernottamenti interni australiani nel periodo 1998 Q1 - 2017 Q4 disaggregati per scopo del viaggio.

Figura 11.10: Pernottamenti interni australiani nel periodo 1998 Q1 - 2017 Q4 disaggregati per scopo del viaggio.

Pernottamenti interni australiani nel periodo 1998 Q1 - 2017 Q4 disaggregati per scopo del viaggio e per stato.

Figura 11.11: Pernottamenti interni australiani nel periodo 1998 Q1 - 2017 Q4 disaggregati per scopo del viaggio e per stato.

Le Figure 11.10 e 11.11 mostrano le serie aggregate raggruppate per scopo del viaggio, e le serie raggruppate per scopo del viaggio e per stato, rivelando ulteriori, ricche e diverse dinamiche.