有没有人知道在Python或者更好的R中有没有进行季节性调整的常规程序呢?这里有一个数据集(南非CPI),它往往在一年的前几个月会出现峰值。我想找到除去季节性因素的潜在压力,但是我希望使用一些相对简单的东西,最好是内置于任一语言中,而不是与外部包接口或直接使用Demetra等外部包。
步骤1. 定义数据。
(来源于 http://www.statssa.gov.za/publications/P0141/P0141February2011.pdf)
CPI <- c(102.3, 103.1, 104.3, 105.7, 106.2, 106.6, 107, 108.2, 108.5, 108.9,
108.9, 108.9, 109.2, 109.5, 110.2, 111.1, 111.3, 111.5, 111.5,
112.2, 112.3, 112.4, 112.6, 112.8, 113, 113.5, 114.3)
第2步。计算指数的月度变化,并将其转换为时间序列对象。
dCPI <- ts(CPI[-1] - CPI[-length(CPI)], start=2008, frequency=12)
第三步。使用函数stl()
计算季节性、趋势和残差:
plot(stl(dCPI, "periodic"))
s.window
。有关详细信息,请参见?stl
。 - Andrie