Leo Yeh's Blog

SAS 時間序列 (14)

教學目標

初步了解 SAS 時間序列的基本概念。(此篇主要為準備考試的心得筆記)

重點概念

首先我們除了透過 SAS Visual Forecasting 中使用者網站介面建立預測模型之外,更能夠自動產生程序,此時我們就能夠以修改程序的方式建立更進階的預測模型。其中程序主要包括時間序列分析和預測工具,這些工具是專為為 SAS Viya 所提供的分散式環境而開發的,其中方法主要包括時間序列分析 (時域和頻域)、時間序列分解和過濾、時間序列建模、時間序列預測和監測以及時間資料探勘 (主題發現和時間序列距離測量),這些程序提供時間序列診斷,自動變量選擇和日曆事件,用於預測和監視的自動時間序列模型選擇以及樣本外效能監控。

接著 TSMODEL 程序主要在時間序列資料上執行使用者定義的程序,TSMODEL 程序分析與時間有關的時間戳交易資料,並且將資料累積為時間序列格式,其中主要從輸入時間戳交易資料形成時間序列,並將累積的時間序列變數寫入輸出表,時間序列主要基於 BY 語句中列出的變數的不同值來進行描述,並且帶有時間戳的交易資料以無固定間隔記錄,而分析師經常希望使用需要固定時間間隔的時間序列分析技術,所以我們必須累積交易資料以形成固定間隔時間序列,例如每日,每週或每月。此外 TSMODEL 程序主是在 SAS Viya 中的雲端分析服務 (CAS) 執行,因此其能夠平行處理時間序列資料,並且透過 BY 群組的時間序列在 CAS 連線的節點之間進行分組,然後在每個節點上使用執行緒同時處理節點的BY 群組,以及所有時間序列分析結果都可以存儲到 CAS 資料表中。

再來自動時間序列分析和預測 (ATSM) 套件主要提供支援自動時間序列建模和自動預測的物件,其用於增強 TSMODEL 程序功能,而當我們需要使用 ATSM 套件時,則要先宣告物件,然後進行初始化,才能夠針對物件執行操作。像是我們撰寫以下程式主要是在物件上進行操作,一開始我們會先宣告時間序列資料框類型的物件 (mytsdata),然後先進行初始化之後,在物件上執行分析方法 (addY),而其中返回狀態代碼 (rc) 主要能夠了解執行情況,rc < 0 代表出現不可恢復的錯誤,rc = 0 代表無條件成功,rc> 0 代表條件成功或警告。

1
2
3
4
5
6
7
8
9
10
11
proc tsmodel 
data = …;


require ATSM;
submit;


declare object mytsdata(tsdf);
rc = mytsdata.initialize();
rc = mytsdata.addY(mytarget);


endsubmit;

此外在 SAS Visual Forecasting 中的自動預測節點主要產生的 TSMODEL 程式之程式碼,其中就會使用到自動時間序列分析和預測 (ATSM) 套件,主要有三大部份,分別為:

  1. 初始化和資料累積。
  2. 診斷或建立模型規範。
  3. 自動模型選擇和產生預測。

同時如果是預測分析的負責人知道其中預測序列每月皆是間歇性的間隔,但是自動預測節點上沒有選項可以擴展支援此功能的模型和包括間歇性需求模型 (IDM),此時我們就能夠透過批次程式碼的方式提供了更多的靈活性使用者介面,簡單來說,我們以能夠在修改之後進行儲存,並且自定義預測節點的方式進行使用,並且更能夠進行共享至自定義的儲存庫節點,讓其它預測分析專案使用。

最後更多能夠增強 TSMODEL 程序功能的套件,像是時間過濾器 (TIMFIL) 套件主要提供讓使用者能夠針對時間序列資料執行各種類型的過濾和聚合、時間序列分析 (TSA) 套件主要提供能夠使用者診斷時間序列函數、時間序列模型 (TSM) 套件主要能夠讓使用者指定和擬合所定義的預測模型、… 等。因此套件主要解決時間序列分析問題和特定領,撰寫自定義程式碼時,可以使用這些專用物件和函數,以利存取先進的資料分析工具,以及加速程式碼開發速度,並且提高程式碼品質,產生更可被信任的分析結果。

相關資源

⬅️ Go back