python前書き時系列は、将来の価値を予測する機会を提供します。以前の値に基づいて、時系列を使用して、経済学、天気、およびキャパシティプランニングの傾向を予測できます。時系列データの特定のプロパティは、通常、特殊な統計手法が必要であることを意味します。このチュートリアルでは、時系列の信頼できる予測を作成することを目指します。概念を紹介して議論することから始め、ARIMAとして知られる時系列予測に最も一般的に使用される方法の1つを適用します。*として知られています。ここでは、主にARIMAコンポーネントに注目します。これは、時系列データを近似して、時系列の将来のポイントをよりよく理解し、予測するために使用されます。前提条件このガイドでは、ローカルデスクトップまたはリモートサーバーで時系列分析を行う方法について説明します。2GBのメモリ*が必要になります。このチュートリアルを最大限に活用するには、時系列と統計に関するある程度の知識が役立ちます。*を使用してデータを操作します。[インストールとセットアップのチュートリアルに従ってください。3用Jupyterノートブック]。/bin/activateここから、プロジェクト用の新しいディレクトリを作成しましょう。これを「」と呼び、ディレクトリに移動します。」ライブラリが必要です。+`ライブラリは標準のPythonライブラリセットに含まれているため、インストールする必要はありません。+`でインストールできます。+`をインストールできます。それらの依存関係もインストールされます。matplotlibこの時点で、インストールされたパッケージの使用を開始するように設定されました。Notebookを起動します。3ノートブックを作成]これにより、ノートブックが開きます。[ライブラリのインポート]から始めます。style]のfivethirtyeightを定義しました。1958年3月から2001年12月にかけてCO2サンプルを収集した、「ハワイ州マウナロア天文台の連続大気サンプルからの大気CO2」というデータセットを使用します。このデータを次のように取り込むことができます。data.data先に進む前に、データを少し前処理しましょう。週単位のデータは時間が短いため、取り扱いが難しい場合があります。代わりに月単位の平均を使用してみましょう。」関数を使用して変換を行います。function]を使用して、時系列に欠損値がないことを確認します。371.020000データの視覚化としてこの時系列eを調べてみましょう。[図1:CO2レベルの時系列]データをプロットすると、いくつかの識別可能なパターンが表示されます。時系列には明らかな季節性パターンがあり、全体的に増加傾向にあります。[時間ガイド上記のステップがより詳細に説明されています。データを変換して調査したので、ARIMAを使用した時系列予測に進みましょう。ARIMAは、時系列の将来のポイントをよりよく理解または予測するために、時系列データに適合できるモデルです。ARIMA(p、d、q)+」という表記で示されます。これら3つのパラメーターを合わせて、データセットの季節性、傾向、およびノイズを説明します。+`はモデルの_auto-regressive_部分です。これにより、過去の値の効果をモデルに組み込むことができます。直観的には、これは過去3日間暖かかった場合、明日は暖かくなる可能性が高いと述べることに似ています。+`はモデルの_統合された部分です。時系列に適用するために、現在の値から減算する過去の時点の数)。直観的には、これは、過去3日間の気温の差が非常に小さい場合、明日は同じ気温になる可能性が高いと述べることに似ています。+`はモデルの_移動平均_の部分です。これにより、過去の過去の時点で観測されたエラー値の線形結合としてモデルのエラーを設定できます。ARIMAを使用します。ここで、「(p、d、q)」は上記の非季節パラメータであり、「(P、D、Q)」は同じ定義に従いますが、時系列の季節成分に適用されます。」という用語は、時系列の周期性です(四半期ごとに「+4」、年ごとに「12」など)。季節のARIMAメソッドは、複数のチューニングパラメーターが関係しているため、気が遠くなる可能性があります。次のセクションでは、季節的なARIMA時系列モデルの最適なパラメーターセットを識別するプロセスを自動化する方法について説明します。`の値を見つけることです。この目標を達成するための多くのガイドラインとベストプラクティスがありますが、ARIMAモデルの正しいパラメーター化は、ドメインの専門知識と時間を必要とする骨の折れる手動プロセスになる可能性があります。[この問題を解決する自動化された方法]を提供していますが、まだ移植されていませんPythonへ。+`時系列モデルの最適なパラメーター値をプログラムで選択することにより、この問題を解決します。「グリッド検索」を使用して、パラメーターのさまざまな組み合わせを繰り返し探索します。SARIMAX()+`関数で適合させ、その全体的な品質を評価します。パラメータの全体像を調べた後、最適なパラメータのセットが、関心のある基準に対して最高のパフォーマンスをもたらすものになります。評価するパラメータのさまざまな組み合わせを生成することから始めましょう。12)上記で定義したパラメーターのトリプレットを使用して、さまざまな組み合わせでARIMAモデルをトレーニングおよび評価するプロセスを自動化できます。Learningでは、このプロセスはモデル選択のグリッド検索(またはハイパーパラメーター最適化)として知られています。さまざまなパラメーターに適合した統計モデルを評価および比較する場合、データに適合しているか、または将来のデータポイントを正確に予測する能力に基づいて、それぞれをランク付けできます。+(赤池情報量基準)値を使用します。`を使用して適合したARIMAモデルで便利に返されます。」は、モデルの全体的な複雑さを考慮しながら、モデルがデータにどの程度適合するかを測定します。多くの特徴を使用しながらデータに非常によく適合するモデルには、同じ適合度を達成するために少ない特徴を使用するモデルよりも大きなAICスコアが割り当てられます。+」値を生成するモデルを見つけることに関心があります。ARIMAモデルに適合させます。`(P、D、Q、S)`季節成分を指定しますARIMAモデル。+`スコアを出力します。continueパラメーターの組み合わせによっては数値の指定ミスを引き起こす可能性があるため、警告メッセージの過負荷を避けるために、警告メッセージを明示的に無効にしました。これらの誤った仕様もエラーにつながり、例外をスローする可能性があるため、これらの例外をキャッチし、これらの問題を引き起こすパラメーターの組み合わせを無視するようにします。上記のコードでは次の結果が得られます。これには時間がかかる場合があります。+`値をもたらすことを示唆しています。したがって、これは検討したすべてのモデルの中で最適なオプションであると考えるべきです。ステップ5-ARIMA時系列モデルのあてはめグリッド検索を使用して、時系列データに最適なモデルを生成する一連のパラメーターを特定しました。この特定のモデルをさらに詳細に分析することができます。+」モデルにプラグインすることから始めます。`属性は大量の情報を返しますが、係数のテーブルに注意を集中します。重要度)および各機能が時系列に与える影響。`列は、各特徴の重みの重要性を示しています。ここでは、各重みのp値は「+0.05」よりも低いか、それに近いため、モデルにすべての重みを保持するのが妥当です。季節性ARIMAモデル(およびその他のモデル)をフィッティングする場合、モデル診断を実行して、モデルによって行われた仮定に違反していないことを確認することが重要です。+`オブジェクトを使用すると、モデル診断をすばやく生成し、異常な動作を調査できます。[図2:モデル診断]私たちの主な関心事は、モデルの残差が無相関で、平均ゼロで正規分布することを保証することです。季節性ARIMAモデルがこれらの特性を満たさない場合、さらに改善できることを示す良い兆候です。この場合、モデル診断により、モデルの残差は次のことに基づいて正規分布することが示唆されます。N(0,1)+)と密接に続いていることがわかります。平均値が「0」で標準偏差が「1」の正規分布)。これは、残差が正規分布していることを示しています。N(0、1)+`を使用した標準正規分布。繰り返しますが、これは残差が正規分布していることを強く示しています。経時的な残差(左上のプロット)は明らかな季節性を示さず、ホワイトノイズのように見えます。correlogram)は、右下のプロットであり、時系列残差はそれ自体の時間差バージョンとの相関が低いことを示しています。これらの観察により、モデルは時系列データを理解し、将来の値を予測するのに役立つ満足のいく近似を生成すると結論付けられます。満足のいく適合がありますが、季節のARIMAモデルのいくつかのパラメーターを変更して、モデルの適合を改善することができます。グリッド検索ではパラメーターの組み合わせの制限されたセットのみが考慮されているため、グリッド検索を広げるとより良いモデルが見つかる場合があります。時系列のモデルを取得し、これを使用して予測を作成できます。予測値を時系列の実際の値と比較することから始めます。これは、予測の精度を理解するのに役立ちます。conf_int()+`属性により、時系列の予測の値と関連する信頼区間を取得できます。pred.conf_int()上記のコードでは、1998年1月に予測を開始する必要があります。+`引数により、1ステップ先の予測が生成されます。各ポイントでの予測は、そのポイントまでの完全な履歴を使用して生成されます。CO2時系列の実際の値と予測値をプロットして、どの程度うまくいったかを評価できます。日付インデックスをスライスすることにより、時系列の終わりにズームインしたことに注目してください。[図3:CO2レベルの静的予測]全体として、予測は真の値と非常によく一致しており、全体的な増加傾向を示しています。予測の精度を定量化することも役立ちます。予測の平均誤差を要約するMSE(平均二乗誤差)を使用します。各予測値について、真の値までの距離を計算し、結果を二乗します。全体の平均を計算するときに正/負の差が互いに相殺されないように、結果を二乗する必要があります。0.07+」の値を生成します。これは、0に近いため非常に低い値です。MSEが0の場合、推定器はパラメーターの観測値を完全な精度で予測します。これは理想的なシナリオですが、通常は不可能です。動的予測を使用すると、真の予測力をより適切に表すことができます。この場合、特定の時点までの時系列からの情報のみを使用し、その後、以前の予測された時点からの値を使用して予測が生成されます。以下のコードチャンクでは、1998年1月以降の動的予測と信頼区間の計算を開始するように指定しています。pred_dynamic.conf_int()時系列の観測値と予測値をプロットすると、動的予測を使用している場合でも全体的な予測が正確であることがわかります。すべての予測値(赤線)はグラウンドトゥルース(青線)にほぼ一致しており、予測の信頼区間内に十分収まっています。[図4:CO2レベルの動的予測]ここでも、MSEを計算することにより、予測の予測パフォーマンスを定量化します。1.01動的予測から得られた予測値のMSEは1.01です。これは、時系列からの履歴データが少ないことに依存していることを考えると、1つ先のステップよりもわずかに高くなります。一歩先の予測と動的予測の両方により、この時系列モデルが有効であることが確認されます。時系列予測に関する関心の多くは、将来の値を前もって予測する機能です。ステップ7-予測の作成と視覚化このチュートリアルの最後のステップでは、季節のARIMA時系列モデルを活用して将来の値を予測する方法について説明します。get_forecast()+`属性は、指定されたステップ数先の予測値を計算できます。pred_uc.conf_int()このコードの出力を使用して、時系列と将来値の予測をプロットできます。[図5:時系列と将来価値の予測]生成した予測と関連する信頼区間の両方を使用して、時系列をさらに理解し、予想される内容を予測できるようになりました。私たちの予測は、時系列が安定したペースで増加し続けると予想されることを示しています。将来に向かってさらに予測すると、私たちの価値に自信がなくなるのは自然なことです。これは、モデルによって生成された信頼区間に反映されます。信頼区間は、将来に進むにつれて大きくなります。結論このチュートリアルでは、Pythonで季節限定ARIMAモデルを実装する方法を説明しました。+`ライブラリを広範に使用し、モデル診断の実行方法と、CO2時系列の予測の作成方法を示しました。他にも試すことができるものがいくつかあります。動的予測の開始日を変更して、予測の全体的な品質にどのように影響するかを確認します。パラメーターの組み合わせをさらに試して、モデルの適合度を改善できるかどうかを確認してください。別のメトリックを選択して、最適なモデルを選択します。+`メジャーを使用して最適なモデルを見つけましたが、代わりにサンプル外平均二乗誤差を最適化することもできます。練習するために、別の時系列データセットを読み込んで、独自の予測を作成することもできます。