跳到主要內容 跳至補充內容

教學課程 - Qlik Sense 中的時間序列分解

本教學課程呈現使用三個圖表函數以透過 STL 演算法分解時間序列。

本教學課程為每月使用航空公司的乘客數量,使用時間序列資料,以呈現 STL 演算法的功能。STL_TrendSTL_SeasonalSTL_Residual 圖表函數將用來建立視覺化。如需更多關於 Qlik Sense 中時間序列分解的資訊,請參閱 時間序列分解函數

建立應用程式

從建立新的應用程式並匯入資料集開始。

下載此資料集:

教學課程 - 時間序列分解

此檔案包含關於航空公司每月乘客數量的資料。

  1. 從中心按一下建立新應用程式

  2. 開啟應用程式並將 Tutorial - Time series decomposition.csv 拖曳到此。

準備並載入資料

為了讓 Qlik Sense 正確解譯 YearMonth 欄位,您可能需要使用資料管理員,以將欄位辨識為日期欄位,而非具有字串值的欄位。通常會自動處理此步驟,但在此案例中,日期以較不常見的 YYYY-MM 格式呈現。

  1. 在資料管理員中,選取表格並按一下 在資料管理員中編輯表格圖示。

  2. 選取 YearMonth 欄位後,按一下 在資料管理員中編輯表格圖示。 並將欄位類型設定為日期

  3. 輸入格式之下,輸入 YYYY-MM

  4. 顯示格式之下,輸入 YYYY-MM 並按一下確定

    欄位現在應顯示行事曆圖示。

  5. 按一下載入資料

現在您已準備好開始使用 STL 函數,以視覺化方式呈現您的資料。

建立視覺化

接下來,您將會建立兩個折線圖,以呈現 STL_TrendSTL_SeasonalSTL_Residual 圖表函數的功能。

開啟新的工作表並提供標題。

將兩個折線圖新增至工作表。調整大小並重新放置圖表,以符合下圖。

Qlik Sense空白應用程式工作表的格線外框

新應用程式中的空白工作表顯示版面配置和格線大小。

第一個折線圖:趨勢和季節元件

  1. 將標題季節和趨勢新增至第一個折線圖。

  2. 新增 YearMonth 作為維度,並標示日期

  3. 新增下列量值並標示每月乘客

    =Sum(Passengers)

  4. 資料之下,展開每月乘客量值並按一下新增趨勢線

  5. 類型設定為線性

    您將會比較此趨勢線與平滑的趨勢元件輸出。

  6. 新增下列量值以繪製趨勢元件並標示趨勢

    =STL_Trend(SUM(Passengers), 12)

  7. 接下來,新增下列量值以繪製季節元件並標示季節

    =STL_Seasonal(SUM(Passengers), 12)

  8. 外觀 > 呈現之下,將捲軸設定為

  9. 保留預設色彩,或根據您的偏好變更。

第二個折線圖:剩餘元件

接下來,設定第二個折線圖。此視覺化將會顯示時間序列的剩餘元件。

  1. 將折線圖拖曳至工作表。新增標題剩餘

  2. 新增日期作為維度。

  3. 新增下列量值並標示剩餘

    =STL_Residual(SUM(Passengers), 12)

  4. 外觀 > 呈現之下,將捲軸設定為

您的工作表現在應如下所示。

用於航空公司乘客分析的 Qlik Sense 工作表

應用程式中的工作表分別顯示處理的趨勢、季節和剩餘時間序列資料。

解譯並解釋資料

透過 STL 圖表函數,我們可以從時間序列資料取得一些深入資訊。

趨勢元件

趨勢元件中的統計資訊會去季節化。這會更容易查看隨時間變化的一般非重複變動。相較於每月乘客的直線趨勢線,STL 趨勢元件不會擷取變更趨勢。這顯示一些清楚的偏差,同時仍以可讀方式呈現資訊。STL 演算法中的平滑行為有助於擷取此內容。

STL 趨勢圖表中顯示的航空公司乘客數量下降可解釋為 1950 年代經濟衰退影響的一部分。

季節元件

去趨勢化的季節元件隔離整個時間序列的週期性變動,並從該分析部分移除一般趨勢資訊。我們從包括年月彙總的資料集開始。藉由此資料,顯然我們將資料分為一個月的細微程度。 定義期間值 12 後,代表我們在一年 (十二個月) 週期將圖表設定為模型季節模式。

在資料中,航空公司的乘客在夏季月份有重複季節陡增模式,接著在冬季月份減少。這吻合夏季通常是熱門度假和旅遊時間的想法。我們也看見,隨著時間序列,這些季節週期大幅增加。

剩餘元件

剩餘元件的圖表顯示趨勢和季節分解中未擷取的所有資訊。 剩餘元件包括統計雜訊,但也可以指示不正確的 STL 趨勢和季節函數引數設定。一般而言,若訊號的剩餘元件中有週期性振盪,或顯示的資訊明顯不是隨機,通常是時間序列中有資訊目前未在季節或趨勢元件擷取的徵兆。在此情況下,您需要重新造訪每個函數引數的定義,可能也要變更週期性。

平滑器值

由於我們沒有為趨勢和季節平滑器指定任何值,函數將會使用這些參數的預設值。在 Qlik Sense 中,STL 演算法中的預設平滑器值會產生有效結果。因此,在大部分的情況下,這些引數可以留在運算式外。

資訊備註在三個 STL 函數的任一個將季節或趨勢平滑器引數設定為 0,會讓演算法使用預設值,而非值 0。

趨勢平滑器值使用圖表中指定的維度。由於 YearMonth 欄位依月份呈現資料,趨勢平滑器值將會是月數。季節平滑器將會反映定義的週期性。在此案例中,由於我們將一個期間定義為持續十二個月 (一年),季節平滑器值是年數。雖然可能聽起來很混亂,但這其實代表若要尋找季節性,我們需要總覽一些季節。此數字是季節平滑器。

其他實用資訊

有鑒於季節週期幅度隨著時間增加,更進階的分析方法可以使用對數函數建立乘法分解。實際上,可以透過趨勢元件分割季節,以在 Qlik Sense 中建立相對幅度的簡單量值。完成後,我們注意到,隨著時間,每個週期的夏季高峰在相對幅度方面越來越大。不過,冬季低點的幅度沒有隨著時間增加。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!