作者:黃天元,復旦大學博士在讀,熱愛資料科學與開源工具(R),致力於利用資料科學迅速積累行業經驗優勢和科學知識發現,涉獵內容包括但不限於資訊計量、機器學習、資料視覺化、應用統計建模、知識圖譜等,著有《R語言資料高效處理指南》(

《R語言資料高效處理指南》(黃天元)【摘要 書評 試讀】- 京東圖書

)。知乎專欄:

R語言資料探勘。

郵箱:[email protected].歡迎合作交流。

時間序列有一些比較常見的特徵,包括:

1、趨勢性(Trend):即在一定時間內的單調性,一般來說斜率是固定的。

2、季節性(Seasonal):固定長度的變化,就像春夏秋冬的溫度變化一樣。

3、週期性(Cyclic):與季節性很像,但是它的波動的時間頻率不是固定的。

以上都是基本概念,重點是區分季節性和週期性。事物都是盛極必衰,但是跌落谷底之後又反彈,這種往復的運動,被稱之為週期性。但是像日出日落、春夏秋冬、週六日放假這種節律如果能夠固定下來,那麼這種固定的往復變化就被成為季節性。

對季節性資料的視覺化,有一定的方法,比如對於a10這份資料(1991年到2008年月尺度的抗糖尿病藥物銷量),就可以做兩種圖。第一種是總體概況:

ggseasonplot(a10, year。labels=TRUE, year。labels。left=TRUE) +

ylab(“$ million”) +

ggtitle(“Seasonal plot: antidiabetic drug sales”)

R語言時間序列分析(三):趨勢性、季節性、週期性

這個圖的原則是,以我們ts的frequency作為一個單位來表示。因為這裡是12月1年的月尺度資料,因此frequency其實是12,就會用月來顯示資料。這裡基於年進行分組。

第二種視覺化方法是基於月進行分組,然後檢視不同年份每個月的趨勢和均值:

ggsubseriesplot(a10) +

ylab(“$ million”) +

ggtitle(“Seasonal subseries plot: antidiabetic drug sales”)

R語言時間序列分析(三):趨勢性、季節性、週期性

這樣可以看到每個月基本的均值。具體的應用需要見仁見智,我們可以看到的是1月份很高,後面就開始急劇降低,然後又慢慢升高,據說是因為醫療保險政策所致。

參考連結:

Forecasting: Principles and Practice