時間序列分析 是什麼?
Time Series Analysis:時間序列分析 的完整解釋
時間序列分析是研究按時間順序排列的數據點序列,以識別模式、趨勢和週期性,並預測未來值。
容易混淆
時間序列分析 vs 一般表格分析 時間序列分析重視時間順序 一般表格分析不一定在乎先後 最關鍵的區別:有沒有時間軸
時間序列分析 vs 趨勢線 趨勢線只是時間序列裡的一種表現 時間序列分析還會看季節性、波動和異常 最關鍵的區別:一條線不是全部
時間序列分析 vs 異常偵測 時間序列分析範圍更大 異常偵測只是其中一種任務 最關鍵的區別:整體方法和單一任務不要混淆
記住這句就好
先看時間順序,再看趨勢、週期和突然的跳點。
實際案例
門市營收 某家店每週收入在週末明顯上升,分析後發現是週末人流造成的週期現象,不是廣告突然失效
設備監控 伺服器 CPU 溫度平常穩定,半夜卻突然飆高,這種偏離原本模式的變化很適合先做異常分析
算法與應用
| 趨勢 | 看長期往上、往下或持平 | 常拿來判斷成長方向 | | 季節性 | 看固定週期重複出現的模式 | 例如週末、月底、節慶 | | 滯後特徵 | 把前幾期資料拿來當特徵 | 這是很多預測模型的核心 | | 預測與異常 | 預測未來值或找出離群點 | 兩者常一起使用 |
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 時間序列分析 | 台灣正式用語 |
| 时间序列分析 | 簡體寫法 |
| Time Series Analysis | 英文原名 |
| 時序分析、時間數列分析 | 常見變體 |
| Forecasting(預測) | 時間序列分析最常見的應用,兩者常被當同義詞使用 |
一條時間序列可以拆成什麼
| 成分 | 意思 | 例子 |
|---|---|---|
| 趨勢(trend) | 長期往上或往下的方向 | 十年來的用電量逐年上升 |
| 季節性(seasonality) | 固定週期的重複起伏 | 每年冬天用電量上升 |
| 循環(cycle) | 週期不固定的起伏 | 景氣循環 |
| 殘差(residual) | 拆完剩下的隨機部分 | 無法解釋的波動 |
拆解方式有加法模型(各成分相加)與乘法模型(各成分相乘)。振幅隨水準放大的資料用乘法模型,或先取對數再用加法模型。
定態與為什麼要在意它
定態(stationarity) 指的是統計性質不隨時間改變:平均值、變異數、自相關結構都固定。
ARIMA 這類傳統模型的理論建立在定態假設上,資料不定態就得先處理。常見手段是差分(後一期減前一期,去掉趨勢)與取對數(穩定變異數)。ARIMA 名稱裡的 I 就是差分(Integrated)的意思。
檢定定態常用 ADF 檢定(Augmented Dickey-Fuller)與 KPSS 檢定,兩個的虛無假設方向相反,一起用比較穩妥。
方法與驗證方式
| 方法 | 適合 |
|---|---|
| 移動平均、指數平滑 | 短期、平穩、要求可解釋 |
| ARIMA / SARIMA | 有明確自相關結構、單變量、資料量中等 |
| Prophet | 有多重季節性與假日效應,需要快速上手 |
| 梯度提升樹(配合滯後特徵) | 有大量外生變數,表格化之後表現往往很強 |
| 深度學習(LSTM、Transformer 類) | 序列多、長度長、有跨序列的共通模式 |
驗證方式一定要用時序切分,不能隨機切。 隨機切等於用未來的資料預測過去,離線指標會漂亮到不真實。正確做法是滾動式驗證(rolling origin):用前 N 期訓練、預測第 N+1 期,往後滾動重複。
一定要有樸素基準線。 最簡單的基準是「明天等於今天」(naive forecast),有季節性時是「今年這個月等於去年這個月」。複雜模型贏不過這條基準線的情況比想像中常見,沒有基準線就不會發現。
情境判斷
Q1(直覺題):你想預估下個月的訂單量,應該先看什麼? → 先看歷史時間序列的趨勢和週期,再決定要不要做預測模型。
Q2(判斷題):你把不同年份的銷售資料混在一起排序,結果還準嗎? → 通常不準,因為時間順序被打亂後,很多時間依賴關係就不見了。
相關術語
常見問題
時間序列分析一定要用深度學習嗎?
不一定,很多情況先用移動平均、ARIMA 或傳統統計法就很夠。
為什麼要特別保留時間順序?
因為未來不能先知道過去之後的資訊,順序錯了就會資訊洩漏。
時間序列和一般回歸有什麼不同?
回歸通常不把資料前後順序當重點,時間序列則把順序本身當成主要訊息。