我正在做这个任务,我试图运行这个程序 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 无法在某些迭代中收敛时,我也遇到了拟合错误。
谢谢