このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
データの外れ値の可視化と削除
この例では、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);
このプロットは、元のデータ、フィルターされたデータ、元のデータ内の外れ値を示しています。
参考
関数
thingSpeakRead
|hampel
(Signal Processing Toolbox)