使用 statsmodels 在 Python 中分解时间序列

问题描述 投票:0回答:1

我正在尝试分解时间序列。数据集是 2x8638 的矩阵。

代码如下:

import numpy as np
import pandas as pd
import matplotlib.pylab as plt
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

df1 = pd.read_csv("u_x_ts.csv").set_index("0")
df1.head()

enter image description here

from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df1, model='multiplicative')
result.plot()
plt.show()

然后python返回错误信息:

ValueError:乘法季节性不适用于零和负值

我认为

statsmodels
不支持这么小的值,因为在系列开始时这些值太小。 但如果有人知道解决这个问题的方法,我很感激。

python time-series statsmodels
1个回答
0
投票

如果您想将seasonal_decompose与负值一起使用,则必须使用additif模型,如下所示:

from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df1, model='additif')
result.plot()
plt.show()
© www.soinside.com 2019 - 2024. All rights reserved.