このプログラムを 5000 回実行し、AR(1) と AR(2) をモデルに適合させようとしているこの割り当てを行っています。まず、時系列を生成する関数を次のように定義しました。
def ts_gen_ar1(size,sigma,alpha1):
wt = np.random.normal(0,sigma**2,size=size)
x = np.zeros(size)
for i in np.arange(1,size):
x[i] = 0.2 + alpha1*x[i-1] + wt[i]
return x
次に、作業に非常に時間がかかる次のステートメントを実行しました
sample_ar1 = []
sample_ar2 = []
for i in range(0,5000):
rt = ts_gen_ar1(2500,1,0.8)
coeff_ar1 = sm.tsa.ARMA(rt,order=(1,0)).fit().params[1]
coeff_ar2 = sm.tsa.ARMA(rt,order=(2,0)).fit().params[1:]
sample_ar1.append(coeff_ar1)
sample_ar2.append(coeff_ar2)
誰かがこれをスピードアップする方法を提案できますか? また、プログラムが MLE が特定の反復で収束に失敗したと言うフィッティング エラーも発生しています。
ありがとう