PythonはARIMAモデルを構築します

1視覚分析

1.1大気質および空気検出コンポーネントの分析

import pandas as pd
from statsmodels.stats.diagnostic import acorr_ljungbox # 白噪声检验

filename = r'C:\Users\Administrator\Desktop\data.csv'
data = pd.read_csv(filename)
plt.rcParams['font.sans-serif'] = ['SimHei']  ##能显示中文
sns.catplot(x='质量等级', y='SO2', kind='box',data=data)
plt.title('SO2和质量等级的箱线图')

ここに画像の説明を挿入

上図から、中程度の汚染の場合、SO2の含有量の中央値は汚染レベルよりも高く、良好なレベルであることがわかります。SO2の含有量は大気にほとんど影響を与えないと考えるのが妥当です。品質。
-------------------------------------------上記の原則に従って、その他個別空気組成含有量の図。--------------

1.2大気質のさまざまな期間における空気含有量組成の分析

異なる連続期間での空気含有量組成の分析をさらに調査するために、空気の質、時間、および組成が比較され、スクリーニングされます。分析は次のとおりです。

ここに画像の説明を挿入

1.3季節および空気成分の含有量分析

plt.rcParams['font.sans-serif'] = ['SimHei']
sns.catplot(x='季节', y='SO2', kind='box',data=data)
plt.title('SO2和季节的箱线图')

ここに画像の説明を挿入

2時系列ARIMAモデル分析

2.1ARMAモデルの概要

ARMAモデルの正式名称は、自己回帰移動平均モデル(ARMA)です。これは、時系列を研究するための重要な方法です。経済予測の過程では、経済現象の時系列への依存性だけでなく、ランダムな変動の干渉も考慮しており、経済活動の短期的な傾向を比較的正確に予測することができます。近年、より広く使用されている方法。ARMAモデルは、1970年代にアメリカの統計学者GEPBoxとGMJenkinsによって提案された有名な時系列分析モデル、つまり自己回帰移動平均モデルです。ARMAモデルには、自己回帰モデルAR(q)、移動平均モデルMR(q)、および自己回帰移動平均モデルARMA(p、q)の3つの基本タイプがあります。その中で、ARMA(p、q)自己回帰移動平均モデルでは、モデルは次のように表すことができます。

その中で、は自己回帰モデルの次数、は移動平均モデルの中間性、は現在の時系列の値、は自己回帰係数、は移動平均係数、は時間の誤差または偏差を表します。期間中のシリーズ。
2.2傾向分析と単位根検定
AQIシーケンス図の破線分析は以下のとおりであり、AQIには一定の下降傾向があり、時系列データが十分に安定していないため、データは一次差であることがわかります。 。
plt.plot(data [u'AQI '])
plt.title('異なる期間のAQIポリライントレンドチャート ')
ここに画像の説明を挿入
一次差後のシーケンス図

AQIdata = data [u'AQI ']
D_data = AQIdata.diff()。dropna()
plt.plot(D_data)
plt.title('一次差後のさまざまな期間のAQIライントレンドグラフ ' ご覧の
ここに画像の説明を挿入
とおり上の図から、1次の差の後、データは安定する傾向があるため、ADF単位根検定がさらにデータに対して実行され、テストレベルは次のようになります
。print(u 'ホワイトノイズテストの結果差分シーケンスの例: '、acorr_ljungbox(D_data、lags = 1))

一次差
tのAQI単位根検定-統計Prob1 *
拡張ディッキー-フラー検定統計-6.2140.0000
検定臨界値1%レベル-3.527
5%レベル-2.903
10%レベル-2.589
print( '最初の検定結果-順序差シーケンスFor: '、adfuller(D_data))

関連する確率からわかるように、Pは0.01よりはるかに小さいため、シーケンスは静止していると見なされます。
2.3モデルの識別と選択
サンプルの自己相関係数と偏相関係数の値を計算した、主に、プロパティに応じて観測のシーケンスに適合する適切なARMAモデルを選択します。このプロセスは、実際には、サンプルの自己相関係数と偏相関係数のプロパティに従って自己相関次数と移動平均次数を推定するためのものであるため、モデル識別プロセスは次数決定プロセスにもなります。一般的なARMAモデルの次数決定の基本原則を表2に示します。

表2ARMA(p、q)モデル選択の原理
ACF PACFモデルの順序付け
テーリングp次打ち切りAR§モデル
q次打ち切りテーリングMA(q)モデル
テーリングとテーリングARMA(p、q)モデル

Pythonを使用して差分データを操作すると、図に示すように、サンプルの自己相関係数と偏相関係数のグラフを取得できます
ここに画像の説明を挿入
ここに画像の説明を挿入
。1次の対数シーケンスの自己相関係数と偏相関係数のグラフの分析と観察を通じて違い、おおよそのモデルがわかります。2つのモデルを選択できます。最初のタイプでは、自己相関係数はテーリングであり、偏相関係数は1次打ち切りです。このとき、選択したモデルはARIMA(1,1,2)モデルにすることができます。2番目のタイプは、自己相関の2次打ち切り、および偏相関係数の1次打ち切りです。このとき、選択したモデルはARIMA(2,1,1)モデルにすることができます。
2.4パラメーターの推定
適合モデルを選択した、次のステップは、シーケンスの観測値を使用してモデルの口径を決定することです。つまり、モデル内の未知のパラメーターの値を推定します。分散型ARMA(p、q)モデルの場合、次のようになり
ます。

モデルには、不明なパラメーターが合計で含まれています。未知のパラメータの推定方法には、モーメント推定、最尤推定、最小二乗推定の3つがあります。その中で、本論文では、最小二乗推定法を使用してシーケンスのパラメータを推定します。
ARMA(p、q)モデルの場合、覚えておいてください

残余項は次のとおりです。

残差平方和は次のとおりです。

これは、残差平方和が最小に達するパラメーター値のグループの最小推定値です。
次の図に示すように、Python操作を使用して、シーケンスの2つの可能なパラメーター推定図を取得できます。

フィットモデル

from pandas import read_csv
from pandas import datetime
from pandas import DataFrame
from statsmodels.tsa.arima_model import ARIMA
from matplotlib import pyplot

import pandas as pd
filename = r'C:\Users\Administrator\Desktop\data.csv'
data = pd.read_csv(filename)
model = ARIMA(data.AQI, order=(2,1,1))
model_fit = model.fit(disp=0)
print(model_fit.summary())

モデルの結果は次のとおりです。

AQIがYで表されると仮定すると、

model = ARIMA(data.AQI, order=(1,1,2))
model_fit = model.fit(disp=0)
print(model_fit.summary())

結局のところ、AICとBICはモデルARIMA(2,1,1)を選択します。モデルの式の結果は次のとおりです。
ここに画像の説明を挿入

ここに画像の説明を挿入

# plot residual errors


residuals = DataFrame(model_fit.resid)
residuals.plot()
pyplot.show()
residuals.plot(kind='kde')
pyplot.show()
print(residuals.describe())

おすすめ

転載: blog.csdn.net/tandelin/article/details/105399401