Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
r:analisi_monovariata:serie_storiche

Le serie storiche

Le serie storiche sono osservazioni ripetute nel tempo, di cui si vogliono studiare le variazioni.

Gli oggetti ts

Il tipo di struttura di dati utilizzato in R è la time series, oggetto di classe ts.

attributes(AirPassengers)
## $tsp
## [1] 1949.000 1960.917   12.000
## 
## $class
## [1] "ts"

Le componenti di un oggetto ts sono: inizio (start), fine (end), frequenza (frequency).

start(AirPassengers); end(AirPassengers); frequency(AirPassengers)
## [1] 1949    1

## [1] 1960   12

## [1] 12

Sono previsti dei metodi di default per le serie storiche, ad esempio:

  • il modo di restituire l'oggetto (print()):
AirPassengers
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 112 118 132 129 121 135 148 148 136 119 104 118
## 1950 115 126 141 135 125 149 170 170 158 133 114 140
## 1951 145 150 178 163 172 178 199 199 184 162 146 166
## 1952 171 180 193 181 183 218 230 242 209 191 172 194
## 1953 196 196 236 235 229 243 264 272 237 211 180 201
## 1954 204 188 235 227 234 264 302 293 259 229 203 229
## 1955 242 233 267 269 270 315 364 347 312 274 237 278
## 1956 284 277 317 313 318 374 413 405 355 306 271 306
## 1957 315 301 356 348 355 422 465 467 404 347 305 336
## 1958 340 318 362 348 363 435 491 505 404 359 310 337
## 1959 360 342 406 396 420 472 548 559 463 407 362 405
## 1960 417 391 419 461 472 535 622 606 508 461 390 432
plot(AirPassengers)
&nolink |
summary(AirPassengers)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   104.0   180.0   265.5   280.3   360.5   622.0

Per costruire un oggetto ts da un vettore di osservazioni, dobbiamo indicare inizio, fine e periodicità 1):

# vettore con i dati
dati <- c(56524064, 56563031, 56565117, 56588319, 56597823, 56594487,
          56609375, 56649201, 56694360, 56744119, 56772923, 56821250, 
          56842392, 56844408, 56844197, 56876364, 56904379, 56909109, 
          56923524, 56960692, 56993742, 57321070, 57888245, 58462375, 
          58751711, 59131287, 59619290, 60045068)
 
# serie storica
tabA1.ts <- ts(dati, 
               start = 1982, 
               end = 2009,
               frequency = 1)
 
tabA1.ts
## Time Series:
## Start = 1982 
## End = 2009 
## Frequency = 1 
##  [1] 56524064 56563031 56565117 56588319 56597823 56594487 56609375
##  [8] 56649201 56694360 56744119 56772923 56821250 56842392 56844408
## [15] 56844197 56876364 56904379 56909109 56923524 56960692 56993742
## [22] 57321070 57888245 58462375 58751711 59131287 59619290 60045068
plot(tabA1.ts/1000000, type = "b", pch = 15,
     xlab = "", ylab = "milioni", 
     main = "Popolazione residente in Italia, 1982-2009")
grid()
&nolink |

La periodicità

frequency si riferisce alla periodicità nel ciclo:

# serie mensile
cycle(AirPassengers)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949   1   2   3   4   5   6   7   8   9  10  11  12
## 1950   1   2   3   4   5   6   7   8   9  10  11  12
## 1951   1   2   3   4   5   6   7   8   9  10  11  12
## 1952   1   2   3   4   5   6   7   8   9  10  11  12
## 1953   1   2   3   4   5   6   7   8   9  10  11  12
## 1954   1   2   3   4   5   6   7   8   9  10  11  12
## 1955   1   2   3   4   5   6   7   8   9  10  11  12
## 1956   1   2   3   4   5   6   7   8   9  10  11  12
## 1957   1   2   3   4   5   6   7   8   9  10  11  12
## 1958   1   2   3   4   5   6   7   8   9  10  11  12
## 1959   1   2   3   4   5   6   7   8   9  10  11  12
## 1960   1   2   3   4   5   6   7   8   9  10  11  12
# serie trimestrale
cycle(UKgas)
##      Qtr1 Qtr2 Qtr3 Qtr4
## 1960    1    2    3    4
## 1961    1    2    3    4
## 1962    1    2    3    4
## 1963    1    2    3    4
## 1964    1    2    3    4
## 1965    1    2    3    4
## 1966    1    2    3    4
## 1967    1    2    3    4
## 1968    1    2    3    4
...
## 1984    1    2    3    4
## 1985    1    2    3    4
## 1986    1    2    3    4

Nella prima serie, abbiamo 12 osservazioni l'anno, nella seconda 4:

start(UKgas); end(UKgas); frequency(UKgas)
## [1] 1960    1

## [1] 1986    4

## [1] 4

Quindi, dovendo inserire una serie come questa, scriveremo: start = c(1960, 1), frequency = 4.

La periodicità dipende insomma dall'unità di tempo considerata:

ciclo dati periodicità
anno annuali 1
mensili 12
trimestrali 4
quadrimestrali 3
settimanali 52 *o* 365.25/7
giornalieri 365.25
settimana giornalieri 7

Rappresentazioni grafiche in ggplot2

vedi: Rappresentare le serie storiche

Script di esempio

E' possibile scaricare ed eseguire lo script dell'esempio:

serie_storiche.R
# vettore con i dati
dati <- c(56524064, 56563031, 56565117, 56588319, 56597823, 56594487,
          56609375, 56649201, 56694360, 56744119, 56772923, 56821250, 
          56842392, 56844408, 56844197, 56876364, 56904379, 56909109, 
          56923524, 56960692, 56993742, 57321070, 57888245, 58462375, 
          58751711, 59131287, 59619290, 60045068)
 
# serie storica
tabA1.ts <- ts(dati, 
               start = 1982, 
               end = 2009,
               frequency = 1)
 
# grafico
plot(tabA1.ts/1000000, type = "b", pch = 15,
     xlab = "", ylab = "milioni", 
     main = "Popolazione residente in Italia, 1982-2009")
grid()

1) Si tratta della popolazione italiana dal 1982 al 2009, dati Istat; esempio tratto dal testo “L'analisi dei flussi turistici: strumenti, fonti, metodi” di Barbara Baldazzi (Roma, Edizioni Nuova Cultura, 2014).
r/analisi_monovariata/serie_storiche.txt · Ultima modifica: 25/09/2021 12:30 da admin