Guías prácticas

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

tt.Temperature

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

Más información

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'

Más información

Detectar valores atípicos

TF = isoutlier(A,method);

Identifique valores atípicos con estos métodos:

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

Más información

Detectar puntos de cambio

TF = ischange(A,method);

Busque cambios bruscos con estos métodos: 'mean','variance','linear'

Más información

Combinar tablas temporales

Sincronice múltiples tablas temporales con un vector temporal común.

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

Más información

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

Más información

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'

Más información

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

Más información

% Convert to a timetable

tt = table2timetable(t);