メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

データ内の外れ値を削除する

この例では、Hampel フィルターを使用して ThingSpeak ™チャネルデータ内の外れ値を検出して削除する方法を示します。このフィルターは中央値フィルターと密接に関連しており、データを過度に平滑化せずに信号から外れ値を除去するのに役立ちます。

データの読み取り

thingSpeakRead 関数を使用して、チャネル22641 に保存されている風速を読み取ります。

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

外れ値の削除

hampel 関数を適用して生データ内の外れ値を削除します。ウィンドウ サイズを 6、つまり測定ウィンドウの両側に約 3 分間のデータとして指定します。この設定により、各ポイントが外れ値であるかどうかを判断するのに十分なデータが得られます。データは動的であるため、現在の天候に応じて結果が異なる場合があります。標準偏差の数を 2 に指定します。データ ポイントがローカル中央値とこの数値を超えて異なる場合は、ローカル中央値に置き換えられます。

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

ThingSpeakにデータを書き込む

thingSpeakWrite 関数を使用して、検出された外れ値の数を ThingSpeakチャネルに送信します。channelIDwriteAPIKey を変更して、データをチャネルに送信します。

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

     8

参考

関数