教學課程 - Qlik Sense 中的時間序列分解
本教學課程呈現使用三個圖表函數以透過 STL 演算法分解時間序列。
本教學課程為每月使用航空公司的乘客數量,使用時間序列資料,以呈現 STL 演算法的功能。STL_Trend、STL_Seasonal 和 STL_Residual 圖表函數將用來建立視覺化。如需更多關於 Qlik Sense 中時間序列分解的資訊,請參閱 時間序列分解函數。
建立應用程式
從建立新的應用程式並匯入資料集開始。
下載此資料集:
此檔案包含關於航空公司每月乘客數量的資料。
請執行下列動作:
-
前往 分析 活動中心的「建立」頁面,並選取資料集。
-
按一下上傳資料檔案。
-
使用對話方塊新增 Tutorial - Time series decomposition.csv。
-
選取空間。
-
按一下上傳並分析。這會以所選空間中的資料建立新的應用程式。
準備並載入資料
為了讓 Qlik Sense 正確解譯 YearMonth 欄位,您可能需要使用資料管理員,以將欄位辨識為日期欄位,而非具有字串值的欄位。通常會自動處理此步驟,但在此案例中,日期以較不常見的 YYYY-MM 格式呈現。
-
在資料管理員中,選取表格並按一下 。
-
選取 YearMonth 欄位後,按一下 並將欄位類型設定為日期。
-
在輸入格式之下,輸入 YYYY-MM。
-
在顯示格式之下,輸入 YYYY-MM 並按一下確定。
欄位現在應顯示行事曆圖示。
-
按一下載入資料。
現在您已準備好開始使用 STL 函數,以視覺化方式呈現您的資料。
建立視覺化
接下來,您將會建立兩個折線圖,以呈現 STL_Trend、STL_Seasonal 和 STL_Residual 圖表函數的功能。
開啟新的工作表並提供標題。開啟進階選項。
將兩個折線圖新增至工作表。調整大小並重新放置圖表,以符合下圖。
第一個折線圖:趨勢和季節元件
請執行下列動作:
-
將標題季節和趨勢新增至第一個折線圖。
-
新增 YearMonth 作為維度,並標示日期。
-
新增下列量值並標示每月乘客:
=Sum(Passengers)
-
在資料之下,展開每月乘客量值並按一下新增趨勢線。
-
將類型設定為線性。
您將會比較此趨勢線與平滑的趨勢元件輸出。
-
新增下列量值以繪製趨勢元件並標示趨勢:
=STL_Trend(SUM(Passengers), 12)
-
接下來,新增下列量值以繪製季節元件並標示季節:
=STL_Seasonal(SUM(Passengers), 12)
-
在外觀 > 呈現之下,將捲軸設定為無。
-
保留預設色彩,或根據您的偏好變更。
第二個折線圖:剩餘元件
接下來,設定第二個折線圖。此視覺化將會顯示時間序列的剩餘元件。
請執行下列動作:
-
將折線圖拖曳至工作表。新增標題剩餘。
-
新增日期作為維度。
-
新增下列量值並標示剩餘:
=STL_Residual(SUM(Passengers), 12)
-
在外觀 > 呈現之下,將捲軸設定為無。
您的工作表現在應如下所示。
解譯並解釋資料
透過 STL 圖表函數,我們可以從時間序列資料取得一些深入資訊。
趨勢元件
趨勢元件中的統計資訊會去季節化。這會更容易查看隨時間變化的一般非重複變動。相較於每月乘客的直線趨勢線,STL 趨勢元件不會擷取變更趨勢。這顯示一些清楚的偏差,同時仍以可讀方式呈現資訊。STL 演算法中的平滑行為有助於擷取此內容。
STL 趨勢圖表中顯示的航空公司乘客數量下降可解釋為 1950 年代經濟衰退影響的一部分。
季節元件
去趨勢化的季節元件隔離整個時間序列的週期性變動,並從該分析部分移除一般趨勢資訊。我們從包括年月彙總的資料集開始。藉由此資料,顯然我們將資料分為一個月的細微程度。 定義期間值 12 後,代表我們在一年 (十二個月) 週期將圖表設定為模型季節模式。
在資料中,航空公司的乘客在夏季月份有重複季節陡增模式,接著在冬季月份減少。這吻合夏季通常是熱門度假和旅遊時間的想法。我們也看見,隨著時間序列,這些季節週期大幅增加。
剩餘元件
剩餘元件的圖表顯示趨勢和季節分解中未擷取的所有資訊。 剩餘元件包括統計雜訊,但也可以指示不正確的 STL 趨勢和季節函數引數設定。一般而言,若訊號的剩餘元件中有週期性振盪,或顯示的資訊明顯不是隨機,通常是時間序列中有資訊目前未在季節或趨勢元件擷取的徵兆。在此情況下,您需要重新造訪每個函數引數的定義,可能也要變更週期性。
平滑器值
由於我們沒有為趨勢和季節平滑器指定任何值,函數將會使用這些參數的預設值。在 Qlik Sense 中,STL 演算法中的預設平滑器值會產生有效結果。因此,在大部分的情況下,這些引數可以留在運算式外。
趨勢平滑器值使用圖表中指定的維度。由於 YearMonth 欄位依月份呈現資料,趨勢平滑器值將會是月數。季節平滑器將會反映定義的週期性。在此案例中,由於我們將一個期間定義為持續十二個月 (一年),季節平滑器值是年數。雖然可能聽起來很混亂,但這其實代表若要尋找季節性,我們需要總覽一些季節。此數字是季節平滑器。
其他實用資訊
有鑒於季節週期幅度隨著時間增加,更進階的分析方法可以使用對數函數建立乘法分解。實際上,可以透過趨勢元件分割季節,以在 Qlik Sense 中建立相對幅度的簡單量值。完成後,我們注意到,隨著時間,每個週期的夏季高峰在相對幅度方面越來越大。不過,冬季低點的幅度沒有隨著時間增加。