1

液体の体積を測定するセンサーがあります。この液体はゆっくりと消費され、必要なときに補充されます。私が検出したいのは、この液体が「盗まれた」または満たされた回数です。盗まれるとは、液体の量が急激に減少することを意味します。反対は充填と見なされます。センサーから取得した値には小さなスパイクがありますが、十分な測定値があれば無視する必要があります。

上記のシナリオを実行する統計方法(ドキュメント)またはプログラミングアルゴリズム(任意の言語)、またはさらに優れたSQL関数/クエリ(任意のデータベース)はありますか?

ここに画像の説明を入力

4

3 に答える 3

1

通常、外れ値を見つけようとします。

  1. 維持したいベースライン値はありますか、それとも現在の移動平均と比較したいですか?

  2. 突然の下落とは何だと思いますか? それは絶対的な用語 (5l など) ですか、それとも相対的な用語 (現在のボリュームの 5%) ですか。

移動平均に依存している場合のおおよその説明を次に示します。

on volumeChange do
    calculate new runningAverage
    if (runningAverage outside allowedRange(oldRunningAverage)) then raise warning
    oldRunningAverage := runningAverage

知っておくべきことは次のとおりです。

  • 測定値はどのように得られますか (定期的に得られると信頼できますか)
  • はどのようにallowedRange定義されていますか

以下は、5 回の測定 (青) に対する単純移動平均 (赤) の図です。

SMA(5)

于 2013-02-21T10:14:47.187 に答える
0

時間に関して一次導関数を計算すると、探しているものが得られるはずです。1を超える時間デルタを使用すると、小さなジャンプをスムーズにするのに役立ちます。

于 2013-02-21T17:29:08.653 に答える
0

Microsoft StreamInsightを見てみる価値があるかもしれません。

Microsoft SQL Server が静的データを管理するように設計されているのと同様に、StreamInsight は動的データを分析するように設計されています。StreamInsight にとって、ストリームは時間が関連付けられた一連のデータです。例としては、時間の経過とともに変化する取引所のさまざまな株式の価格を提供する株式ティッカー ストリームや、時間の経過とともにセンサーによって報告される温度値を提供する温度センサー ストリームがあります。

StreamInsight プログラムは、興味深い情報を監視しながら、データを分析する一連のクエリを介してストリームを渡します次に、クエリが異常を識別したために生成されたアラートなど、クエリから派生した情報を出力します。

于 2013-02-21T10:35:24.777 に答える