尝试对频率不规则的时间序列数据应用季节性分解。看起来像这样:
modal_price
Period
2014-11-01 1469
2015-01-01 1258
2015-03-01 1112
2015-04-01 1373
2015-06-01 1370
2015-07-01 1406
2015-08-01 1520
2015-09-01 1860
2015-10-01 1436
2015-11-01 1455
当我使用df.index.freq
时,freq变为None。当我使用如下的seasonal_decompose函数时:
seasonal_decompose(x, model = 'additive')
显示错误
ValueError: You must specify a freq or x must be a pandas object with a timeseries index with a freq not set to None.
需要帮助。
答案 0 :(得分:2)
我也遇到了同样的问题,并通过指定频率参数来解决它。
seasonal_decompose(Ts, model = 'additive', freq=1)
我希望能有所帮助。 我发现https://www.analyticsvidhya.com/blog/2016/02/time-series-forecasting-codes-python/有帮助。
答案 1 :(得分:0)
Statsmodel需要分解序列的频率。
通常,该频率出现在索引的元数据中(无论是每天,每周,每月等等)。但是,您没有,这就是为什么它会向您显示该错误。
至少有两种方法可以解决此问题(让我们考虑名为df
的{{1}})
•一个@ A.Abs提到,您将在{_ {1}}之类的季节性分解中传递x
。
•将某人的索引列的频率设置为freq
,其中seasonal_decompose(x['Price'], freq=365)
对应于一天(每天的频率)。
有关可以传递给freq关键字参数的频率字符串(或偏移别名)的更多信息,请检查this answer或this Pandas Documentation page。