我是时间序列分析的新手,这可能是一个愚蠢的问题。
我正在尝试生成趋势,季节和剩余时间序列元素,但是,我的时间戳索引实际上是字符串(比如说“ window1”,“ window2”,“ window3”)。现在,当我尝试应用seasonal_decompose(data, model='multiplicative')
时,它返回一个错误,因为“索引”对象没有属性“ inferred_freq”,这是可以理解的。
但是,如何通过将字符串保留为时间序列索引来解决此问题?
答案 0 :(得分:0)
基本上,您需要在此处指定freq
参数。
假设您具有以下数据集
s = pd.Series([102,200,322,420], index=['window1', 'window2', 'window3','window4'])
s
>>>window1 102
window2 200
window3 322
window4 420
dtype: int64
现在指定freq
参数,在这种情况下,我使用freq = 1
plt.style.use('default')
plt.figure(figsize = (16,8))
import statsmodels.api as sm
sm.tsa.seasonal_decompose(s.values,freq=1).plot()
result = sm.tsa.stattools.adfuller(s,maxlag=1)
plt.show()
我不允许发布图像,但是我希望这段代码能解决您的问题。此外,在此maxlag
默认情况下会给我的数据集错误,因此我使用了maxlag=1
。确定其值,请对maxlag
使用默认值。