-
自己回帰モデルの定義自己回帰モデルは、それ自体を回帰変数として使用するプロセスです。つまり、前の期間の特定の時間の確率変数の線形組み合わせを使用して、の特定の時間の確率変数の線形回帰モデルを記述します。未来[1]、これは時間ですシーケンス[2]の一般的な形式。
-
AR-状態空間形式のプロセス
ARモデルは、状態空間モデルの形式で記述できます[4] [5] [6]、次のようにします。
-
ARモデルの解法ARモデルはYule-Walker方程式[3]の形で解くことができます。p次ARモデルには、対応するAR特性多項式と対応するAR特性方程式があると考えてください。
-
ARモデルの例
5モデルパラメータに対するPythonのソリューション
ここでは、モデルを使用するときの自分の気持ちを少し追加します。実際にARモデルを使用して時系列データを予測する場合、最も一般的な2つのセクションがあります。
(1)ARモデルの判断:
この部分主なタスクは、問題がARモデルモデリングに適用可能かどうかを判断し、次数pを大まかに判断することです。
時系列が次の2つの条件を満たす場合:
- ACFにはテーリングプロパティがあります。つまり、kが特定の定数よりも大きい場合、ACF(k)は常に0に等しくなるとは限りません。
- PACFは切り捨てられます。つまり、k> pの場合、PACF(k)は0になります。
2番目の条件は、次数pを決定するためにも使用できます。ランダムエラーの存在を考慮すると、PACFはp次遅延後に厳密に0になることはありませんが、0付近の小さな範囲で変動します。
例:
図から、1、2、4、8、20を使用できることがわかります。さらに理解すると、AR(1)、AR(2)などのモデルのレベル数がわかります。 ARモデルから1つあります。式によると、次数が大きいほど、データ処理が難しくなります。
(2)ARモデルのパラメーター推定:
1。モデル妥当性テスト:
適切なモデルは、観測シーケンス内のほぼすべてのサンプル関連情報を抽出できる必要があります。つまり、残差シーケンスはホワイトノイズシーケンスである必要があります。したがって、モデルの妥当性テストは、残差シーケンスのホワイトノイズテストです。残差シーケンスがホワイトノイズの場合、理論上、任意の次数の遅延の自己相関係数は0です。データの偏差を考慮すると、大部分は0に近い範囲にあり、通常は95%の信頼水準になります(2標準の差の倍)内。
2.パラメーターの有意性検定
このパートの目的は、これらの重要でないパラメーターを削除して、モデル構造を最も簡潔にすることです。モデルパラメーターaj(j = 1、...、p)の
検定の場合、ヌル仮説と対立仮説はそれぞれ次のようになります。検定統計量はt統計量です。
与えられた有意水準αで、検定統計量Tがほとんどの場合ポイントt1-α/2t_1- α/ 2t1−α / 2または統計のP値がα未満の場合、1-αの信頼水準で帰無仮説を棄却でき、モデルパラメーターは有意であると見なされます。逆に、パラメーターが0であるという仮説は、大幅に棄却することはできません。
あなたはPythonプログラムを通り抜けることができます:
import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.tsa.stattools import adfuller
from statsmodels.graphics.tsaplots import plot_acf #自相关图
def adf_test(ts):
'''
参数值:
1.t统计量的值
2.t统计量的P值
3.延迟阶数
4.ADF回归和计算的观测值的个数
5.配合第一个一起看的,是在99%,95%,90%置信区间下的临界的ADF检验的值
'''
adftest = adfuller(ts, autolag='AIC')
adf_res = pd.Series(adftest[0:4],
index=['Test Statistic','p-value','Lags Used','Number of Observations Used'])
for key, value in adftest[4].items():
adf_res['Critical Value (%s)' % key] = value
return adf_res
inputfile = 'D:/Python/Python_learning/Mach_model/AR_model/data.xlsx' #销量及其他属性数据
data = pd.read_excel(inputfile, index_col = u'时间')
#发现图片有明显的递增趋势,可以判断是非平稳的序列
data_drop = data.dropna() #将数据data dropna()
plot_acf(data_drop) #自相关图
plt.show()
adf_res = adf_test(data)
print(adf_res)
手順結果:
ARモデル使用後のパラメータ
Test Statistic 1.816580
p-value 0.998381
Lags Used 10.000000
Number of Observations Used 26.000000
Critical Value (10%) -2.630095
Critical Value (5%) -2.981247
Critical Value (1%) -3.711212
dtype: float64
モデルから、「LagsUsed」は遅延の次数であることがわかります。10は比較的大きな次数です。
同時に、その自己相関グラフを描くことができます。