Schede riassuntive

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.

tt.Temperature

tt{:,'Temperature'} tt{:,1}

Per saperne di più

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'

Per saperne di più

Rilevazione di valori anomali

TF = isoutlier(A,method);

Identifica i valori anomali con i seguenti metodi:

'median','mean','quartiles', 'grubbs','gesd'

Per saperne di più

Individuazione dei punti di modifica

TF = ischange(A,method);

Individua modifiche improvvise con i seguenti metodi: 'mean','variance','linear'

Per saperne di più

Unione di timetable

Sincronizza più timetable su un vettore temporale comune.

tt = synchronize(tt1,tt2,...,ttN);

Per saperne di più

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);

Per saperne di più

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'

Per saperne di più

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);

Per saperne di più

% Convert to a timetable

tt = table2timetable(t);