外れ値を含む時系列のモデルを適合させる方法


9

私はauto.arima()、Rの関数を使用してARIMA(5,1,2)モデルを近似しました。そして、次数を調べることにより、これは予測するのに最適なモデルではないと言えます。データ系列に外れ値が存在する場合、そのようなデータにモデルを適合させる方法は何ですか?


どの点が外れ値であるかについてのデータ/理論はありますか?「遠く離れた」ポイントが異常値であると単純に想定することはできませんが、特定の日付で何か特別なことが起こり、そのイベントがデータに影響を与えることがわかっている場合は、その日付のモデルにインジケーター変数を追加できます。以下のIrishStatのコメントを参照してください。
ウェイン

その期間の1週間または2週間に何か特別なことが起こり、それがモデルに影響を与える場合、モデルは正しくない可能性があります。季節変動のような他の理由はないので、私は外れ値がモデルに影響を与える原因であると仮定しました。
アンソニー

回答:


7

マイケルチェニックは正しい方向にあなたを指しています。Ruey Tsayの作品もこの知識体系に追加されたものとして見ます。詳細はこちら

今日の自動化されたコンピューターアルゴリズムと競合することはできません。彼らは、あなたが考慮していない、多くの場合紙や本に記載されていない時系列にアプローチする多くの方法を検討します。分散分析の方法を尋ねると、さまざまなアルゴリズムと比較するときに正確な答えが期待できます。パターン認識をどのように行うかと質問すると、ヒューリスティックスが関係しているため、多くの回答が可能です。あなたの質問はヒューリスティックの使用を含みます。

データに外れ値が存在する場合にARIMAモデルを近似する最良の方法は、可能な自然状態を評価し、特定のデータセットに最適であると見なされるアプローチを選択することです。自然の状態として考えられるのは、説明された変動の主な原因がARIMAプロセスであるということです。この場合、acf / pacf関数を介してARIMAプロセスを「一時的に識別」し、残差を調べて外れ値の可能性を調べます。外れ値は、脈拍、つまり、1回限りのイベントまたは季節的な脈拍である場合があります。これは、ある頻度で系統的な外れ値によって示されます(たとえば、月次データの場合は12)。3番目のタイプの外れ値は、それぞれが同じ符号と大きさを持つ連続したパルスのセットを持っている場合で、これはステップまたはレベルシフトと呼ばれます。暫定的なARIMAプロセスからの残差を調べた後、経験的に識別された決定論的構造を暫定的に追加して、暫定的な結合モデルを作成できます。変動の主な原因が4種類または「外れ値」のいずれかである場合も、それらをab initio(最初)で識別し、次にこの「回帰モデル」からの残差を使用して確率的(ARIMA)構造を識別することで、より適切に対処できます。 。これらの2つの代替戦略は、ARIMAパラメータが時間とともに変化するか、いくつかの考えられる原因、おそらく加重最小二乗またはべき変換の必要性により、エラー分散が時間とともに変化する「問題」がある場合、もう少し複雑になります。ログ/逆数など 別の複雑さ/機会は、メモリ、因果関係、および経験的に特定されたダミーシリーズを組み込んだシームレスに統合されたモデルを形成するために、ユーザーが提案する予測子シリーズの貢献をいつどのように形成するかです。この問題は、次の形式のインジケーターシリーズで最もよくモデル化されたトレンドシリーズがある場合、さらに悪化します。0,0,0,0,1,2,3,4,...、またはおよびようなレベルシフトシリーズの組み合わせ。Rでそのようなプロシージャを試して書きたいと思うかもしれませんが、人生は短いです。問題を実際に解決し、この場合は手順がどのように機能するかを示していただければ幸いです。データを投稿するか、sales @ autobox.comに送信してください1,2,3,4,5,...n0,0,0,0,0,0,1,1,1,1,1


データの受信/分析後の追加コメント/為替レートの日次データ/ 2007年1月1日以降の18 = 765値

ここに画像の説明を入力してください

データには以下のacfが含まれていました。

ここに画像の説明を入力してください

という形式のアルマモデルと多数の外れ値を特定すると、acf値は非常に小さいため、残差のacfはランダム性を示します。AUTOBOXはいくつかの外れ値を識別しました:(1,1,0)(0,0,0)

ここに画像の説明を入力してください

最終モデル:

ここに画像の説明を入力してください

残差の分散変化が特定され組み込まれたTSAYの分散安定化補強の必要性が含まれています。自動実行で発生した問題は、会計士のように、使用していた手順が介入検出(別名、異常値検出)を介してデータに挑戦するのではなく、データを信じることでした。私はここに完全な分析を投稿しまし

ここに画像の説明を入力してください


@IrishStat:今後、フォーマットオプションを使用できますか?(リンクを挿入するための正しいキーはctrl-cではなくctrl-lです)。
user603 2012

@ user603単にグラフの追加オプションを使用しています。ctrl-lやcntrl-cの意味がわかりません。多分あなたは私を助けることができます、dave / @ / autobox.comで私に連絡してください、そして多分あなたはこれを通して私に歩く/話すことができます。
IrishStat 2012


@ user603 OKですが、ctrl-lおよびcntrl-cの意味がわかりません。画像を挿入できる画像転送を使用していました。cntrl-gと入力すると、空白のポップアップ画面が表示されます。
IrishStat

@IrishStat:大丈夫です-リンクのメソッドはctrl-lよりも優れています:) PS:私の目的は、テキストの流れを切断するこれらの長いリンクを非表示にすることで、化粧品のように回答/コメントをより魅力的にすることです。リンクはそれを達成する方法を説明します。
user603 2012

6

R (まだ)には、arima関数に対応する堅牢な対応機能はありません。表示される場合は、ここに表示されます。たぶん代替案は、単純な一変量の外れ値検出ルールに関して外れている観測をダウンウェイトすることですが、加重ARMA回帰を実行するためにパッケージを使用する準備ができていないようです。もう1つの可能な代替策は、Winsorizeを使用して境界点を設定することです。

#parameters
para     <- list(ar=c(0.6,-0.48), ma=c(-0.22,0.24))
#original series
y1 <- y0 <- arima.sim(n=100, para, sd=sqrt(0.1796)) 
#outliers
out      <- sample(1:100, 20)               
#contaminated series
y1[out]  <- rnorm(20, 10, 1)                
plot( y1, type="l")
lines(y0, col="red")

ランダム汚染の例

#winsorized series
y2      <- rep(NA, length(y1))
a1      <- (y1-median(y1)) / mad(y1)
a2      <- which(abs(a1)>3)
y2[-a2] <- y1[-a2]
for(i in 2:length(y2)){
   if(is.na(y2[i])){ y2[i] <- y2[i-1] }
}       

きれいなシリーズ


ルールベースの手順は、42年間の時系列データを見たこのシリーズbuに対しては機能しませんが、一般的に機能しない場合があります。自動投影プロセスがある単純なシリーズを考えてください。 1,9,1,9ここで、7番目の値は例外的OR一般に未知の形式の強い自己射影構造を持つ系列、または1,2,1,1,1,2,1,1,1を持つ系列2,1,20,1,2,1,2,1,1,1,2,1,2,2,19,2,1,1,2,1,2,1,1,2,2、 2,21パルスのない月次シリーズですが、不特定の季節ダミーがあります。12、24、および36をBADとして検出すると、赤ちゃんがお風呂から吐き出されます。
IrishStat

あなたが言うことはすべて本当です。つまり、1)シリーズが静止していて、とりわけレベルのシフト、トレンドなど、ARIMA構造がないと仮定した場合に、創傷を助けるバンドエイドを提供していました。2)シリーズは非季節性であるか、以前に季節性がなくなっている必要があります。。そのような仮定が成立することはほとんどなく、ユーザーが「不完全性」のある時系列に取り組んでいるときにユーザーの警告を無視するのは私の経験です。ここでの私のコメントは、議論の余地があるものではなく、(一部の人
にとっては

OPの@IrishStatが質問を更新し、季節性はないと述べました。
user603 2012

あなたはクリストフですか?
IrishStat

2

ロバストな時系列モデルに関するかなりの数の文献があります。マーティンとヨーハイは主要な貢献者の一人です。彼らの仕事は1980年代にさかのぼります。私は時系列で外れ値を検出するためにいくつかの作業を行いましたが、マーティンは、外れ値の検出と時系列での裾が重い残差の存在下でのパラメーター推定の両方に実際に貢献した多くの1人です。

  • これは、トピックに関する調査記事へのリンクで、100を超える参照のリストがあります。1982年のJASA論文も含まれています。
  • 2000年の博士論文(pdf)は、ロバストな時系列分析の理論、方法、およびアプリケーションを網羅しており、優れた参考文献が含まれています。
  • これは、いくつかの堅牢な時系列ツールを含むソフトウェアのリンクです。

ロバストな予測に使用されるソフトウェアは何ですか?一変量シリーズに適していますか?
アンソニー

@Anthonyそれはとても良い質問です。堅牢な時系列モデリングは行っていません。マーティンは、SPlusを販売するInsightfulという会社を設立しました(実際には複数の名前変更がありました)。私は彼がSPlusソフトウェアに堅牢なメチドを含めたことをかなり確信しています。おそらく現在Rにバージョンがあります。チェックインします。SPlusの歴史を含むWikipediaの記事を次に示します。en.wikipedia.org/wiki/S-PLUS
マイケルR.シェニック

@Anthony時系列分析のRで利用可能なものについて、Rob Hyndmanが提供するソースを以下に示します。これにはCRANの内容が含まれており、堅牢なフィルタリングを含むさまざまな方法をカバーしています。 cran.r-project.org/web/views/TimeSeries.html
Michael R.

2

履歴を予測ま​​たは分析するためのモデルの目的は何ですか?これが予測用ではなく、これらが外れ値であることがわかっている場合は、ダミー変数を追加するだけです。ダミー変数は、これらの日付では1、その他の日付では0です。これにより、ダミー係数が異常値を処理し、モデル内の他の係数を解釈できるようになります。

これが予測のためのものである場合は、2つの質問をする必要があります。これらの異常値は再び発生しますか?もしそうなら、私はそれらを説明する必要がありますか?

たとえば、リーマン兄弟がダウンしたときに、データ系列に異常値があったとします。それはあなたが予測する方法のないイベントですが、明らかに、このようなことが将来起こる可能性があるため、単にそれを無視することはできません。外れ値のダミーを投入すると、エラー分散からこのイベントの不確実性を効果的に取り除くことができます。予測はテールリスクを過小評価します-おそらく、リスク管理にとっては良いことではありません。ただし、売上のベースライン予測を作成する場合は、ダミーが機能します。テールに関心がないため、最も可能性の高いシナリオに関心があるため、予測できないイベントを考慮する必要はありません。この目的。

したがって、モデルの目的は、外れ値の扱い方に影響を与えます。

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