Lui*_*uel 4 python numpy time-series pandas statsmodels
我有一个pandas数据框的子集,其中包含我想使用statsmodel使用AR或ARIMA模型分析的时间序列:
data_sci = H_Clinton_social_vector.Florida
Run Code Online (Sandbox Code Playgroud)
数据如下所示:
Date
2015-09-28 587
2015-10-05 582
2015-10-12 606
2015-10-19 698
Run Code Online (Sandbox Code Playgroud)
我的AR模型是这样创建的,每周汇总时间序列:
ar_model = sm.tsa.AR(data_sci, freq='W')
ar_model
<statsmodels.tsa.ar_model.AR at 0x1178f5490>
Run Code Online (Sandbox Code Playgroud)
接下来,我想对AR参数进行最大似然估计(MLE)拟合,半年滞后:
ar_res = ar_model.fit(maxlag=26, method='mle')
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
correlate() got an unexpected keyword argument 'old behavior'
Run Code Online (Sandbox Code Playgroud)
由于correlate()参数,我不明白问题是什么,我认为这与数据的自动关联有关.我的数据中有很高的自相关性,所以这应该没问题.
我对stasmodels不太熟悉,并且喜欢从头开始编码AR或ARIMA模型.
经过一些研究,问题是statsmodel与numpy 1.10不兼容.虽然我有最新版本的stasmodel,但是存在自相关的内部问题(与最新版本的numpy不兼容),这需要在Github上安装主代码.
首先,我发现了stasmodels的依赖关系的版本:
Python >= 2.6, including Python 3.x
NumPy >= 1.5.1
SciPy >= 0.9.0
Pandas >= 0.7.1
Patsy >= 0.3.0
Run Code Online (Sandbox Code Playgroud)
所有这些都没关系,所以为了从源代码安装,我需要Cython> = 20.1,我从这里下载了.解压缩,导航到该目录并执行:
python setup.py install
Run Code Online (Sandbox Code Playgroud)
完成后,从Github导航到下载的statsmodel副本,并构建stasmodel:
python setup.py install
Run Code Online (Sandbox Code Playgroud)
你会看到的:
Cythonizing sources
Processing statsmodels/nonparametric/_smoothers_lowess.pyx
Processing statsmodels/nonparametric/linbin.pyx
Processing statsmodels/tsa/kalmanf/kalman_loglike.pyx
Processing statsmodels/tsa/statespace/_statespace.pyx.in
Run Code Online (Sandbox Code Playgroud)
等等一段时间后,你将获得最新版本的statsmodel.现在我的AR模型工作正常,但有一些警告你可以忽略或禁用.
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |