異常検出の欠損値を含む時系列のSTL


12

私は、時系列の気候データから異常値を検出しようとしていますが、いくつかの観測値が欠落しています。Webを検索すると、利用可能な多くのアプローチが見つかりました。これらのうち、トレンドおよび季節成分を除去し、残りを調査するという意味で、stl分解は魅力的であるように思われます。STLの読み取り:黄土基づく季節トレンド分解手順はstl、外れ値の影響を受けず、値が欠落していても適用できる変動性の割り当て設定を柔軟に決定できるようです。しかし、R4年の観察でそれを適用しようとし、http://stat.ethz.ch/R-manual/R-patched/library/stats/html/stl.htmlに従ってすべてのパラメータを定義すると、私は遭遇しますエラー:

"time series contains internal NAs"(when na.action=na.omit)、および
"series is not periodic or has less than two periods"(when na.action=na.exclude)。

周波数が正しく定義されていることを再確認しました。ブログで関連する質問を見てきましたが、これを解決できる提案は見つかりませんでした。stl欠損値があるシリーズに適用することはできませんか?アーティファクトを導入する(および結果として検出する)ことは望ましくないため、それらを補間することは非常に嫌です。同じ理由で、代わりにARIMAアプローチを使用することがいかに望ましいかはわかりません(値の欠落が依然として問題になる場合)。

stl欠損値のあるシリーズに適用する方法を知っている場合、私の選択が方法論的に適切でないと思われる場合、またはより良い提案がある場合は共有してください。私はこの分野ではかなり新しく、関連情報の山(一見...)に圧倒されています。


私は同じ問題を抱えています。STLメソッドはLOESSを介して欠損値を埋めることができるはずですが、このR実装はそうではないようです。
jf328

回答:


5

ARIMAモデルには、欠損値を処理するためのダミー変数を簡単に組み込むことができます。これらはパルスインジケータと呼ばれます。方法論は簡単で、http://www.unc.edu/~jbhill/tsay.pdfに文書化されています。一般に、この方法は、パルス、レベルシフト、季節的パルス、およびローカルタイムトレンドに関する現在の残差シリーズ情報から抽出します。


提案と非常に興味深い記事をありがとう!
エフィー

3

この投稿の @Juliusによるstlna.approxzooパッケージから、を使用して使用することが可能stl(x, na.action = na.approx, ...)です。これは何らかの補間を行います。


0

また、ハーフェンのをチェックアウトすることをお勧めしますstlplus packageます。詳細は彼の論文にあります。

CRANからインストールできます

install.packages("stlplus")

またはgithubから直接

devtools::install_github("hafen/stlplus").
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.