前陣子在處理客戶諮詢問題時,剛好用到一個比較罕見的資料處理技巧-位移函數(Lag & Lead),所以這篇文章以這個題目做個教學,順便記錄下來。客戶的資料屬於縱貫型資料,是多家公司在多個年度的營運狀況,這時有個研究問題,想用去年的進貨成本來預測今年的營利淨所得,所以我們必須這兩個年度的不同變項拉在同一筆資料上,才有辦法分析我們想要的結果,這時就得用到位移函數(Lag & Lead)。
壹、遞延函數Lag
(1)介紹本例的資料結構
第一個欄位為ID欄位,同一個ID都有四筆資料。
第二個欄位為同一個ID的排序號碼。
第三個欄位為我們示範變項X。
(2)先介紹Lag函數的使用,點選「轉換」à「計算變數」
(3)在目標欄位中輸入新的變項名稱,此例命名為X1
(4)在運算式內打上「Lag(X,1)」,按下確定
X是指要處理的變項,數字1則代表位移一格,如果要位移兩個可以改成2,以此類推。
(5)資料中出現X1的變項,每個數字對應X皆為往下移一格
(6)其中有三筆資料有問題,分別為40、80、120,
40為ID1的第四筆資料,在X1裡對應到ID2;80為ID2的第四筆資料,在X1裡對應到ID3;120為ID3的第四筆資料,在X1裡對應到ID4,這個問題在於如果用A公司的資料來預測B公司的資料是不合理的,所以我們要想辦法來排除。
(7)將ID也一併進行遞延的動作,以作為遞延資料是屬於哪筆ID的資料,點選「轉換」à「計算變數」,在目標欄位打上ID1
(8)在運算式內打上「Lag(ID,1)」,按下確定
如果遞延資料有兩格的遞延動作,那也同樣要新增一個變項ID2= Lag(ID,2)作為判斷依據。
(9)這時資料就多了一排遞延一格的ID1
透過ID與ID1這兩欄的比對,就可以判斷哪些儲存格在遞延過後對應到不同ID,必須做處理。
(10)點選「轉換」à「計算變數」,來處理原來的變項X1
(11)目標變項輸入X2,在數值運算式輸入X1,也就是讓X2直接等於原來的X1
(12)不過要X2=X1需要加上條件,所以點選「若」
(13)在滿足條件裡輸入ID=ID1,也就是說當滿足ID=ID1時,才會執行X2=X1這個計算
(14)此時所完成的變項X2,已經把ID不同的遞延資料給移除