[方法]季節調整與hp濾波方法

進行時間序列的數據分析時,季節因素調整與hp濾波是進行數據處理與準備工作的常見必要環節。本文簡要梳理季節調整與hp濾波的應用場景,以及在Python中的實現方法。

1. 季節調整方法

季節調整的目的是剔除季節因素的影響,使得數據平滑。進行季節調整的目的其一是使得不同季節的數據具有可比性,其二是使得一般的時間序列模型能夠適用於數據,例如我們觀察到近期燃油價格上漲,想通過ARMA模型驗證其趨勢性,但燃油上漲的時間窗口在冬季,所以要通過季節調整方法剔除掉季節作用,餘下的價格上漲纔有驗證的意義。

常用的季節調整方法包括:(1)求同比;(2)census X12/X13季節調整;(3)平滑分離方法。

1.1 求同比

Python中求同比非常簡單,例如對於月度時間序列數據M2:

dM2 = M2.pct_change(12)

即可求出同比。

如果是季度數據,將函數參數換爲4即可。而對於中國的某些數據,例如社會零售、固定資產投資等,其1月或2月的數據是沒有的,按照週期長度相應調整參數即可。

求同比方法最爲廣泛使用,但不適用於帶有零值或負值的數據。

1.2 census X12/X13季節調整

這裏的“census”是指美國統計局(United States Census Bureau),所以美國的各種統計數據都是通過這套方法進行季節調整的。這套方法在學術界得到了廣泛的使用。

方法的具體計算步驟,可參考官方網站(X-13ARIMA-SEATS Seasonal Adjustment Program),這裏只簡單給出一個使用案例:

from fredapi import Fred
fred = Fred(api_key='XXXXXX')
import statsmodels.api as sm

M2NS = fred.get_series('M2NS')
M2SL = fred.get_series('M2SL')
X13PATH = 'C:\\WinX13\\x13as\\x13as.exe'
bunch = sm.tsa.x13_arima_analysis(M2NS,x12path = X13PATH)
bunch.seasadj

爲了使用程序,需先在美國統計局網站上下載二進制程序到電腦,通過指定程序路徑的方法在python中調用。在R語言中也要這樣麻煩。

案例程序中從FRED網站下載了美國M2的月度數據,其中M2NS是未進行季節調整的數據,M2SL是季節調整後的數據。

但將bunch.seasadj的調整結果和M2SL進行比較,發現略有差異,這或許是其中使用的某些參數不一致所致。

1.3 平滑分離方法

Python的Statsmodels模塊中提供了一種應用簡單的季節調整方法——seasonal_decompose。

from fredapi import Fred
fred = Fred(api_key='XXXXXX')
import statsmodels.api as sm

M2NS = fred.get_series('M2NS')
M2SL = fred.get_series('M2SL')
m2sd = sm.tsa.seasonal_decompose(M2NS,model='addictive', extrapolate_trend='freq')
m2sd.trend
m2sd.seasonal
m2sd.resid

這樣,M2NS就被分爲了trend、seasonal和resid三個部分。如果模型選擇了'multiplicative'的話,三個部分爲相乘關係。

使用該函數需要注意的是,'extrapolate_trend'參數如果不指定,分解結果中得不到trend和resid值。

和M2SL比較一下會發現,這一方法得到的結果確實比census X12/X13方法差一些。

2. hp濾波

做宏觀經濟研究的應該都比較熟悉hp濾波了。該方法由Hodrick and Prescott(1997)提出,因爲作者的原因被簡稱hp濾波。

from fredapi import Fred
fred = Fred(api_key='XXXXXX')
import statsmodels.api as sm

M2SL = fred.get_series('M2SL')
cycle, trend = sm.tsa.filters.hpfilter(M2SL, lamb=129600)

其中cycle和trend就分別是hp濾波得到的週期項和趨勢項。根據Ravn and Uhlig(2002)的建議,對於年度數據lambda參數取值6.25(1600/4^4),對於季度數據取值1600,對於月度數據取值129600(1600*3^4)。

雖然hp濾波得到的趨勢項一定程度上也剔除了季節因素,但個人習慣還是不要將hp濾波作爲季節調整的方法。該濾波方法的主要應用還是在於提取經濟週期(外生衝擊)。筆者在處理經濟數據時常在季節調整後再用hp濾波計算經濟指標“超預期”的部分。

References

[1] Hodrick, R. J., & Prescott, E. C. (1997). Postwar US business cycles: an empirical investigation. Journal of Money, credit, and Banking, 1-16.

[2] Ravn, M. O., & Uhlig, H. (2002). On adjusting the Hodrick-Prescott filter for the frequency of observations. Review of economics and statistics, 84(2), 371-376.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章