資料分析前提:資料質量管理四要素

來源:果殼範文吧 1.03W

資料質量控制作為資料倉庫的基礎環節,是保障上層資料應用的基礎。資料質量保證主要包括資料概要分析(Data Profiling)、資料稽核(Data Auditing)和資料修正(Data Correcting)三個部分,前一篇文章介紹了Data Profiling的相關內容,從Data Profiling的過程中獲得了資料的概要統計資訊,所以下面就要用這些資料統計資訊來稽核資料的質量,檢查資料中是否存在髒資料,所以這一篇主要介紹資料稽核(Data Auditing)的內容。

資料分析前提:資料質量管理四要素

資料質量的基本要素

首先,如何評估資料的質量,或者說怎麼樣的資料才是符合要求的資料?可以從4個方面去考慮,這4個方面共同構成了資料質量的4個基本要素。

完整性

資料的記錄和資訊是否完整,是否存在缺失的情況。

資料的缺失主要有記錄的缺失和記錄中某個欄位資訊的缺失,兩者都會造成統計結果的不準確,所以完整性是資料質量最基礎的保障,而對完整性的評估相對比較容易。

一致性

資料的記錄是否符合規範,是否與前後及其他資料集合保持統一。

資料的一致性主要包括資料記錄的規範和資料邏輯的一致性。資料記錄的規範主要是資料編碼和格式的問題,比如網站的使用者ID是15位的數字、商品ID是10位數字,商品包括20個類目、IP地址一定是用”.”分隔的4個0-255的數字組成,及一些定義的資料約束,比如完整性的非空約束、唯一值約束等;資料邏輯性主要是指標統計和計算的一致性,比如PV>=UV,新使用者比例在0-1之間等。資料的一致性稽核是資料質量稽核中比較重要也是比較複雜的一塊。

準確性

資料中記錄的資訊和資料是否準確,是否存在異常或者錯誤的資訊。

導致一致性問題的原因可能是資料記錄的規則不一,但不一定存在錯誤;而準確性關注的是資料記錄中存在的錯誤,比如字元型資料的亂碼現象也應該歸到準確性的考核範疇,另外就是異常的數值,異常大或者異常小的數值,不符合有效性要求的數值,如訪問量Visits一定是整數、年齡一般在1-100之間、轉化率一定是介於0到1的值等。對資料準確性的稽核有時會遇到困難,因為對於沒有明顯異常的錯誤值我們很難發現。

及時性

資料從產生到可以檢視的時間間隔,也叫資料的延時時長。

雖然說分析型資料的實時性要求並不是太高,但並不意味了就沒有要求,分析師可以接受當天的資料要第二天才能檢視,但如果資料要延時兩三天才能出來,或者每週的資料分析報告要兩週後才能出來,那麼分析的結論可能已經失去時效性,分析師的工作只是徒勞;同時,某些實時分析和決策需要用到小時或者分鐘級的資料,這些需求對資料的時效性要求極高。所以及時性也是資料質量的組成要素之一。

Data Auditing

基於資料質量的4個要素,可以對資料進行稽核,以評估資料是否滿足完整性、一致性、準確性和及時性這4方面的要求,其中資料的及時性主要跟資料的同步和處理過程的效率相關,更多的是通過監控ETL任務的方式來保證資料的及時性,所以這裡的資料稽核主要指的是評估資料的完整性、一致性和準確性。

完整性

我們從Data Profiling得到的資料統計資訊裡面看看哪些可以用來稽核資料的完整性。首先是記錄的完整性,一般使用統計的記錄數和唯一值個數。比如網站每天的日誌記錄數是相對恆定的,大概在1000萬上下波動,如果某天的日誌記錄數下降到了只有100萬,那很有可能記錄缺失了;或者網站的訪問記錄應該在一天的24小時均有分佈,如果某個整點完全沒有使用者訪問記錄,那麼很有可能網站在當時出了問題或者那個時刻的日誌記錄傳輸出現了問題;再如統計訪客的地域分佈時,一般會包括全國的32個省份直轄市,如果統計的省份唯一值個數少於32,那麼很有可能資料也存在缺失。

完整性的另一方面,記錄中某個欄位的資料缺失,可以使用統計資訊中的空值(NULL)的個數進行稽核。如果某個欄位的資訊理論上必然存在,比如訪問的頁面地址、購買的商品ID等,那麼這些欄位的空值個數的統計就應該是0,這些欄位我們可以使用非空(NOT NULL)約束來保證資料的完整性;對於某些允許空的欄位,比如使用者的cookie資訊不一定存在(使用者禁用cookie),但空值的佔比基本恆定,比如cookie為空的使用者比例通常在2%-3%,我們同樣可以使用統計的空值個數來計算空值佔比,如果空值的佔比明顯增大,很有可能這個欄位的記錄出現了問題,資訊出現缺失。

一致性

如果資料記錄格式有標準的編碼規則,那麼對資料記錄的一致性檢驗比較簡單,只要驗證所有的記錄是否滿足這個編碼規則就可以,最簡單的就是使用欄位的`長度、唯一值個數這些統計量。比如對使用者ID的編碼是15位數字,那麼欄位的最長和最短字元數都應該是15;或者商品ID是P開始後面跟10位數字,可以用同樣的方法檢驗;如果欄位必須保證唯一,那麼欄位的唯一值個數跟記錄數應該是一致的,比如使用者的註冊郵箱;再如地域的省份直轄市一定是統一編碼的,記錄的一定是“上海”而不是“上海市”、“浙江”而不是“浙江省”,可以把這些唯一值對映到有效的32個省市的列表,如果無法對映,那麼欄位通不過一致性檢驗。

一致性中邏輯規則的驗證相對比較複雜,很多時候指標的統計邏輯的一致性需要底層資料質量的保證,同時也要有非常規範和標準的統計邏輯的定義,所有指標的計算規則必須保證一致。我們經常犯的錯誤就是彙總資料和細分資料加起來的結果對不上,導致這個問題很有可能的原因就是資料在細分的時候把那些無法明確歸到某個細分項的資料給排除了,比如在細分訪問來源的時候,如果我們無法將某些非直接進入的來源明確地歸到外部連結、搜尋引擎、廣告等這些既定的來源分類,但也不應該直接過濾掉這些資料,而應該給一個“未知來源”的分類,以保證根據來源細分之後的資料加起來還是可以與總體的資料保持一致。如果需要稽核這些資料邏輯的一致性,我們可以建立一些“有效性規則”,比如A>=B,如果C=B/A,那麼C的值應該在[0,1]的範圍內等,資料無法滿足這些規則就無法通過一致性檢驗。

準確性

資料的準確性可能存在於個別記錄,也可能存在於整個資料集。如果整個資料集的某個欄位的資料存在錯誤,比如常見的數量級的記錄錯誤,這種錯誤很容易發現,利用Data Profiling的平均數和中位數也可以發現這類問題。當資料集中存在個別的異常值時,可以使用最大值和最小值的統計量去稽核,或者使用箱線圖也可以讓異常記錄一目瞭然。

還有幾個準確性的稽核問題,字元亂碼的問題或者字元被截斷的問題,可以使用分佈來發現這類問題,一般的資料記錄基本符合正態分佈或者類正態分佈,那麼那些佔比異常小的資料項很可能存在問題,比如某個字元記錄佔總體的佔比只有0.1%,而其他的佔比都在3%以上,那麼很有可能這個字元記錄有異常,一些ETL工具的資料質量稽核會標識出這類佔比異常小的記錄值。對於數值範圍既定的資料,也可以有效性的限制,超過資料有效的值域定義資料記錄就是錯誤的。

如果資料並沒有顯著異常,但仍然可能記錄的值是錯誤的,只是這些值與正常的值比較接近而已,這類準確性檢驗最困難,一般只能與其他來源或者統計結果進行比對來發現問題,如果使用超過一套資料收集系統或者網站分析工具,那麼通過不同資料來源的資料比對可以發現一些資料記錄的準確性問題。

via:網站資料分析

熱門標籤