Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

Eliminar y visualizar valores atípicos en sus datos

Este ejemplo muestra cómo detectar y eliminar valores atípicos en los datos de su canal ThingSpeak™ usando un filtro Hampel. Este filtro está estrechamente relacionado con un filtro de mediana y ayuda a eliminar valores atípicos de una señal sin suavizar demasiado los datos.

Leer datos

Lea la velocidad del viento almacenada en el canal 22641 usando el thingSpeakRead función.

data = thingSpeakRead(12397,'NumPoints',80,'Fields',2,'outputFormat','table');

Eliminar valores atípicos

Elimine los valores atípicos en los datos sin procesar aplicando Hampel función. Especifique el tamaño de la ventana como 6, o aproximadamente tres minutos de datos a cada lado de cada muestra en la ventana de medición. Esta configuración permite suficientes datos para decidir si cada punto es un valor atípico. Dado que los datos son dinámicos, sus resultados pueden variar según el clima actual. Especifique que el número de desviaciones estándar sea 2. Si un punto de datos difiere de la mediana local en más de este número, se reemplaza con el valor de la mediana local.

windowSize = 6;
numMedians = 2;
[filteredData,outliers]=hampel(data.WindSpeedmph,windowSize,numMedians);

Visualizar datos

Trazar los datos originales y los datos filtrados. Muestra los valores atípicos detectados y eliminados.

plot(data.Timestamps,data.WindSpeedmph);
hold
plot(data.Timestamps,filteredData);
plot(data.Timestamps(outliers),data.WindSpeedmph(outliers),'Marker','Square','Linestyle','None','Color','black');
ylabel('Wind Speed (mph)');
legend('Orginal Data', 'Filtered Data','Outliers');
Current plot held

Escribir datos en thingSpeak

Envíe el número de valores atípicos detectados a un canal de ThingSpeak mediante el thingSpeakWrite función. Cambiar el channelID y el writeAPIKey para enviar datos a tu canal.

channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,sum(outliers),'WriteKey',writeAPIKey);

Consulte también

Funciones