python - 从 statsmodels 调用 volution_filter 时出现类型错误

标签 python numpy statsmodels

我正在努力使用 statsmodelstsa.seasonal_decompose 函数进行时间序列分解,该函数调用 convolution_filter 函数并引发以下类型错误:

TypeError: 'numpy.float64' object cannot be interpreted as an index

例如,当我运行下面的代码(由 StatsModels website 提供)时:

import statsmodels.api as sm

dta = sm.datasets.co2.load_pandas().data
# deal with missing values. see issue
dta.co2.interpolate(inplace=True)

res = sm.tsa.seasonal_decompose(dta.co2)
res.plot()

我得到以下堆栈跟踪:

--------------------------------------------------------------------------- TypeError                                 Traceback (most recent call last) <ipython-input-11-b43f2eda010e> in <module>()
      5 dta.co2.interpolate(inplace=True)
      6 
----> 7 res = sm.tsa.seasonal_decompose(dta.co2)
      8 res.plot()

.../statsmodels/tsa/seasonal.pyc in seasonal_decompose(x, model, filt, freq)
     86             filt = np.repeat(1./freq, freq)
     87 
---> 88     trend = convolution_filter(x, filt)
     89 
     90     # nan pad for conformability - convolve doesn't do it

.../statsmodels/tsa/filters/filtertools.pyc in convolution_filter(x, filt, nsides)
    301                 result[:, i] = signal.convolve(x[:, i], np.r_[0, filt[:, i]],
    302                                                mode='valid')
--> 303     result = _pad_nans(result, trim_head, trim_tail)
    304     if _pandas_wrapper:
    305         return _pandas_wrapper(result)

.../statsmodels/tsa/filters/filtertools.pyc in _pad_nans(x, head, tail)
     26             return x
     27         elif head and tail:
---> 28             return np.r_[[np.nan] * head, x, [np.nan] * tail]
     29         elif tail is None:
     30             return np.r_[[np.nan] * head, x]

TypeError: 'numpy.float64' object cannot be interpreted as an index

我尝试了一些其他示例,并在 Numpy 的 _pad_nans 函数上遇到了同样的问题。我正在使用 Numpy 1.12.0 和 StatsModels 0.6.1。

有谁知道发生了什么吗?

最佳答案

今天早上我遇到了完全相同的错误。该问题是由于 Numpy 1.12.0StatsModels 0.6.1 之间不兼容造成的。它最初显示为记录的警告 here

好消息是它已在 StatsModels 0.8 的候选版本中得到修复。不幸的是,0.8 尚未发布,也没有出现在通常的存储库中。我通过查看 github 的源代码并使用说明自行构建它来使其工作 here

关于python - 从 statsmodels 调用 volution_filter 时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41730036/

相关文章:

python - 为什么 sleep() 在时间模块中而不是在线程模块中?

python - Numpy 字符串数组用字符串填充

python - Pandas - 为分组数据中的每个组分配唯一 ID

python - Python 中的面板回归

python - Statsmodels:使用 ARIMA 实现直接和递归的多步预测策略

python - MongoDB 中的 Mod 运算符

python - 如何获取字典的某些键及其值?

python - 对于 Python2 到 Python3 的代码转换,哪个版本的 Python 和 Django 最适合?

python - Numpy:使用 numpy.ndarray.view 的永久更改?

Python季节分解Freq参数确定