Pre-elaborazione dei dati di serie storiche con MATLAB
Questo riferimento mostra i casi d’uso più comuni, ma non è in alcun modo esaustivo.
Timetable
Tipo di dati MATLAB progettato per organizzare e lavorare con dati di serie temporali.
I componenti di una timetable
tt = timetable(times, var1, var2, ... ,varN);
(Tutte le variabili devono avere lo stesso numero di righe)
tt = table2timetable(t);
(La prima variabile di tipo datetime o duration in “t” viene utilizzata come indicatore temporale delle righe)
Manipolazione timetable
Accesso ai dati
Questi dati restituiscono lo stesso array.
Aggiunta di una nuova variabile
tt.newVar = zeros(height(tt),1);
Modifica dei nomi delle variabili
tt.properties.VariableNames = newNames;
(I nomi devono essere identificatori MATLAB validi)
Suggerimento: usa matlab.lang.makevalidname per creare nomi validi a partire da nomi potenzialmente non validi.
Ricampionamento dei dati utilizzando retime
tt = retime(tt,newtimes,method);
method viene utilizzato per riempire i valori mancanti dopo il retiming e offre le stesse opzioni di synchronize (vedere “Unione di timetable”).
Pulizia dei dati
Smoothing dei dati
B = smoothdata(A,method);
Effettua lo smoothing dei dati rumorosi con i seguenti metodi:
'movmean','movmedian','gaussian', 'lowess','loess','rlowess', 'rloess','sgolay'
Rilevazione di valori anomali
TF = isoutlier(A,method);
Identifica i valori anomali con i seguenti metodi:
'median','mean','quartiles', 'grubbs','gesd'
Individuazione dei punti di modifica
TF = ischange(A,method);
Individua modifiche improvvise con i seguenti metodi: 'mean','variance','linear'
Unione di timetable
Sincronizza più timetable su un vettore temporale comune.
tt = synchronize(tt1,tt2,...,ttN);
La sincronizzazione comporta spesso la perdita di alcuni punti dati (i momenti in cui una variabile non è stata misurata). synchronize supporta diversi metodi per adattare i dati e riempire i valori mancanti:
Riempimento: 'fillwithmissing','fillwithconstant'
Interpolazione: 'linear','spline','pchip'
Nearest Neighbor: 'previous', 'next','nearest'
Aggregazione: 'mean','min','max',@func,...
Dati mancanti
Individuazione dei valori mancanti
TF = ismissing(tt);
Riempimento dei valori mancanti
tt = fillmissing(tt,method);
Sostituisci i valori mancanti con valori calcolati a partire dai punti vicini utilizzando i seguenti metodi:
'previous','next','nearest',
'linear','spline','pchip'
Rimozione delle righe contenenti valori mancanti
tt = rmmissing(tt);
Big Data
Gli array tall ampliano le funzioni di MATLAB per lavorare con dati troppo grandi per essere caricati in memoria.
Crea una timetable “tall”:
% Create a datastore that points to % the data
ds = datastore('*.csv');
% Create a tall table from the % datastore
t = tall(ds);
% Convert to a timetable
tt = table2timetable(t);