Time series

IN SVILUPPO

ts permette di generare variabili che identificano una successione di periodi temporali.
Tali variabili sono utili per la costruzione di pannelli di analisi.

Una volta definiti i periodi temporali di base, è possibile definirne le aggregazioni e le variabili con cui devono essere incrociati.

Due variabili numeriche devono indicare l’anno e la suddivisione in periodi all’interno dell’anno (mesi, trimestri, ecc.). Le variabili possono essere etichettate e in tal caso le etichette verranno utilizzate nelle label delle variabili di output, altrimenti saranno utilizzati i valori.

Inizializando la funzione ts con i seguenti argomenti viene generato un oggetto che dispone di metodi per la definizione delle aggregazioni temporali, l’effettiva creazione delle variabili e la generazione dei markers per i test di significatività.

Argomenti:

  • varname1: il nome della variabile che identifica l’anno
  • varname2: il nome della variabile che identifica la suddivisione interna dell’anno. I valori devono essere progressivi e partire da 1
  • :splits => number: (opzionale) il numero di periodi in cui viene suddiviso l’anno. Se non fornito, verranno utilizzati il numero di livelli di varname2
  • :max => []: un vettore di due elementi con l’anno e il periodo massimo
  • :min => []: (opzionale) un vettore di due elementi con l’anno e il periodo minimo (:min o :n devono essere forniti)
  • :n => number: (opzionale) il numero di periodi da generare (:min o :n devono essere forniti)
  • :name => varname: il nome o la radice del nome delle variabili da generare
  • :label => string: l’etichetta delle variabili
  • :level => string: il template per l’etichetta dei livelli delle variabili (default: %{z} - %{y} %{x})
    • %{y}: segnaposto per l’anno
    • %{x}: segnaposto per il periodo dell’anno
    • %{z}: segnaposto per la variabile di interazione
  • :y_markers => {}: un hash con valore e carattere/i da sostituire per l’anno
  • :x_markers => {}: un hash con valore e carattere/i da sostituire per la suddivisione dell’anno
  • :multi => true|false: se deve essere creata una variabile multidicotomy o una variabile singola (default: false)

Funzioni di aggregazione

ts restituisce un’oggetto che disponde dei seguenti metodi di aggregazione sui periodi precedentemente definiti:

  • roll: definisce periodi mobili. Essendo periodi sovrapposti, le variabili generate saranno multiple.
  • cum: definisce periodi all’interno dell’anno. Verranno definiti solo periodi completi.
  • ytd: definisce periodi year-to-date.
  • xtd: definisce periodi genericamente x-to-date.

Argomenti comuni:

  • number: il numero di periodi che devono essere aggregati insieme
  • varname: il nome o la radice del nome delle variabili da generare
  • label: l’etichetta delle variabili
  • level: il template per l’etichetta dei livelli delle variabili
    • %{y#}: segnaposti per gli anni dei vari periodi. Il numero dipende dai periodi aggregati
    • %{x#}: segnaposti per i periodi dell’anno. Il numero dipende dai periodi aggregati
    • %{z}: segnaposto per la variabile di interazione
  • :n => number: (opzionale) il numero massimo di aggregazioni da generare, altrimenti verranno generate tutte le aggregazioni possibili

Argomenti per le funzioni cum, ytd e xtd:

  • :multi => true|false: se deve essere creata una variabile multidicotomy o una variabile singola (default: false)

interaction

Il metodo interaction permette di definire la variabile o le variabili con cui “incrociare” i periodi temporali

Argomenti:

  • varname|varlist: il nome della variabile o la lista dei nomi delle variabili. E’ possibile specificare una o più variabili singole, oppure un set di variabili multidicotomy
  • :by => :period|:interaction: se le variabili devono essere raggruppate per periodo o per variabile di interazione (default: :interaction)
  • :markers => []: l’elenco dei markers (default le lettere dell’alfabeto)

build

Il metodo build crea le variabili precedentemente definite. Restituisce l’elenco delle variabili generate.

Argomenti:

  • :multi => false|true: se deve essere creata una variabile multidicotomy o una variabile singola (default: false)
  • :syntax => false|true: true stampa nella finestra di log le istruzioni per la generazione delle variabili (default: false)

markers

Il metodo markers restituisce l’elenco dei markers corrispondenti a ciascun periodo o abbregazione definito dalle variabili.

Argomenti:

  • template, template2, ...: il template per i markers o una lista di template per i periodi e per le diverse aggregazioni:
    • %{y#}: segnaposti per gli anni dei vari periodi. Il numero dipende dai periodi aggregati
    • %{x#}: segnaposti per i periodi dell’anno. Il numero dipende dai periodi aggregati
    • %{z}: segnaposto per la variabile di interazione
  • :start => number: forza l’inizio della numerazione progressiva dei markers

variables

variables restituisce l’elenco delle variabili generate.

Esempi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
trims = ts(
  :year, :quarter,
  :max => [2022, 2], :n => 6,
  :name => :p_tr1,
  :label => "TRIMESTRI",
  :level => "%{x} %{y} TRIM %{z}",
  :y_markers => {2022 => "", 2021 => "p"}
)
trims.ytd 4, :y2_, "YEAR", "YEAR %{y1} %{z}", :n => 1
trims.interaction :brand, :markers => %w(x h j k r s)
trims.build
mrkrs = trims.markers "%{z}%{x}%{y}", "%{z}%{y1}"

panels.add trims.variables
deffun :markers_1_level do
  { :legend => %w(x), :header => mrkrs, :markers => mrkrs }
end
1
2
trims.roll 2, "SEMESTRI", "%{x1} %{y1} + %{x2} %{y2} SEMESTRE %{z}"
trims.cum 2, "SEMESSTRE", "SEM %{y1} %{z}"