R或Python中的季节性调整

5
有没有人知道在Python或者更好的R中有没有进行季节性调整的常规程序呢?这里有一个数据集(南非CPI),它往往在一年的前几个月会出现峰值。我想找到除去季节性因素的潜在压力,但是我希望使用一些相对简单的东西,最好是内置于任一语言中,而不是与外部包接口或直接使用Demetra等外部包。
2个回答

14

步骤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"))

在此输入图像描述


4
步骤4:然后从数据中减去季节性成分以获得季节调整后的数据。 - Rob Hyndman
请问,“periodic”参数是什么意思,Andrie?另外请注意,dCPI的计算应为: dCPI <- ts((CPI[-1] / CPI[-length(CPI)] - 1), ..... - Thomas Browne
将"periodic"传递给参数s.window。有关详细信息,请参见?stl - Andrie
@Andrie,还有一个问题:stl函数是否进行任何指数或其他加权来增加最近数据的影响力?我已经检查了?stl,似乎没有。 - Thomas Browne


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接