SAS Visual Forecasting

SAS 預測分析 (4)

教學目標

初步了解 SAS Visual Forecasting 預測分析的基本概念。

重點概念

首先我們主要使用管線為專案建立可執行的流程,每個管線皆包含一組節點,這些節點在專案中按照順序執行,因此管線主要是結構化分析的工作流程,並且透過範本實作快速開發和可重複的結果,同時我們能夠自行定義,並且進行分享。然而在 SAS Visual Forecast 主要有四種預測管線範本可供使用,分別為:

  1. 自動預測 (Auto Forecasting):主要會根據選擇的模型為每個時間序列進行建模和評估
  2. 基礎預測 (Base Forecasting):主要提供建立自定義管線的基礎,其在預設情況下只包含資料節點。
  3. 外部預測 (External Forecasting):主要包含適應模型外部產生預測。
  4. 分層預測 (Hierarchical Forecasting) :主要適用於在於分層安排時間序列資料的預測分析。

接著自動預測、基礎預測、外部預測和分層預測皆屬於一般目的管線範本,範本適用於使用時間序列資料來源的任何預測專案,並且簡單地使用單個資料節點建立管線,而我們僅需要增加至少一個建模策略來完成管線。此外在 SAS Visual Forecasting 中管線範本除了一般目的管線範本之外,更有提供細分範本 (Segmentation Templates) 和需求分類範本 (Demand Classification templates),所謂細分範本主要用於預測包含已建立的細分定義的專案,而當建立新專案時無法使用這些範本,所謂需求分類範本主要用於已根據時間序列中的需求模式進行細分的資料,因此我們需要比較不同的範本和不同的建模策略,以利找到最適合資料的預測範本。

再來時間序列分析與統計一樣,主要可以分為兩大類,分別為基於推理的分析 (Inference-based Analysis) 和預測分析 (Prediction Analysis)。而對於需要預測未來主要將資料分為擬合樣本和保持樣本,但是與其他形式的預測建模不同,其中保持樣本是來自原始資料的隨機或分層樣本即保持樣本,而保留樣本用於評估效果如何,以及擬合樣本用於推導預測模型,至於誠實評估主要有以下步驟,分別為:

  1. 將時間序列資料分為擬合樣本用於推導預測模型和保持樣本用於評估預測準確性。
  2. 導出一組候選模型,像是 ECM 模型、ARIMAX 模型和 UCM 模型。
  3. 計算每個模型的所選模型準確度統計量,並且透過使用擬合樣本來預測保持樣本。
  4. 選擇具有最佳準確度統計量的模型。
  5. 使用最佳模型,產生 n 個未來期間的預測。

請注意我們需要選擇足夠的時間點以涵蓋整個季節性時期,像是對於每月數據,請至少保留 12 個觀察值,保持樣本始終位於時間序列的末尾,並且建議保持樣本應該很少包含超過 25%的時間序列,若在保持樣本中發生唯一行為,請不要使用保持樣本,而我們主要使用保持樣本來判斷準確性被稱為誠實評估,因為它模擬擬合和部署一個模型,然後判斷現場環境的準確性。

最後在 SAS Visual Forecasting 中的預設模型選取準則是 MAPE,這在專案建立期間或專案創立之後是可以進行改變,而所謂 MAPE 和 MAE 皆是模型擬合最常見測量,當我們選擇候選模型,則 MAPE 或 MAE 值最低的模型是最適合的模型。請注意兩個統計資訊皆採用觀察值的絕對值減去預測值,在數學上這是必要的,但其可能會省略關於模型合適的重要資訊,像是一個模型可能具有非常低的 MAPE 或 MAE,但是其總是不合適。此外 RMSE 通常用於工業、經濟和科學的預測,作為選取準則,則選擇模型 RMSE 的最小值,至於要如何判斷準確度的方法。

相關資源

SAS 預測分析 (3)

教學目標

初步了解 SAS Visual Forecasting 預測分析的基本概念。

重點概念

首先當我們透過 SAS Visual Forecasting 建立預測類型的新專案,選擇自動預測的範本,此時在新專案中會產生自動預測的管線,管線主要由資料、自動預測、模型比較和輸出,
其包含預測分析中的基本步驟,分別為:

  1. 資料 (Data):將資料累積到時間序列中。
  2. 自動預測 (Auto-forecast):自動識別,估計和選擇時間序列的預測模型。
  3. 模型比較 (Model Comparison):評估預測結果。
  4. 輸出 (Output):發佈在管線之外使用的結果。

其中自動預測節點主要會根據選擇的模型,像是 ARIMAX、ESM、UCM、…等模型為每個時間序列進行建模,針對於每個時間序列,自動預測節點執行以下任務,分別為:

  1. 診斷時間序列的統計特徵。
  2. 產生適當時間序列模型的列表。
  3. 選擇時間序列預測模型
  4. 產生預測結果。

請注意若建立預測模型的資料是分層排列時,識別、估計和預設預測管線中的選擇步驟是在時間序列中完成層次結構的基本級別。

接著預測模型主要有五種類型,分別為 ESM 模型、ARIMAX 模型、UCM 模型、簡單回歸模型和簡單模型,其中所謂 ESM 模型主要過去價值的加權平均值產生對未來的良好預測,權重應該強調最新資料,並且預測應該只需要幾個參數,以及預測方程式應簡單執行。所謂 ARIMAX模型主要是具有外生效應變數的自動迴歸整合為移動平均線,其主要可以分為幾個部份,初別為 AR、I、MA 和 X,AR 自回歸主要是針對時間序列過去的函數,I 整合主要是連續時間點之間的差異值,其可以是建模之後,回傳到無差異測量標準,MA 移動平均線主要是時間序列是過去震蕩的函數,像是偏差、創新、錯誤、…等,X 外生效應變數主要是時間序列受外部因素的影響。所謂 UCM 又稱為結構時間序列模型,其主要將時間序列分解為元件,分別為趨勢、季節性、循環、不規則和回歸量,其通用格式為趨勢 + 季節性 + 週期 + 回歸量,每個元件皆有本身的模型和錯誤來源,而趨勢、季節性和週期的係數是動態的,其係數是可測試的,並且每個元件都有自己的預測。

再來簡單回歸模型主要會預定義趨勢元件,像是線性、二次、三次、指數、…等等,以及預定義的季節性虛擬值,其包括一個或多個簡單預定義元件的組合,而簡單模型主要以平均值和隨機散步建立預測模型,進行預測沒有效能問題,而 ESM 模型則可以快速輕鬆的進行預測,所以其總是有很好的表現,而 ARIMAX 模型需要比起簡單模型或指數平滑模型需要更多的運算資源,因此會有些近似和快捷方式用來提高效能,而 UCM 模型則非常耗費運算資源,通常只能在試用資料集或個別時間序列。

最後當自動預測節點運行成功時,其有一個綠色標記,表示狀態為成功,此時我們能夠按右鍵單擊節點,然後選擇「結果」以查看節點的輸出,結果顯示建模策略的摘要和輸出資料,其中摘要主要包括 MAPE 分佈的直方圖結果,其主要診斷說明包含在基準水平的時間序列預測模型之擬合資料層次,而我們主要透過 MAPE 比較不同預測模型的準確性,通常較小的 MAPE 值代表著預測模型的結果更佳準確。此外對於每個時間序列,預設情況下會考慮兩個時間序列模型系列,分別為 ESM 模型或 ARIMAX 模型,自動預測模型主要根據均方根誤差 (Root Mean Square Error, RMSE) 選擇均方根誤差越小的時間序列模型,而模型比較主要是根據加權平均值絕對百分比誤差 (Weighted Mean Absolute Percentage Error, WMAPE),當然我們也能夠變更其它選取準則。

相關資源

SAS 預測分析 (2)

教學目標

初步了解 SAS Visual Forecasting 預測分析的基本概念。

重點概念

首先 SAS Visual Forecasting 主要提供自動化和複雜性的時間序列分析,所謂時間序列主要是等距數字的索引集,可以在營運業務所需的時間內生成數百萬個預測,預測人員可以使用視覺化流程圖或管線建立專案,管線會在同一資料集上運行多個模型,並且根據結果選擇冠軍模型。而 SAS Visual Forecasting 主要是建立在 SAS Viya 平台,因此其主要是透過高度平行處理和分散式架構有效地模擬和預測大規模的時間序列,同時也是為建立模型和產生數百萬個時間序列的預測所需的速度和可擴展性的一個平台。

接著交易資料不是根據時間間隔進行組織,當在時間序列模型量化系統變化之前必須等距或索引,間隔或索引包含在其中,而資料累積主要或轉換交易資料至指定間間隔資料的過程,在進行時間序列分析和預測之前,觀察(原始)序列必須被累積和解釋以形成時間序列。其中間隔選擇和累積方法是應用時間序列建模的關鍵考慮因素,進行這些選擇時,建模者會建立用於分析的資料,不同累積的選擇可以強調資料的不同系統特徵和影響模型的有用性和精確性。但是按小時間隔累積的時間序列可能不是理解的最佳時間序列,量化資料中可能存在的長期趨勢和月份週期,而一個更好的理解和量化較長執行模式的替代方案可能是每月間隔和平均積累方法。

再來自相關只是代表著時間序列 (Y t) 中的當前值與之前的相關值,當前值與緊接在前或滯後的值 (Y t-1) 之間的相關性稱為一階自相關,若相關性擴展至兩個時間點的值,且在當前值(Y t-2)之前稱為二階自相關,依此類推。而自相關可以是正的也可以是負的,範圍在 -1 和 1 之間。若一個時間序列包含趨勢,季節性或兩者,則包含自相關。即便是時間序列沒有包含趨勢或季節性也可以包含自相關,請注意檢測自相關最多是困難的,最壞的情況下可能會產生誤導,最好關注特定的自相關圖和診斷,以評估其存在時間序列中的自相關。

最後時間序列數據的變化主要有兩個部分,分別為噪音和信號,僅由噪聲組成的時間序列通常被稱為白噪聲序列,白噪聲序列是一系列獨立的相同分佈(i.i.d.)隨機變數,每個發行具有 0 的平均值和相同有限的變異,白噪聲序列包含無信號,這個時間序列的預測值,在任何時間點不會改變,通常計算為 0,若沒有信號的地方就沒有的模式有助於產生比這更好的預測,至於信號主要可以分解為幾種類型,分別為:

  1. 水平 (Level):主要被認為是任何時間點的基準水平,其不限於價值 0。
  2. 趨勢 (Trend):主要被認為是時間序列平均值的長期模式,其可以是線性,二次或更複雜的多項式,趨勢的概念通常涉及時間序列的水平,類似於線性回歸模型中線性趨勢 的斜率 (Slope) 。
  3. 季節性 (Season):主要被認為是時間序列可預測偏差模式與趨勢,其偏差的模式有一個固定的時期。
  4. 週期 (Cycle):主要被認為是一個規則的重複循環,同時是沒有規律的時期。
  5. 外生效應 (Exogenous):主要被認為不是該時間序列的真正組成部分,但是其是變異的來源,其可能與另一時間序列的價值相關,同時也被稱為解釋性影響,這種關係可能會延遲或併發。
  6. 不規則 (Irregular):主要是所有其他效果和模式之後的剩餘元件,元件被考慮在內。這是剩餘的變化,不規則組分可以是白色的噪音,但這不是必需的,並且殘差中可以存在局部的可預測模式,像是自相關和移動平均線。

請注意週期和季節性經常混淆,所謂季節性是指一個規律且重複的循環,而周期是指一個非規律重複的循環。

相關資源

SAS 預測分析 (1)

教學目標

初步了解 SAS Visual Forecasting 預測分析的基本概念。

重點概念

首先 SAS Visual Forecasting 主要是進行大規模自動化的時間序列預測進階分析,其主要是基於 SAS Viya 平台,由 CAS 提供平行處理的開放式架構,同時支援第三方應用程式介面。而 SAS Visual Forecasting 提供了許多不同的介面能夠讓我們產生預測模型,像是 Model Studio 和 SAS Studo,除了提供現代化的 HTML5 網站界面,更支援開放源始碼的程式語言以及 REST APIs。

接著 SAS Visual Forecasting 提供時間序列預測的新方法,其主要是物件導向設定概念,分別為:

  1. 效率 (Efficient):簡化建模和預測的流程。
  2. 動態 (Dynamic):客製程式中的預測工作流程。
  3. 彈性 (Flexible):使用現有元件靈活強健壯的進行建模工作流程。

其中最重要的設計概念和功能就是套件、物件、腳本語言和 CAS 程序,而 SAS Visual Forecasting 的軟體元件主要會被組織至套件和物件,所謂套件主要是基於特定時間序列函數之物件群組的集合,而物件主要被用於建立程式主要元件或區塊,並且彼此物件之間透過方法進行互動,以及擷取和控制建模和預測程序的狀態。

再來套件主要解決時間序列的分析問題,當我們撰寫自定義的 SAS 程式碼時,則可以使用這些專用物件和函數,以利存取最先進的資料分析工具加快程式碼開發速度,並且提高程式碼品質,至於常見的套件,請參考下表。

縮寫 套件名稱 說明
ATSM Automatic time series analysis and forecasting 主要使用各種模型系列自動建模和預測時間序列的工具,像是 ESM、ARIMA、UCM、IDM、… 等。
MOTIF Time series motif discovery 主要用於在時間序列中發現頻繁模式或重複子序列的工具。
SFS Simple forecast service 主要透過簡單易用的界面,以及僅使用 ARIMA 模型自動預測時間序列的工具。
SSA Singular spectrum analysis 主要用於將時間序列分解為附加組件,並且根據其貢獻的大小對這些元件進行分類的工具
TIMFIL Time filters 主要用於過濾和聚合時間序列的工具。
TFA Time frequency analysis 主要用於在時間領域和頻率領域中有效分析時間序列的工具。
TSA Time series analysis 主要用於時間序列的有效統計分析的工具,像是轉換,分解,間歇性,季節性,平穩性、預測偏差的統計測試、…等。
TSM Time series model 主要用於高效時間序列建模和預測的工具。
UTL Utility 主要用於對實際和預測時間序列對進行基本統計計算的工具。

最後 SAS Visual Forecasting 如何進行預測主要有五個步驟,分別為:

  1. 診斷 (Diagnose):診斷時間序列資料。
  2. 選擇 (Select):選擇適合的模型。
  3. 調適 (Fit):調適參數。
  4. 預測 (Forecast):預測最佳模型。
  5. 調和 (Reconcile):在層次結構中向上/向下調合預測結果。

請注意在 SAS Visual Forecasting 進行預測的實際資料主要是在 CAS 伺服器上進行處理,在 CAS 伺服器的分散式環境中,主要是基於 BY 變數的值不同組合來描繪和洗牌時間序列,時間序列資料平行處理,其寫在每個 CAS Worker 節點上的 CAS 資料表中,此外在每個 CAS Worker 節點上使用執行緒來處理同時加載至節點上的時間序列向量。

相關資源