Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Eliminar tendencias de datos

Introducción

La función detrend resta la media o una línea mejor ajustada (en el sentido de los mínimos cuadrados) de sus datos. Si los datos contienen varias columnas de datos, detrend trata cada columna de datos por separado.

Eliminar una tendencia de los datos le permite centrar el análisis en las fluctuaciones de los datos sobre la tendencia. Una tendencia lineal normalmente indica un aumento o disminución sistemática de los datos. Un cambio sistemático puede resultar de la deriva de los sensores, por ejemplo. Aunque las tendencias pueden ser significativas, algunos tipos de análisis dan una mejor comprensión una vez que se eliminan las tendencias.

Que tenga sentido eliminar los efectos de las tendencias de los datos depende a menudo de los objetivos de su análisis.

Eliminar tendencias lineales de los datos

Este ejemplo muestra cómo eliminar una tendencia lineal de las cotizaciones al cierre diarias para enfatizar las fluctuaciones de precios sobre el aumento general. Si los datos tienen una tendencia, eliminar la tendencia fuerza su media a cero y reduce la variación general. En el ejemplo se simulan las fluctuaciones del precio de las acciones utilizando una distribución tomada de la función gallery.

Cree un conjunto de datos simulados y calcule su media. sdata representa los cambios diarios de precios de una acción.

rng(20)
t = 0:300;
dailyFluct = randn(size(t));
sdata = cumsum(dailyFluct) + 20 + t/100;

Encuentre el promedio de los datos.

mean(sdata)
ans = 41.5155

Represente y etiquete los datos. Observe el aumento sistemático de los precios de las acciones que muestran los datos.

figure
plot(t,sdata);
legend('Original Data','Location','northwest');
xlabel('Time (days)');
ylabel('Stock Price (dollars)');

Figure contains an axes. The axes contains an object of type line. This object represents Original Data.

Aplique detrend, que realiza un ajuste lineal a sdata y, después, elimina la tendencia de la misma. Al restar la salida de la entrada se obtiene la línea de tendencia calculada.

detrend_sdata = detrend(sdata);
trend = sdata - detrend_sdata;

Encuentre el promedio de los datos cuya tendencia se ha eliminado.

mean(detrend_sdata)
ans = -8.0025e-15

Como era de esperar, los datos sin tendencia tienen una media muy cercana a 0.

Muestre los resultados añadiendo la línea de tendencia, los datos sin tendencia y su media en la gráfica.

hold on
plot(t,trend,':r')
plot(t,detrend_sdata,'m')
plot(t,zeros(size(t)),':k')
legend('Original Data','Trend','Detrended Data',...
       'Mean of Detrended Data','Location','northwest')
xlabel('Time (days)'); 
ylabel('Stock Price (dollars)');

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Original Data, Trend, Detrended Data, Mean of Detrended Data.

Consulte también

| | |