突然の変化を特徴付ける方法は?


13

この質問は基本的すぎるかもしれません。データの時間的傾向について、「急激な」変化が起こるポイントを知りたい。たとえば、下の最初の図では、統計的方法を使用して変化点を見つけたいと思います。そして、変化点が明らかでない他のデータ(2番目の図のような)にそのような方法を適用したいのですが、そのような目的のための一般的な方法はありますか?

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

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


2
「ターニングポイント」という用語には、レベルの急激な変化(上または下に関係なく)には当てはまらないと私が思う特別な意味があります。また、「変化点」という言葉も使用されていますが、おそらくそれがより良い選択だと思います。これが「基本的すぎる」とは思わないでください。基本的な質問でさえ、謝罪の必要なく歓迎されます、そしてこの質問は遠く基本的ではありません。
Glen_b-モニカを復活させる'09 / 09/22

ありがとう。質問の「転換点」を「変化点」に変更しました。
user2230101 2014

回答:


11

時系列データの観測値が直前の観測値と相関している場合は、Chen and Liu(1993)[ 1 ]の論文に興味があるかもしれません。自己回帰移動平均時系列モデルのフレームワークでレベルシフトと一時的な変化を検出する方法について説明します。[1]

[1]:Chen、C.およびLiu、LM。(1993)、
「時系列におけるモデルパラメータと外れ値の影響の共同推定」
、アメリカ統計協会ジャーナル88:421、284-297


+1私は、この論文を見つけるのに十分なことを思い出そうとして(失敗して)いた。それは良いリファレンスです。
Glen_b-モニカを復活させる'09 / 09/23

6

Statsのこの問題は、(一変量)時間イベント検出と呼ばれます。最も単純なアイデアは、移動平均と標準偏差を使用することです。3標準偏差(経験則)から「範囲外」である読み取り値はすべて、「イベント」と見なされます。もちろん、HMMまたは回帰を使用するより高度なモデルもあります。ここでは、フィールドの概要を紹介します


5
これは、「一変量の時間的イベントの検出」というフレーズを含むWeb全体で公的にアクセスできる唯一の投稿です。この用語の出典は何ですか?
whuber

混乱していた場合は申し訳ありません。イベント検出はより一般的な用語であり、Temporalは個別に使用されることがあります。アプローチは通常多変量であるため、単変量は一般的に使用されませんが、それは彼の特別なケースです。
user1669710 2014

1
回答を編集してコメント@whuberを組み込みました
user1669710

@ ser1669710ありがとう。これは私が探しているものです。移動平均は私の問題を解決できないようです。もっと複雑なモデルを見る必要があります。
user2230101 2014

この一時的なイベント検出について詳しく知りたいと思います。あなたが投稿したスライドはいいですが、フィールドについてもう少し正式に説明したレビューペーパーへのリンクがあるかどうか疑問に思いましたか。
アラゴン2015

1

J={0バツ<バツ1バツバツ
バツ1<バツ2<<バツメートルJJaprlJdeceメートルberバツ

J1J2バツ1バツ2


1
PS-@ user1669710と私は回答を同時に投稿しました。それは明らかにより研究されているので、私はそれに投票しました。ただし、これは機能し、実装が簡単な代替手段であるため、ここではそのままにしておきます。
Russ Lenth、2014

1
ステップワイズ回帰を使用し、多くの候補変数を使用するため、この手順は疑わしく見えます。それはどこで研究され、どのような特性を持っていますか?他のチェンジポイントメソッドと比較してどうですか?
whuber

@whuber、正確に私のポイント。それが私が他の答えに投票した理由です。非常に細かい変更ポイント値のセットがある場合は、あまり有利に比較されません。そして、それはそうでなければそれを有利に比較しないかもしれません。私は同じようにそれを入れているアドホック方法、と私はそのように提示だと思います。しかし、私はこのような方法が非線形法の開始値を取得するための良い方法であると約束します。
Russ Lenth、2014

このアイデアは、私が見つけたいくつかのより効果的なチェンジポイントメソッドの根底にありますが、特にステップワイズ回帰を使用すると、他のメソッドを改善するための妥当な出発点を作成することさえできない場合がある(私にはわかりません)。それが研究されたのかどうか私が知りたい理由です。
whuber

データを最もよく説明する2つのジャンプが見つかるので、指定された数のジャンプ(たとえば2つ)が実際にある限り、すべてのサブセットの選択に問題はほとんどないと思います。他の選択方法は、他の状況と同様に、問題になる可能性があります。それは、最良の答えを得るか、良い答えを得るか、迅速な答えを得ることがいかに重要であるかに依存すると思います。すべての問題が同じであるとは限らず、すべてのクライアントが同じであるとは限りません。あなたがそれを説明できない場合、世界での最良の答えは完全な失敗です。
Russ Lenth 2014

1

シリーズまたはシーケンスを理想的な定数値を持つスペルに分割するという関連する問題があります。数値データを自然に形成される「ブラケット」にグループ化する方法を参照してください。(例:収入)

質問は、いずれかまたはすべての方向にゆっくりとドリフトするが、突然の変化がないスペルを除外しないので、まったく同じ問題ではありません。

より直接的な答えは、大きなジャンプを探しているということです。したがって、本当の問題はジャンプを定義することです。最初のアイデアは、隣接する値間の最初の違いを調べることです。ジャンプをノイズの違いと区別できない場合でも、ジャンプを急激に行うことはできないので、最初にノイズを除去することによってそれを調整する必要があるかどうかさえも明確ではありません。一方、質問者は明らかに急激な変化に段階的変化だけでなく傾斜変化も含めることを望んでいるため、固定長ウィンドウ内の分散または範囲などの基準が求められているようです。


1

探している統計の領域は、変化点分析です。ここには、エリアの概要とソフトウェアのページを提供するWebサイトがあります。

あなたがRユーザーならchangepoint、平均のstrucchange変更のためのパッケージと回帰の変更のためのパッケージをお勧めします。ベイジアンになりたい場合は、bcpパッケージも良いです。

一般に、探している変更の強さを示すしきい値を選択する必要があります。もちろん、特定の状況で人々が主張するしきい値の選択肢があり、漸近的な信頼水準またはブートストラップを使用して信頼を得ることもできます。


1
OPは2つの例を識別しました。1つはステップ、もう1つはランプと呼びますが、言葉については常に議論の余地があります。こちらの私の回答もご覧ください。これらの方法はランプにどのように対処しますか?彼らは段階的変化の暗黙的または明示的なモデルを持っていますか?
Nick Cox

ニックさん、ありがとうございました。一般的には、ランプの長さによって異なります。ランプが短い場合は1つの変更として扱われ、ランプが長い場合は、多くの場合、チェンジポイントメソッドは2つの変更を識別します。1つはランプの開始時、1つは終了時です。明らかに、これはあなたが想定する基礎となるモデルに依存します。
adunaic 2014年

1

この推論の問題には、変化点、スイッチポイント、ブレークポイント、折れ線回帰、折れ線回帰、双一次回帰、区分的線形回帰、局所線形回帰、セグメント化回帰、不連続モデルなど、多くの名前があります。

ここでは、長所/短所と効果的な例を含む変更点パッケージの概要を示します。変更点の数が事前にわかっている場合は、mcpパッケージを確認してください。まず、データをシミュレートします。

df = data.frame(x = seq(1, 12, by = 0.1))
df$y = c(rnorm(21, 0, 5), rnorm(80, 180, 5), rnorm(10, 20, 5))

あなたの最初の問題については、それは3つの傍受のみのセグメントです:

model = list(
  y ~ 1,  # Intercept
  ~ 1,  # etc...
  ~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")

結果の近似をプロットできます。

plot(fit)

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

ここでは、変化点が非常に明確に定義されています(狭い)。推定された位置(cp_1およびcp_2)を確認するために近似を要約しましょう。

summary(fit)

Family: gaussian(link = 'identity')
Iterations: 9000 from 3 chains.
Segments:
  1: y ~ 1
  2: y ~ 1 ~ 1
  3: y ~ 1 ~ 1

Population-level parameters:
    name   mean lower upper Rhat n.eff
    cp_1   3.05   3.0   3.1    1  6445
    cp_2  11.05  11.0  11.1    1  6401
   int_1   0.14  -1.9   2.1    1  5979
   int_2 179.86 178.8 180.9    1  6659
   int_3  22.76  19.8  25.5    1  5906
 sigma_1   4.68   4.1   5.3    1  5282

mcpN次の自動回帰のモデリング(時系列に便利)など、より複雑なモデルをで実行できます。免責事項:私はの開発者ですmcp

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