データの季節性を検出するためにどのような方法を使用できますか?


56

受信したデータの季節性を検出したい。季節サブシリーズプロットや自己相関プロットなど、いくつかの方法がありますが、問題はグラフの読み方がわからないことです。もう1つは、グラフの最終結果の有無にかかわらず季節性を検出する他の方法がありますか?


1
理解に問題がある実際のグラフを含めることができます。
カール

より好ましくは、「厄介な」ACFを生成するために使用できる元のデータ。
IrishStat


1
参照:journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1銭、C.、Zウー、Cフー、およびD王、2011:エルニーニョを変更する:時変年次から眺めサイクル、経年変動および平均状態。J. Climate、24(24)、6486-6500

回答:


70

通常の一連のデータで周期性を見つけるための本当に良い方法は、全体的な傾向を取り除いた後、そのパワースペクトルを調べることです。(これは、総電力が1などの標準値に正規化されている場合の自動スクリーニングに役立ちます。)予備的なトレンド除去(およびシリアル相関を除去するためのオプションの差分)は、他の動作との混乱を避けるために不可欠です。

パワースペクトルは、元の系列の適切に平滑化されたバージョンの自己共分散関数の離散フーリエ変換です。時系列を物理的な波形のサンプリングと考えると、各周波数内で伝達される波の総電力の量を推定できます。パワースペクトル(またはピリオドグラム)は、パワー対周波数をプロットします。周期的(つまり、反復的または季節的なパターン)は、その周波数にある大きなスパイクとして現れます。

例として、1年間(365個の値)の毎日の測定から得られるこの(シミュレートされた)時系列の残差を考えてみましょう。

一連の残差

値は明確な傾向なしに付近で変動し、すべての重要な傾向が除去されたことを示しています。変動ランダムに見えます。周期性は明らかではありません。0

同じデータの別のプロットを次に示します。これは、可能な周期パターンを確認するのに役立ちます。

0で埋められた一連の残差

本当にハードに見える場合は、ノイズが多いが繰り返し発生するパターンを11〜12回見分けることができる場合があります。ゼロ以上およびゼロ以下の値の長いシーケンスは、少なくともいくつかの正の自己相関を示唆しており、この系列が完全にランダムではないことを示しています。

ここにピリオドグラムがあり、最大91(シリーズ全体の長さの4分の1)までの周波数に対して表示されます。ウェルチウィンドウで構成され、単位面積に正規化されました(ここに示されている部分だけでなく、ピリオドグラム全体に対して)。

ピリオドグラム

パワーは「ホワイトノイズ」(小さなランダムな変動)と2つの顕著なスパイクのように見えます。彼らは見逃しがたいですよね?12の周期で大きくなり、52の周期で小さくなります。この方法により、これらのデータで月ごとの周期とごとの周期が検出されました。これで本当にすべてです。サイクル(「季節性」)の検出を自動化するには、ピリオドグラム(値のリスト)をスキャンして、比較的大きな局所的最大値を求めます。

これらのデータがどのように作成されたかを明らかにする時が来ました。

信号とノイズに分解されたデータ

値は2つの正弦波の合計から生成されます。1つは周波数12(2乗振幅3/4)で、もう1つは周波数52(2乗振幅1/4)です。これらは、ピリオドグラムのスパイクが検出したものです。それらの合計は、太い黒の曲線として表示されます。次に、黒い曲線から赤い点まで伸びる明るい灰色のバーで示されるように、分散2のIid Normalノイズが追加されました。このノイズにより、ピリオドグラムの下部に低レベルの小刻みが導入されました。そうでない場合は、フラット0になります。ドットを見ただけでは周期性を判断するのはとても難しいです。それにも関わらず(ピリオドグラムを使用して周波数を見つけることは、一部にはデータが非常に多いため)、結果は明確です。

ピリオドグラムを計算するための指示と適切なアドバイスは、数値レシピサイトにあります。「FFTを使用したパワースペクトル推定」のセクションを参照してください。 ピリオドグラム推定のためのコードRがあります。これらの図はMathematica 8で作成されました。ピリオドグラムは「フーリエ」関数で計算されました。


2
「全体的な傾向を取り除いた後」という仮定は、多くの時間傾向があり、多くのレベルシフトがすべてあなたの例で除外されている可能性があるため、アキレスヒールです。入力シリーズが本質的に決定論的であるという考えは、季節的および規則的なARIMA構造の存在。未処理の異常なワンタイム値が原因毎週および/または毎月の効果は、過去のある時点で変更ピリオドグラムベースの手順が失敗する非significance.Ifを得ピリオドグラム推定値に下向きのバイアスに任意のピリオドグラムベースの識別スキームを歪曲します
IrishStat

@アイリッシュあなたのコメントは多少誇張されるかもしれません。「異常なワンタイム値」(別名外れ値)を探して扱うのが最も基本的であるため、これは時系列推定値が外れ値に敏感である可能性があることを強調することに言及するだけです。「本質的に決定論的」は、基本的な考えを誤って表しています。決定論があるとは誰も思いません(シミュレーションの膨大な量のノイズによって証明されるように)。シミュレーションは、ピリオドグラムと季節性の関係を示すために、明確な周期信号をモデルとして(実際には常に近似値として)取り入れています。(続き...)
whuber

2
はい。季節性の変化は、ピリオドグラム(およびacfなど)、特に周波数(可能性は低い)または位相(可能性のある)の変化を不明瞭にする可能性があります。私の投稿の参考文献は、それを処理するための解決策を提供します:ピリオドグラム推定に移動ウィンドウを使用することを推奨します。これにはアートがあり、明らかに落とし穴があります。そのため、多くの時系列分析は、あなたが提唱するように、専門家の治療の恩恵を受けるでしょう。しかし、質問は「季節性を検出する他の方法」があるかどうかを尋ね、ピリオドグラムは統計的に強力で、計算効率が高く、容易に解釈可能なオプションであることは間違いありません。
whuber

私の世界では、サイン/コサインを使用することは、月の指標のように「決定的な効果」です。事前に指定されたモデルを近似すると、近似値がユーザー指定のパターンに制限され、多くの場合、標準以下になります。アナリスト/高度なコンピューターソフトウェアが固定入力と確率的入力を効果的に識別するのに役立つように、データを「リスニング」する必要があります。シリーズの。私の意見では、ピリオドグラムの利用は、単純な統計モデリングを「売る」
-IrishStat

2
@whuber同じことを繰り返しても役に立たないかもしれません。ただし、ピリオドグラムの下の段落を修正して、スパイクが「期間」ではなく「頻度」で1年に12回と52回にあると言うのもいいかもしれません。また、「周期」ではなく「頻度」と言うようにプロットを修正するのも、面倒ではないと思う場合にはいいかもしれません。
セレリビ

19

ニュージャージー州の都市からのログ失業率に関する月次データを使用した例を次に示します(Stataから。これは元々これらのデータを分析したためです)。 季節性ACF

線の高さは、変数とそれ自体のラグの相関関係を示しています。灰色の領域は、この相関が有意であるかどうかの感覚を示します(この範囲はあくまでも目安であり、有意性をテストする最も信頼できる方法ではありません)。この相関が高い場合、シリアル相関の証拠があります。期間12、24、36の前後に発生するこぶに注意してください。これは毎月のデータであるため、正確に1、2、または3年前の期間を見ると相関が強くなることを示唆しています。これは毎月の季節性の証拠です。

季節性コンポーネントを示すダミー変数で変数を回帰することにより、これらの関係を統計的にテストできます。ここでは、月のダミーです。これらのダミーの共同重要性をテストして、季節性をテストできます。

テストではエラー項が連続して相関していないことが必要なので、この手順は適切ではありません。したがって、これらの季節性ダミーをテストする前に、残りのシリアル相関を削除する必要があります(通常、変数のラグを含めることにより)。テストから適切な結果を得るために修正する必要があるパルス、ブレーク、および他のすべての時系列問題が存在する場合があります。あなたはそれらについて質問しなかったので、私は詳細には立ち入りません(さらに、これらのトピックに関するCVの質問がたくさんあります)。(好奇心を養うために、このシリーズには月間ダミー、それ自体の単一のラグ、およびシリアル相関を取り除くためのシフトコンポーネントが必要です。)


4

季節性は時間とともに変化する場合があり、実際に変化する場合が多いため、要約測定では構造を検出するのに非常に不十分な場合があります。ARIMA係数の過渡性をテストする必要があり、「季節ダミー」の変更が多いことがあります。たとえば、10年の期間では、最初のk年間に6月の影響はなかったかもしれませんが、最後の10-k年には6月の影響の証拠があります。単純な複合6月効果は、効果が時間とともに一定ではなかったため、重要ではない場合があります。同様に、季節のARIMAコンポーネントも変更された可能性があります。誤差の分散が時間とともに一定であることを保証しながら、ローカルレベルのシフトやローカル時間の傾向を含めるように注意する必要があります。GLS /加重最小二乗などの変換や、対数/平方根などのべき乗変換を評価しないでください。元のデータについてですが、暫定モデルからのエラーについて。ガウスの仮定は、観測されたデータとは関係ありませんが、モデルからのエラーと関係があります。これは、非中央カイ二乗変数と中央カイ二乗変数の比率を使用する統計的検定の基盤によるものです。

世界のサンプルシリーズを投稿したい場合は、季節構造の検出につながる徹底的な分析を提供していただければ幸いです。


1

チャーリーの答えはいいです、そしてそれは私が始めたいところです。ACFグラフを使用したくない場合は、存在するk個の期間に対してk-1個のダミー変数を作成できます。次に、ダミー変数(および傾向項)を使用した回帰で、ダミー変数が重要であるかどうかを確認できます。

データが四半期ごとの場合:ダミーQ2はこれが第2四半期であれば1、そうでなければ0ダミーQ3はこれが第3四半期であれば1、そうでなければ0ダミーQ4はこれが第4四半期であれば1、そうでなければ0注四半期1はベースケース(3つのダミーはすべてゼロ)

Minitabで「時系列分解」(「古典的分解」とも呼ばれます)もチェックしてください。最終的には、よりモダンなものを使用することもできますが、これは簡単な開始点です。


0

IrishStatユーザーまたは私の実世界のサンプルシリーズの他のユーザーからのヘルプを提供したいと思います。私は、過去5年間の原油先物価格に基づいて季節指数を作成しようとしています。ここで見ることができる簡単な平均季節を生成するよう管理しまし

しかし、私はローリング年間の季節グラフを再現したい(ローリングは年の開始と終了が同じ値であることを意味していると推測しています)、以下の画像に示すように0から100のスケールです: ここに画像の説明を入力してください

スプレッドシートには、ダウンロード可能な15年間の毎日の価格レベルデータがあります。上記を達成する方法の例またはヒントをいただければ幸いです。


-1

私自身はRに少し慣れていますが、ACF関数についての私の理解は、垂直線が上の破線より上または下の破線より下になると、自己回帰(季節性を含む)が生じるということです。サインのベクトルを作成してみてください


サイン/コサインなどのフィッティングは、一部の物理的/電気的時系列に役立ちますが、MSB、モデル仕様バイアスに注意する必要があります。
IrishStat

1
自己回帰は季節性を意味しません。
イェンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.