Supprimer et visualiser les valeurs aberrantes dans vos données
Cet exemple montre comment détecter et supprimer les valeurs aberrantes dans les données de votre canal ThingSpeak ™ à l'aide d'un filtre Hampel. Ce filtre est étroitement lié à un filtre médian et permet de supprimer les valeurs aberrantes d'un signal sans trop lisser les données.
Lire les données
Lisez la vitesse du vent stockée dans le canal 22641 à l'aide de la fonction thingSpeakRead
.
data = thingSpeakRead(12397,'NumPoints',80,'Fields',2,'outputFormat','table');
Supprimer les valeurs aberrantes
Supprimez les valeurs aberrantes dans les données brutes en appliquant la fonction Hampel
. Spécifiez la taille de la fenêtre sur 6, soit environ trois minutes de données de chaque côté de chaque échantillon dans la fenêtre de mesure. Ce paramètre permet d'avoir suffisamment de données pour décider si chaque point est une valeur aberrante. Étant donné que les données sont dynamiques, vos résultats peuvent varier en fonction de la météo actuelle. Spécifiez le nombre d'écarts types à 2. Si un point de données diffère de la médiane locale de plus de ce nombre, il est remplacé par la valeur médiane locale.
windowSize = 6; numMedians = 2; [filteredData,outliers]=hampel(data.WindSpeedmph,windowSize,numMedians);
Visualiser les données
Tracez les données d'origine et les données filtrées. Afficher les valeurs aberrantes détectées et supprimées.
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
Écrire des données dans ThingSpeak
Envoyez le nombre de valeurs aberrantes détectées à un canal ThingSpeak à l'aide de la fonction thingSpeakWrite
. Changez le channelID
et le writeAPIKey
pour envoyer des données à votre canal.
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,sum(outliers),'WriteKey',writeAPIKey);
Voir aussi
Fonctions
thingSpeakRead
|hampel
(Signal Processing Toolbox)