
時間序列分析(Time Series Analysis),可以看作是資料分析中的一種特殊資料型態,是新手資料科學家常常接到的任務,也是日常生活中很常碰到的話題。本篇我們介紹幾種時間序列分析的基礎理論,和實踐中需要注意的事項。
- 為何要做時間序列分析:
- 洞見: insights and patterns
- 預測:forecasting
- 因果關係
- 聲音:音樂與文字的分析
- 時間序列分析的基本理論:
- 分解:趨勢、循環、雜訊
- 過去影響未來:自我迴歸與差分
- 波:傅立葉
為何要做時間序列分析?
- 洞見 :insights and patterns:和所有其他分析一樣,資料分析的主要目的是獲得『洞見』(insights)。從資料中,尋找值得注意的模式(pattern),找出可能的問題,針對問題的原因提出假說,設計方法驗證。
(參考:什麼是 Data Driven?) - 預測: forecast and prediction:時間序列的一個特殊使用情境,就是『預測』。例如預測網站明天、下個月、明年的流量,預測公司運營需要的系統資源 (infra),預測股票走勢,預測天氣。『預測』需要使用很多統計和機器學習相關的技術。
- 因果關係:時間序列也可以用來分析因果關係。所有的統計、數據教學都會告訴你一定要對因果關係的認定非常謹慎:所謂『燕子低飛就要下雨』並不是燕子造成下雨。但是如果有適當的前提(足夠正確的假說結構),分析技術,又沒有更好的替代方案下,因果關係其實是很常見的時間序列應用。當然,所有因果關係的謬誤也會發生在時間序列上,一定要有足夠的敏銳,避免錯誤歸因。
(參考:相關性、因果關係與結構模型) - 聲音:音樂與文字的分析:有些資料結構,例如音樂、語言,本身有時間序列的特色,因此很常使用時間序列的分析技巧。
要注意雖然幾乎所有資料都可以有『時間』的元素,卻不一定需要用到時間序列分析的方法。即使名為『預測』的任務,有時候單純的回歸分析就可以充分完成。學習這些方法,更像是豐富自己的工具箱,需要的時候派上用場。
時間序列分析的基本理論
分解:趨勢、循環與其他
時間序列分析的基本理論就是分解(decomposition),想想我們身邊的人平常如何談論股市或是天氣?我們首先會區分出(1)『(大)趨勢』和相對小範圍的『季節性』或是『循環』,以及(2)在『趨勢』和『循環』以外的『雜訊』(可能是真正有用的訊息也可能是隨機)。
資料分析實際操作,可以採用自訂的數學模型(例如假設大趨勢為線性或飽和函數)獲得『趨勢』;也可以用 moving average(MA)或是 Hodrick–Prescott filter(又叫 HP filter)等等現成的數學模型來獲得較為平滑的曲線作為趨勢。趨勢模型之外的資料殘差(residual),可以近一步做其他分析。
過去影響未來:自我迴歸(auto-correlation)與差分 (differencing)
時間序列的一個特色,是『過去影響未來』;換句話說,時間序列的點與點之間是互相有關的。所謂『一口吃不成胖子』也是這個道理。分析同一序列、點與點之間的關係可以使用『自我迴歸』(auto-correlation)的技巧。
如果希望排除資料的自我相關性,可以使用差分 (differencing) 處理。
『波』的分析
例如傅立葉分析等等,針對『波』的分析,本身是一個比較專業的領域。對於一般資量分析而言,可以借用一些其中的原理。例如:對於已知周長的『波』狀趨勢(每周或每天的循環),可以用『虛數平面』的方法來做特徵工程。
More to come
接下來,我們正在撰寫文章另外介紹時間序列分析常用的模型,以及時間序列分析在工作中實用的藝術(玄學?)。
關於作者
SeaTurtle Careers 顧問團隊。服務範圍包含履歷精修、鍛鍊面試技巧、模擬面試、外商文化、求職、轉換跑道等等職涯發展輔導。我們有豐富的求職輔導經驗,顧問皆具有有外商科技業頂尖公司工作、擔任面試官的經驗,熟悉外商文化並掌握最新商業英文用語。帶你打造圈內人的完美履歷並掌握面試趨勢。
(有面試、履歷、求職、職涯發展等問題,歡迎預約 15分鐘一對一免費諮詢)
有一則關於 時間序列分析(Time Series Analysis)(1):基本理論 的留言