Preprocesamiento de datos de series temporales con MATLAB
Esta guía de referencia incluye casos prácticos comunes, pero dista de ser exhaustiva.
Tabla temporal
Tipo de datos de MATLAB diseñado para organizar y trabajar con datos de series temporales.
Componentes de una tabla temporal
tt = timetable(times, var1, var2, ... ,varN);
(Todas las variables deben tener el mismo número de filas).
tt = table2timetable(t);
(La primera variable de tipo datetime o duration de "t" se convierte en los tiempos de fila).
Manipular tablas temporales
Acceder a datos
Estas expresiones devuelven el mismo arreglo
Agregar una variable nueva
tt.newVar = zeros(height(tt),1);
Cambiar los nombres de variables
tt.properties.VariableNames = newNames;
(Los nombres deben ser identificadores de MATLAB válidos)
Sugerencia: utilice matlab.lang.makevalidname para crear nombres válidos a partir de nombres potencialmente no válidos.
Remuestrear datos con retime
tt = retime(tt,newtimes,method);
method se utiliza para rellenar huecos que puedan surgir tras el remuestreo temporal y ofrece las mismas opciones que synchronize (consulte "Combinar tablas temporales").
Depurar datos
Suavizar datos
B = smoothdata(A,method);
Utilice estos métodos para suavizar datos con ruido:
'movmean','movmedian','gaussian','lowess','loess','rlowess','rloess','sgolay'
Detectar valores atípicos
TF = isoutlier(A,method);
Identifique valores atípicos con estos métodos:
'median','mean','quartiles','grubbs','gesd'
Detectar puntos de cambio
TF = ischange(A,method);
Busque cambios bruscos con estos métodos: 'mean','variance','linear'
Combinar tablas temporales
Sincronice múltiples tablas temporales con un vector temporal común.
tt = synchronize(tt1,tt2,...,ttN);
La sincronización suele generar puntos de datos ausentes (instantes en los que no se ha medido una variable). synchronize admite varios métodos para ajustar datos y rellenar huecos:
Relleno: 'fillwithmissing','fillwithconstant'
Interpolación: 'linear','spline','pchip'
Vecino más cercano: 'previous','next','nearest'
Agregación: 'mean','min','max',@func,...
Datos ausentes
Buscar valores ausentes
TF = ismissing(tt);
Rellenar valores ausentes
tt = fillmissing(tt,method);
Sustituya valores ausentes por valores calculados a partir de puntos cercanos con estos métodos:
'previous','next','nearest',
'linear','spline','pchip'
Eliminar filas que contienen valores ausentes
tt = rmmissing(tt);
Big data
Los tall arrays amplían las funciones de MATLAB para trabajar con conjuntos de datos demasiado grandes para cargarlos en la memoria.
Crear una tabla temporal "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);