Prétraitement de données de séries temporelles avec MATLAB
Ce guide de référence présente des cas d'utilisation courants, mais n'est en aucun cas exhaustif.
Timetable
Type de données MATLAB conçu pour organiser et traiter des données de séries temporelles.
Les composants d'une timetable
tt = timetable(times, var1, var2, ... ,varN);
(Toutes les variables doivent comporter le même nombre de lignes.)
tt = table2timetable(t);
(La première variable de type « datetime » ou « duration » dans « t » devient l'horodatage des lignes.)
Manipulation des timetables
Accéder aux données
Ces commandes renvoient le même tableau.
Ajouter une nouvelle variable
tt.newVar = zeros(height(tt),1);
Modifier les noms de variables
tt.Properties.VariableNames = newNames;
(Les noms doivent être des identifiants MATLAB valides.)
Conseil : Utilisez matlab.lang.makevalidname pour créer des noms valides à partir de noms potentiellement non valides.
Rééchantillonner les données à l'aide de Retime
tt = retime(tt,newtimes,method);
method est utilisée pour remplir les lacunes après un rééchantillonnage (re-timing) et possède les mêmes options que synchronize (voir « Fusionner des timetables »).
Nettoyage des données
Lisser les données
B = smoothdata(A,method);
Lissez des données bruitées à l'aide des méthodes suivantes :
'movmean','movmedian','gaussian', 'lowess','loess','rlowess', 'rloess','sgolay'
Détecter les valeurs aberrantes
TF = isoutlier(A,method);
Identifiez les valeurs aberrantes à l'aide des méthodes suivantes :
'median','mean','quartiles', 'grubbs','gesd'
Détecter les points de changement
TF = ischange(A,method);
Trouvez les changements brusques à l'aide des méthodes suivantes : 'mean','variance','linear'
Fusion de timetables
Synchronisez plusieurs timetables sur un vecteur temporel commun.
tt = synchronize(tt1,tt2,...,ttN);
La synchronisation entraîne souvent des données manquantes (des moments où une variable n'a pas été mesurée). synchronize supporte plusieurs méthodes d'ajustement des données pour combler ces lacunes :
Combler : 'fillwithmissing','fillwithconstant'
Interpolation : 'linear','spline','pchip'
Plus proche voisin : 'previous', 'next','nearest'
Agrégation : 'mean','min','max',@func,...
Données manquantes
Trouver des valeurs manquantes
TF = ismissing(tt);
Remplir les valeurs manquantes
tt = fillmissing(tt,method);
Remplissez les valeurs manquantes par des valeurs calculées à partir des points voisins, à l'aide des méthodes suivantes :
'previous','next','nearest',
'linear','spline','pchip'
Supprimer les lignes contenant des valeurs manquantes
tt = rmmissing(tt);
Big Data
Les tall arrays permettent d'étendre les fonctions MATLAB pour traiter les données trop volumineuses pour être chargées en mémoire.
Créer une timetable « tall »
% Créer un datastore pointant vers % les données
ds = datastore('*.csv');
% Créer une table « tall » à partir du % datastore
t = tall(ds);
% Convertir en timetable
tt = table2timetable(t);