私が話している時系列の写真を添付しました。上が元のシリーズ、下が差分のシリーズです。
各データポイントは、ひずみゲージからの5分間の平均読み取り値です。このひずみゲージは機械に設置されます。ノイズの多い領域は、マシンがオンになっている領域に対応しています。クリーンな領域は、マシンがオフになっているときです。赤い丸で囲まれた部分を見ると、読みに異常なステップがあり、自動的に検出したいと思います。
私はこれをどのように行うことができるかについて完全に困惑しています-アイデアはありますか?
私が話している時系列の写真を添付しました。上が元のシリーズ、下が差分のシリーズです。
各データポイントは、ひずみゲージからの5分間の平均読み取り値です。このひずみゲージは機械に設置されます。ノイズの多い領域は、マシンがオンになっている領域に対応しています。クリーンな領域は、マシンがオフになっているときです。赤い丸で囲まれた部分を見ると、読みに異常なステップがあり、自動的に検出したいと思います。
私はこれをどのように行うことができるかについて完全に困惑しています-アイデアはありますか?
回答:
比較的静かな間隔でスパイクを探しているようです。「相対」とは、典型的な近くの値と比較することを意味し、系列の平滑化を示唆しています。堅牢それは少数の地元のスパイクによって影響されるべきではないからこそ、滑らかであることが望ましいです。「クワイエット」とは、スムースが小さいという変動を意味します。この場合も、局所変動のロバストな推定が望まれます。最後に、「スパイク」は、局所変動の倍数としての大きな残差になります。
このレシピを実装するには、(a)「近く」がどれだけ近いか、(b)平滑化のレシピ、(c)局所変動を見つけるためのレシピを選択する必要があります。(a)を試す必要があるかもしれないので、簡単に制御できるパラメーターにしましょう。(b)と(c)のすぐに利用できる優れた選択肢は、それぞれLowessとIQRです。ここにR
実装があります:
library(zoo) # For the local (moving window) IQR
f <- function(x, width=7) { # width = size of moving window in time steps
w <- width / length(x)
y <- lowess(x, f=w) # The smooth
r <- zoo(x - y$y) # Its residuals, structured for the next step
z <- rollapply(r, width, IQR) # The running estimate of variability
r/z # The diagnostic series: residuals scaled by IQRs
}
その使用例として、2つの連続するスパイクが静止期間に追加されるこれらのシミュレートされたデータを考えます(連続する2つのスパイクは、1つの孤立したスパイクよりも検出が難しいはずです)。
> x <- c(rnorm(192, mean=0, sd=1), rnorm(96, mean=0, sd=0.1), rnorm(192, mean=0, sd=1))
> x[240:241] <- c(1,-1) # Add a local spike
> plot(x)
これが診断プロットです:
> u <- f(x)
> plot(u)
元のデータのすべてのノイズにもかかわらず、このプロットは中央の(比較的小さい)スパイクを美しく検出します。 大まかな値をスキャンして検出を自動化しf(x)
ます(絶対値で約5より大きい:サンプルデータで何が最適に機能するか実験してください)。
> spikes <- u[abs(u) >= 5]
240 241 273
9.274959 -9.586756 6.319956
時間273のスプリアス検出は、ランダムな局所的外れ値でした。 診断の高い値と実行中のIQRの低い値を同時に探すように変更することで、テストを調整して、このような偽の値(ほとんど)を除外できます。ただし、診断には普遍的な(単位のない)スケールと解釈がありますが、「低い」IQRの意味はデータの単位に依存し、経験から決定する必要があります。f
r/z
z
ここに2セントの提案があります。
意味差分シリーズ。と点与えられた場合、定義します
としましょう。aの値は、オフ/オンゾーンを低い/高い値で特徴付けます。
異常なステップは、である点 –必要なものを検出するためにを調整し、マシンがオンになったときに誤検知を回避する必要があります。最初にと試してみます。
また、あなたはポイントを見ることができますのための(例えば、)、その月のヘルプ微調整(その場合、値は小さくなります)。