Vorverarbeitung von Zeitreihendaten mit MATLAB
Diese Referenz zeigt gängige Anwendungsfälle, ist jedoch keineswegs vollständig.
Timetable
MATLAB Datentyp zum Organisieren und Verarbeiten von Zeitreihendaten.
Bestandteile eines Timetable
tt = timetable(times, var1, var2, ... ,varN);
(Alle Variablen müssen dieselbe Anzahl an Zeilen aufweisen.)
tt = table2timetable(t);
(Die erste datetime- oder duration-Variable in „t“ wird für die Zeilenzeiten verwendet.)
Timetable-Manipulation
Auf Daten zugreifen
Diese geben dasselbe Array zurück.
Neue Variable hinzufügen
tt.newVar = zeros(height(tt),1);
Variablennamen ändern
tt.properties.VariableNames = newNames;
(Namen müssen gültige MATLAB-Bezeichner sein.)
Tipp: Verwenden Sie matlab.lang.makevalidname , um aus potenziell ungültigen Namen gültige Namen zu erstellen.
Daten mithilfe von Retime neu abtasten
tt = retime(tt,newtimes,method);
method wird verwendet, um nach dem Retiming Lücken zu füllen, und bietet dieselben Optionen wie synchronize (siehe „Timetables zusammenführen“).
Datenbereinigung
Daten glätten
B = smoothdata(A,method);
Verrauschte Daten mit folgenden Methoden glätten:
'movmean','movmedian','gaussian', 'lowess','loess','rlowess', 'rloess','sgolay'
Ausreißer erkennen
TF = isoutlier(A,method);
Ausreißer mit folgenden Methoden erkennen:
'median','mean','quartiles', 'grubbs','gesd'
Änderungspunkte erkennen
TF = ischange(A,method);
Abrupte Änderungen mit folgenden Methoden erkennen: 'mean','variance','linear'
Timetables zusammenführen
Mehrere Timetables mit einem gemeinsamen Zeitvektor synchronisieren.
tt = synchronize(tt1,tt2,...,ttN);
Bei der Synchronisierung entstehen häufig fehlende Datenpunkte, also Zeitpunkte, zu denen eine Variable nicht gemessen wurde. synchronize unterstützt mehrere Methoden zum Anpassen der Daten und zum Füllen dieser Lücken:
Füllen: 'fillwithmissing','fillwithconstant'
Interpolation: 'linear','spline','pchip'
Nächster Nachbar: 'previous', 'next','nearest'
Aggregation: 'mean','min','max',@func,...
Fehlende Daten
Fehlende Werte finden
TF = ismissing(tt);
Fehlende Werte auffüllen
tt = fillmissing(tt,method);
Fehlende Werte durch Werte ersetzen, die anhand benachbarter Datenpunkte mit folgenden Methoden berechnet werden:
'previous','next','nearest',
'linear','spline','pchip'
Zeilen mit fehlenden Werten entfernen
tt = rmmissing(tt);
Big Data
Tall Arrays erweitern MATLAB-Funktionen für die Verarbeitung von Daten, die zu groß sind, um vollständig in den Arbeitsspeicher geladen zu werden.
Erstellen eines Tall Timetable:
% 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);