Python Statsmodels x13_arima_analysis:AttributeError:' dict'对象没有属性' iteritems'

时间:2016-04-29 18:36:35

标签: python time-series statsmodels

第1步:我的示例数据

import pandas as pd
from pandas import Timestamp

s = pd.Series(
    {Timestamp('2013-03-01 00:00:00'): 838.2,
 Timestamp('2013-04-01 00:00:00'): 865.17,
 Timestamp('2013-05-01 00:00:00'): 763.0,
 Timestamp('2013-06-01 00:00:00'): 802.99,
 Timestamp('2013-07-01 00:00:00'): 875.56,
 Timestamp('2013-08-01 00:00:00'): 754.4,
 Timestamp('2013-09-01 00:00:00'): 617.48,
 Timestamp('2013-10-01 00:00:00'): 994.75,
 Timestamp('2013-11-01 00:00:00'): 860.86,
 Timestamp('2013-12-01 00:00:00'): 786.66,
 Timestamp('2014-01-01 00:00:00'): 908.48,
 Timestamp('2014-02-01 00:00:00'): 980.88,
 Timestamp('2014-03-01 00:00:00'): 1453.73,
 Timestamp('2014-04-01 00:00:00'): 1473.33,
 Timestamp('2014-05-01 00:00:00'): 1480.44,
 Timestamp('2014-06-01 00:00:00'): 1433.91,
 Timestamp('2014-07-01 00:00:00'): 1386.58,
 Timestamp('2014-08-01 00:00:00'): 1437.35,
 Timestamp('2014-09-01 00:00:00'): 1207.07,
 Timestamp('2014-10-01 00:00:00'): 973.3,
 Timestamp('2014-11-01 00:00:00'): 962.18,
 Timestamp('2014-12-01 00:00:00'): 717.69,
 Timestamp('2015-01-01 00:00:00'): 873.06,
 Timestamp('2015-02-01 00:00:00'): 881.65,
 Timestamp('2015-03-01 00:00:00'): 1252.92,
 Timestamp('2015-04-01 00:00:00'): 866.94,
 Timestamp('2015-05-01 00:00:00'): 1498.05,
 Timestamp('2015-06-01 00:00:00'): 1282.31,
 Timestamp('2015-07-01 00:00:00'): 1411.33,
 Timestamp('2015-08-01 00:00:00'): 1379.05,
 Timestamp('2015-09-01 00:00:00'): 1334.52,
 Timestamp('2015-10-01 00:00:00'): 1231.86,
 Timestamp('2015-11-01 00:00:00'): 1088.14,
 Timestamp('2015-12-01 00:00:00'): 967.35,
 Timestamp('2016-01-01 00:00:00'): 1266.37,
 Timestamp('2016-02-01 00:00:00'): 1278.79,
 Timestamp('2016-03-01 00:00:00'): 1497.8,
 Timestamp('2016-04-01 00:00:00'): 1352.27},
    name='Cost')

第2步:我将X-13ARIMA-SEATS Seasonal Adjustment Program下载到Windows操作系统中的下载文件夹

第3步:在Python的IDLE IDE中,我将当前路径更改为此程序所在的位置:

import os
os.chdir(r'C:\Users\owner\Downloads\x13asall_V1.1_B26\x13as')

第4步:我导入statsmodel并尝试运行x13_arima_analysis,如下所示:

import statsmodels.api as sm
sm.tsa.x13_arima_analysis(s)

收到错误:

Traceback (most recent call last):
  File "<pyshell#104>", line 1, in <module>
    sm.tsa.x13_arima_analysis(s)
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 417, in x13_arima_analysis
    spec_obj = pandas_to_series_spec(endog)
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 310, in pandas_to_series_spec
    stperiod))
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 271, in __init__
    title=title, name=series_name,
  File "C:\Python34\lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels\tsa\x13.py", line 218, in set_options
    for key, value in kwargs.iteritems():
AttributeError: 'dict' object has no attribute 'iteritems'

请注意,我安装了unofficial binaries个statsmodel(因为它无法在我的Windows机器上安装)所以我不认为我可以改变实际的来源,但我确实看到了问题是here on this line

我这样做错了还是statsmodels中的错误?

我有哪些版本的statsmodels?的 0.6.1

>>> sm.__spec__
ModuleSpec(name='statsmodels.api', loader=<_frozen_importlib.SourceFileLoader object at 0x0000000007193470>, origin='C:\\Python34\\lib\\site-packages\\statsmodels-0.6.1-py3.4-win-amd64.egg\\statsmodels\\api.py')

1 个答案:

答案 0 :(得分:0)

我不确定是否应该关闭此问题或将其保留以供其他任何努力让x13_arima_analysis工作的人参考。总而言之,我通过更改几行来实现它...但最后,我建议首先访问Github,并替换位于x13.py上的C:\Python34\Lib\site-packages\statsmodels-0.6.1-py3.4-win-amd64.egg\statsmodels‌​\tsa文件。使用latest Github code的机器查看它是否为您修复了它。它为我解决了。

行动中的工作示例:

import pandas as pd
from pandas import Timestamp
import os
import matplotlib.pyplot as plt
import statsmodels.api as sm

PATH =r'C:\Users\owner\Downloads\x13asall_V1.1_B26\x13as'

os.chdir(PATH)

s = pd.Series(
    {Timestamp('2013-03-01 00:00:00'): 838.2,
 Timestamp('2013-04-01 00:00:00'): 865.17,
 Timestamp('2013-05-01 00:00:00'): 763.0,
 Timestamp('2013-06-01 00:00:00'): 802.99,
 Timestamp('2013-07-01 00:00:00'): 875.56,
 Timestamp('2013-08-01 00:00:00'): 754.4,
 Timestamp('2013-09-01 00:00:00'): 617.48,
 Timestamp('2013-10-01 00:00:00'): 994.75,
 Timestamp('2013-11-01 00:00:00'): 860.86,
 Timestamp('2013-12-01 00:00:00'): 786.66,
 Timestamp('2014-01-01 00:00:00'): 908.48,
 Timestamp('2014-02-01 00:00:00'): 980.88,
 Timestamp('2014-03-01 00:00:00'): 1453.73,
 Timestamp('2014-04-01 00:00:00'): 1473.33,
 Timestamp('2014-05-01 00:00:00'): 1480.44,
 Timestamp('2014-06-01 00:00:00'): 1433.91,
 Timestamp('2014-07-01 00:00:00'): 1386.58,
 Timestamp('2014-08-01 00:00:00'): 1437.35,
 Timestamp('2014-09-01 00:00:00'): 1207.07,
 Timestamp('2014-10-01 00:00:00'): 973.3,
 Timestamp('2014-11-01 00:00:00'): 962.18,
 Timestamp('2014-12-01 00:00:00'): 717.69,
 Timestamp('2015-01-01 00:00:00'): 873.06,
 Timestamp('2015-02-01 00:00:00'): 881.65,
 Timestamp('2015-03-01 00:00:00'): 1252.92,
 Timestamp('2015-04-01 00:00:00'): 866.94,
 Timestamp('2015-05-01 00:00:00'): 1498.05,
 Timestamp('2015-06-01 00:00:00'): 1282.31,
 Timestamp('2015-07-01 00:00:00'): 1411.33,
 Timestamp('2015-08-01 00:00:00'): 1379.05,
 Timestamp('2015-09-01 00:00:00'): 1334.52,
 Timestamp('2015-10-01 00:00:00'): 1231.86,
 Timestamp('2015-11-01 00:00:00'): 1088.14,
 Timestamp('2015-12-01 00:00:00'): 967.35,
 Timestamp('2016-01-01 00:00:00'): 1266.37,
 Timestamp('2016-02-01 00:00:00'): 1278.79,
 Timestamp('2016-03-01 00:00:00'): 1497.8,
 Timestamp('2016-04-01 00:00:00'): 1352.27},
    name='Cost')


res = sm.tsa.x13_arima_analysis(s)
res.plot()
plt.show()

enter image description here