"日期表"是90%以上Power BI資料模型(Data Model)中不可或缺的元素,舉凡你的資料為客戶管理、業務銷售、廣告促銷、股票資訊、流量分析、財務交易、進銷庫存、學習歷程、重複測量等,都可能包含了日期數據,這需要連結到一個完整的日期表,叫用日期的不同屬性。例如,比較週一至週日,哪一天的銷售最好,就需要叫用日期表的星期欄。
完整的日期表,包含了各式各樣的日期欄位資訊(年、月、日、周等),與主要事實表建立關聯後,前述欄位資訊就能夠被數據模型輕鬆叫用!創建日期表有以下幾種常規方法:
"日期表"是90%以上Power BI資料模型(Data Model)中不可或缺的元素,舉凡你的資料為客戶管理、業務銷售、廣告促銷、股票資訊、流量分析、財務交易、進銷庫存、學習歷程、重複測量等,都可能包含了日期數據,這需要連結到一個完整的日期表,叫用日期的不同屬性。例如,比較週一至週日,哪一天的銷售最好,就需要叫用日期表的星期欄。
完整的日期表,包含了各式各樣的日期欄位資訊(年、月、日、周等),與主要事實表建立關聯後,前述欄位資訊就能夠被數據模型輕鬆叫用!創建日期表有以下幾種常規方法:
不知大家面對SAS產生的報表是用何種方式整理的呢?土法煉鋼式地用複製貼上嗎?如果要跑的結果變項甚多、或是分析條件前後修改多次,每次都要再重新複製貼上,寶貴的時間就這麼浪費了呀!在此介紹SAS的ODS語法,善用下述技巧,一定能讓您的報表整理更有效率!
筆者前一陣子有遇到一個分析的案子,這個案子很特別,收集資料的方式是以季為單位,每一個有乾癬診斷的病人,會去收集以乾癬診斷的那一天開始起算,往後追蹤每一季的資料,因此每個人的資料筆數為每三個月一筆,直到2013/12/31或是退保日期(死亡)為止。因此這個資料的筆數相當的驚人,假設某個病人從我們資料中最早的2001/1/1開始往後追蹤,中間都沒發生死亡,因此這個病人最多會有52筆資料(一年有四季*13年的追蹤),實際上,我們這個資料最後的筆數將近400萬筆資料,這應該也稱得上是所謂的大數據(Big data)了吧!
為了幫助讀者理解資料的長相,如下圖所示,每一筆的資料其實是一季的收集,以第一個人為例,這個人在13年的追蹤過程中,共有8筆(8季的資料)。
在前一篇文章中,我們示範了如何在二階層橫斷面資料中(人/眼睛)點選 GLMM 的操作,本篇文章將仔細介紹報表的解讀。
下圖為報表最先出現的「Case Processing Summary」,。首先要注意資料有沒有遺漏值,有可能結果變項(Y)或解釋變項(X)具有遺漏值,此時會刪除在任何一個變項具有遺漏值的樣本(listwise deletion)。下方「Model Summary」則顯示機率分佈為二項式及連結函數為 logit,此即為標準的binary logistic regression。
接著我們使用一個真實的眼科資料作為示範,此資料集一共 1000 筆整,來自於 500 名接受兩種不同近視雷射手術的收案對象,每位患者都同時接受左右眼的手術。「ID」為患者編號,「Eyeball」為左右眼的編號(1 為左眼、2 為右眼),「Group」為雷射方法(1 為 LASEK,0 為 FSBK)。結果變項為「Outcome」,1 為兩年內發生近視度數回歸(myopia regression),可視為手術失敗,0 則為手術成功。
在筆者之前的文章中,曾經介紹線性混合模式(Linear mixed model, LMM)的概念與應用場景(請見:https://reurl.cc/8GdGr4、https://reurl.cc/pdOdqx、https://reurl.cc/20p0xE或是https://reurl.cc/WdlL3y),在本系列文章中,將介紹以 SPSS 25 版進行實際的操作示範與結果解釋。
LMM 可被應用於分析多層次資料(Multilevel data),因此也稱為多層次模型/迴歸(Multilevel model / regression)。所謂多層次的定義,只要資料結構為至少「2 層」以上即可稱為多層次的資料。下圖示範一個「4 層」的資料結構,第四層為醫院,第三層為每家醫院的醫生、第二層為每位醫生治療的病人,第一層為每位病人的多筆資料(例如同一位個案的左右眼、多個不同病灶、重複測量等)。
筆者最近在學習機器學習的資料降維方法時,有看到一個針對資料做降維的方法,在實務上也非常多人在使用,t-SNE(t-distributed stochastic neighbor embedding,t-隨機鄰近嵌入法),這個方法主要是將高維度的資料進行低維度的轉換,此種降維方式主要是採用非線性的轉換方式,相較於傳統PCA(主成分分析)的降維方式,可以在變數關聯為非線性的關係時能有更好的處理,因為當資料間變項之間的關聯性為非線性時,當使用PCA(主成分分析)這種把資料當成線性關係去處理的時候,就容易產生模型underfitting的情況(白話來說,就是這個模型不適合用來解釋手上的資料,容易產生錯誤的結果)。那t-SNE是如何解釋資料非線性的關係呢,筆者這邊稍微帶一點數學公式,讓讀者可以簡單了解這個方法的理論,如下有A跟B兩個公式,A公式是一個常態分佈的公式,t-SNE將原始資料(高維度的資料)利用常態分佈來去解釋;B公式則是一個自由度為1的t分佈公式,t-SNE將降維後的資料(低維度的資料)利用t分佈來去解釋,利用t分佈去解釋,當原始資料裡面有異常值時,降維後的資料不容易受影響,t分佈在樣本數小的時候,也比較好用來描繪母體的資料,而且因為t分佈的雙尾較寬,因此也可以避免低維度的資料全部擠在一起,無法有效的被分群。因為如果用傳統PCA的方式,容易產生數據的集群混在一起,無法有效的區隔,這樣的狀況其實也代表降維後的資料無法有效的表現原始資料的樣子跟分佈情形。
過去我們都是介紹Microsoft的Power BI,這次淺酌一下google的BI。
google的BI產品叫作Google Data Studio,它是線上服務,整合在google帳號中,也就是當你有帳號時,就可以使用,就像使用google文件、表單、Gmail、雲端硬碟等一樣,使用它的BI功能。只不過,不是從那九個黑點中進去,要另外搜尋,如下圖所示。
筆者在學習機器學習以及統計學的相關知識的過程中,有在網路搜尋了許多相關學習資源,想跟各位讀者分享一個我在Youtube平台上面找到值得大家多去看看的頻道,這個頻道叫做「StatQuest with Josh Starmer」,這個頻道的