R學習日記——分解時間序列(季節性數據)


上篇說明了分解非季節性數據的方法。就是通過TTS包的SMA()函數進行簡單移動平均平滑。讓看似沒有規律或沒有趨勢的曲線變的有規律或趨勢。然后再進行時間序列曲線的回歸預測。

本次,開始分解季節性時間序列。
 
一個季節性時間序列中會包含三部分,趨勢部分、季節性部分和無規則部分。分解時間序列就是要把時間序列分解成這三部分,然后進行估計。
 
對於可以使用相加模型進行描述的時間序列中的趨勢部分和季節性部分,我們可以使用 R中的“decompose()” 函數來估計。這個函數可以估計出時間序列中趨勢的、季節性的和不規則的部分,而此時間序列須是可以用相加模型描述的。  

“decompose()” 這個函數返回的結果是一個列表對象, 里面包含了估計出的季節性部分, 趨勢部分和不規則部分, 他們分別對應的列表對象元素名為“seasonal” 、 “trend” 、 和“random” 。 

示例:紐約每月出生人口數量是在夏季有峰值、 冬季有低谷的時間序列。
 
> births <- scan("http://robjhyndman.com/tsdldata/data/nybirths.dat") Read 168 items > birthstimeseries <- ts(births, frequency=12, start=c(1946,1)) > ts.plot(birthstimeseries)

> birthcomponents <- decompose(birthstimeseries) > plot(birthcomponents)
而當你需要剔除某個趨勢時(我們就去掉季節因素),我們可以運用減法去掉該因素,下圖就是去掉季節性因素后的修正序列。
> birthstimeseriesseasonallyadjusted<-birthstimeseries-birthcomponents$seasonal > plot(birthstimeseriesseasonallyadjusted)
留下記錄,供日后復習應用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM