Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

データの外れ値の可視化と削除

この例では、Hampel フィルターを使用して ThingSpeak™ チャネルのデータの外れ値を検出し、削除する方法を説明します。このフィルターはメディアン フィルターと密接に関係しており、データを過度に平滑化することなく、信号から外れ値を削除するために役立ちます。

メモ

この例を実行するには、Signal Processing Toolbox を使用するライセンスの与えられた MathWorks アカウントでログインしなければなりません。

データの読み取り

関数 thingSpeakRead を使用して、チャネル 22641 に格納されている気温 (摂氏) を読み取ります。

data = thingSpeakRead(22641,'NumPoints',8000,'Fields',2,'outputFormat','table');

外れ値の削除

関数 Hampel を適用して、生のデータ中にある外れ値を削除します。測定ウィンドウにおけるデータの各サンプルの両側の近傍の数を 60 に指定します。温度が 1 時間あたり 10 度を超えて変化することはないため、この設定によって、十分なデータがあれば各点が外れ値かどうかを判定できるようになります。標準偏差の数を 10 に指定します。データ点を中央値に置き換えるには、データ点と局所的中央値との差がこの数を超えなければなりません。

windowSize = 60;
numMedians = 10;
hampel(data.AirTemperatureC, windowSize, numMedians);

このプロットは、元のデータ、フィルターされたデータ、元のデータ内の外れ値を示しています。

参考

関数