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}"
|