我有一个pandas数据帧的子集,其中包含我要使用statsmodel使用AR或ARIMA模型分析的时间序列:
data_sci = H_Clinton_social_vector.Florida
数据如下:
^{pr2}$我的AR模型是这样创建的,每周汇总时间序列:
ar_model = sm.tsa.AR(data_sci, freq='W')
ar_model
<statsmodels.tsa.ar_model.AR at 0x1178f5490>
下一步,我想对AR参数进行最大似然估计(MLE)拟合,滞后半年:
ar_res = ar_model.fit(maxlag=26, method='mle')
我得到以下结果:
correlate() got an unexpected keyword argument 'old behavior'
我不明白问题出在哪里,我假设这与数据的自相关有关,这是由于correlate()参数造成的。我的数据有很高的自相关,所以这应该没问题。在
我不太熟悉stasmodels,我更喜欢避免从头开始编写AR或ARIMA模型。在
经过一些研究,问题是statsmodel与nump1.10的不兼容。虽然我有statmodel的最新版本,但是自相关(与最新版本的numpy不兼容)有一个内部问题,需要在Github安装主代码。在
首先,我发现了我所拥有的stasmodels依赖关系的版本:
所有这些都没问题,所以为了从源代码安装,我需要Cython>;=20.1,这是我从here下载的。解压缩,导航到该目录并执行以下操作:
^{pr2}$完成后,从Github导航到下载的statsmodel副本,并构建statmodel:
^{pr2}$您将看到:
等等,过一段时间,你就会有最新版本的statsmodel了。现在,我的AR模型工作得很好,尽管有些警告可以忽略或禁用。在
您需要将
numpy
降级到1.9.2
或更低版本,只是经过测试,代码不再出现此错误。这是由于调用_presample_varcov
中的np.correlate()
,其中statsmodels.tsa.armodel
计算预采样方差协方差的倒数。在Numpy
在2015年6月(see docs)左右反对使用multiarray.correlate()
(即old behavior
),但是{0.6.1
从2014年12月开始)。在相关问题 更多 >
编程相关推荐