數據分析師必修課(1)——數據質量評估
前言/專欄開篇
關注我的朋友可能知道,筆者是半路出家轉行數據分析的,從2016年自學數據分析,到2017年中順利成為一名數據分析師,再到2017年底被破格提拔、升職加薪,算來也近兩年的時間了。這兩年里,筆者參加的各類數據分析培訓可算不少,看過的相關書籍也很多。但是筆者發現,有一個在實際工作中十分重要的領域卻無人提及,大家所說寥寥,那就是數據質量評估,或者叫數據質量分析。所以這一次,我就來聊一聊這件事。
不僅聊這件事,這篇也是我的知乎專欄《數據分析師必修課》開篇文章,之後我會陸續分享自己的思考,和大家一起探討數據分析師該有的知識、技能和素養。希望能幫助大家梳理工作中容易遺漏但很重要的內容,幫助大家繞開一些常見但不容易爬出來的坑。由於能力所限,我不能保證我輸出的信息都一定是對的,但我會盡量保證我的觀點都是獨特的、是很少有人提及的,在這裡大家應該不會看到已經在網上被大家講爛掉的、重複無趣的內容。希望大家喜歡,多多捧場。也希望有興趣的夥伴一同參與進來,共同探討、共同成長。
需要說明一下,本文是筆者根據自身的知識積累,參考了一些論文和書籍,再結合實際工作中的具體實踐整理歸納而來,並非全部原創。由於筆者自身的知識和能力有限,文章內容可能會有不足和錯誤,僅供參考。歡迎大家參與討論,更歡迎各位大牛批評指正。
1 什麼是數據質量評估
一個不嚴謹的定義是,將數據質量評估程序應用於數據集並最終獲取評價對象質量狀態。直白的說,就是依據一個相對完整的評估框架,按照一套確定的步驟和流程,從整體上考量某個或某些數據集對特定業務應用的滿足程度,能很好滿足業務應用的數據集我們稱其質量較好,反之則質量較差。
2 為什麼要進行數據質量評估
很多剛入門的數據分析師,拿到數據後會立刻開始對數據進行各種探查、統計分析等,企圖能立即發現數據背後隱藏的信息和知識。然而忙活了好一陣才頹然發現,並不能提煉出太多有價值的信息,白白浪費了大量的時間和精力。造成這一情況的一個重要因素就是忽視了對數據質量的客觀評估。
筆者認為有幾個觀點大家需要牢記:
1. 不是所有的數據都有價值。 在實際工作中數據分析一定都是為實際業務服務的,只有緊密圍繞業務需求的分析才是有意義的,因此,只有和實際業務有較強相關性的數據集才是有價值的,不相關的數據,不管多麼豐富,對於當下的工作都是沒有意義的。
2. 數據質量的好壞直接影響實際的業務結果。 通常我們進行數據分析、挖掘的目的是企圖發現數據中隱藏的知識和信息,從而對實際業務或產品進行優化。如果數據集本身質量不佳,自然很難得出有用的結論,甚至可能得到錯誤的結果。所以,進行科學、客觀的數據質量評估是非常必要且十分重要的,筆者認為這是拿到數據後第一件要做的事。
進行數據質量分析有幾個好處,首先可以節約大量試錯的時間,對於質量很差的數據集,我們沒有必要花費太多的時間和精力。其次可以降低得出錯誤結論的概率,如果我們能夠及時發現數據中存在的錯誤和失真,就能夠避免因為數據本身的問題而讓我們得出錯誤的結論。最後,可以縮短數據反饋流程,更加及時的將數據收集過程存在的問題反饋給數據生產部門,提高協作效率。
3 如何進行質量評估
這一部分將是本文的核心內容,對剛接觸數據分析工作的人有很強的指導作用。我將從數據質量評估框架、常用方法、一般步驟三個方面展開,其中,數據質量評估框架是重點中的重點。
3.1 質量評估框架
數據質量是一個多維度的概念,可能涉及數據產品及其生產服務過程的多個方面,其本身不可測度。一般來說,對數據質量的認識通過將其分解為多個質量維度,並逐個識別實現。
當前普遍的觀點認為,數據質量要素受行業領域、 數據類型和應用目的等因素的影響極大,不存在面向所有領域和資源類型的普適性數據質量框架。但針對一個具體行業背景下的特定數據類型和業務目標,建立一組質量維度和指標體系是可行的。
筆者參考相關論文,從語法、語義和語義三個方面考慮,將數據質量分為形式質量、內容質量和效用質量三個基本種類。其中形式質量主要考量數據集在結構和表達形式上是否能很好的匹配業務需求,以及是否易於理解和獲得。內容質量主要考量數據集的具體內容和取值是否和實際業務相一致。效用質量主要考察數據集在業務特徵以及時間維度上具有較高的關聯性。這種分類方法並不是嚴格的、唯一的,只是為了便於理解。
對於互聯網以及金融行業的大多數業務應用,將常見的數據質量維度整理成如下的框架:
逐一來解釋一下每個維度的具體概念和常用指標:
完整性: 這是筆者自己定義的一個概念,這和資料庫中完整性約束的概念不同,這裡的完整性指的是數據集對具體業務對象的覆蓋程度,一般可以從欄位和記錄兩個方面來描述。數據完整性的常見指標有:
- 用戶覆蓋度:比如某業務的目標用戶600萬,現有數據集只覆蓋了其中350萬,則用戶覆蓋度為350 ÷ 600 * 100% = 58.3%
- 業務覆蓋度
- 產品覆蓋度
可理解性: 可理解性指標用來表述數據集是否能清晰的反應業務邏輯,欄位和取值的具體意義是否明確。常用的可理解性指標有:
- 存在數據字典
- 數據字典語義明確
- 欄位取值是否和業務邏輯一致
一致性: 用來描述數據在不同維度的連貫性,包括數據集之間的橫向連貫性和時間維度的縱向連貫性。一致性並不意味著數值上的絕對相同,而是數據收集、處理的方法和標準的一致。常見的一致性指標有:
- ID重合度:在相關數據集中是否存在一個全局的ID,或者不同數據集之間的關聯ID是否能一一對應;
- 屬性一致:不同數據集之間,同一個屬性的欄位名稱、取值範圍是否一致;
- 取值一致:不同數據集之間,同個欄位的取值範圍是否一致、相同情況下的具體取值是否一致;
- 採集方法一致:數據是否使用相同的工具和方法進行採集;
- 轉化步驟一致:數據的轉化過程是否採用相同的方法和工具;
可獲得性: 用來描述實際業務需要的數據獲取的難易程度,包括採集、清理、轉化等多個環節。常用指標有:
- 易於採集:是否易於採集,採集過程是否簡單直接;
- 易於處理:數據處理過程計算複雜度是否可接受;
- 合適的存儲方式:數據存儲結構是否合適,是否便於二次使用;
準確性:數據集是否能夠精準無誤的反應真是業務情況,準確性是數據質量的重要組成部分。常見指標有:
- 缺失值佔比
- 錯誤值佔比
- 異常值佔比
- 抽樣偏差: 因統計抽樣而帶來的樣本特徵和總體特徵之間的偏差。
- 數據雜訊: 數據流通過程中因數據轉化而產生的信息損失,如關鍵信息加密、四捨五入等。
可靠性: 數據集是否值得信賴,包括數據採集、數據處理過程是否可靠等。常見指標有:
- 採集方法正確:有時候對數據的不同定義會導致採集方法的不同,比如頁面曝光事件的定義,如果用戶刷新了頁面算不算第二次曝光?這要根據不同情況來定義,不同的定義其數據採集方式會不相同。
- 上報過程可靠
- 處理方法正確
- 數據處理全流程通過測試
相關性: 是指數據集中包含的屬性是否能很好的描述業務目標,是否能清晰的解答業務問題。第一節我們說到,我們對數據質量的定義是看數據集是否能很好的滿足業務需求,因此可以說相關性是數據質量的核心維度。相關性的常用指標主要就是數據欄位相關度。
時效性: 時效性可以理解為時間維度的數據相關性,即業務需求的時間範圍和數據集表示的時間範圍之間的關聯程度。比如我們需要分析今年第一季度的某品類銷售情況,但數據集是去年第二季度的,這種情況就是極端的時效性差。時效性的常見指標有:
- 時序區間覆蓋度
- 數據更新頻率
以上就是對數據質量維度的詳細解讀。需要注意的是,在實際做質量評估的時候,不一定對每個維度每個指標都進行分析,可以根據實際情況酌情選擇。
3.2 質量評估一般方法
質量評估方法,即採用何種方式對數據質量進行評估,如何評定和刻畫質量水平。數據質量評價方法主要分為定性和定量方法,以及兩者結合的綜合評價法。定性方法主要依靠評判者的主觀判斷。定量方法則提供了一個系統、客觀的數量分析方法,結果較為直觀、具體。這一部分的內容比較容易理解,這裡不展開過多的解釋,僅做簡單介紹。
3.2.1 定性法
定性評價方法一般基於一定的評價準則與要求,根據評價的目的和用戶對象的需求,從定性的角度來對基礎科學數據資源進行描述與評價。
定性評價標準因業務領域、能力水平和實際任務等差別而因人而異,無法強求一致。 定性方法的主體需要對領域背景有較深的了解,一般應由領域專家或專業人員完成。
定性法一般包括:第三方評測法、用戶反饋法,專家評議法等。
3.2.2 定量法
定量評價方法是指按照數量分析方法,從客觀量化角度對數據資源進行的優選與評價。定量法一般包括:統計分析法、內容評分法等。
3.2.3 綜合評價法
綜合方法將定性和定量兩種方法有機地集合起來,從兩個角度對數據資源質量進行評價。
常見的綜合評價法包括:層次分析法、缺陷扣分法等。
3.3 評估流程
1. 需求分析
對具體業務數據的數據質量評價是以業務需求為中心進行的。數據資源不同於實體產品,具有用途個性化、多樣化、不穩定等特點。因此,必須首先了解具體業務針對特定數據資源的需求特徵才能建立針對性的評 價指標體系。
2.確定評價對象及範圍
確定當前評估工作應用的數據集的範圍和邊界,明確數據集在屬性、數量、時間等維度的具體界限。需要說明的是,評價對象既可以是數據項也可以是數據集,但一定是一個確定的靜態的集合。
3.選取質量維度及評價指標
數據質量維度是進行質量評價的具體質量反映,如正確性、 準確性等。它是控制和評價數據質量的主要內容。因此,首先要依據具體業務需求選擇適當的數據質量維度和評價指標。另外,要選取可測、可用的質量維度作為評價指標準則項,在不同的數據類型和不同的數據生產階段, 同一質量維度有不同的具體含義和內容,應該根據實際需要和生命階段確定質量維度。
在此階段要注意指標之間避免衝突,同時也要注意新增評價指標的層次、 權重問題,以及與其它同層次指標的衝突問題。
4.確定質量測度及其評價方法
數據質量評價在確定其具體維度和指標對象後,應該根據每個評價對象的特點,確定其 測度及實現方法。對於不同的評價對象一般是存在不同的測度的,以及需要不同的實現方法支持,所以應該根據質量對象的特點確定其測度和實現方法。 常用定性方法和定量方法。
5.質量評估
就是根據前面四步確定的質量對象、 質量範圍、 測量及其實現方法實現質量評測的活動過程。 評價對象的質量應當由多個質量維度的評測來反映,單個數據質量測量是不能充分、 客觀評價由某一數據質量範圍所限定的信息的質量狀況,也不能為數據集的所有可能的應用提供全面的參考,多個質量維度的組合能提供更加豐富的信息。
6.結果分析並報告
評測後要對評測結果進行分析:對評價目標與結果進行對比分析,確定是否達到評價指標;對評價的方案的有效性進行分析,確認是不是合適等。
之後,根據評價結果確定對象的質量評價,如需要,可根據評價結果鑒定量級別。最終的質量評價(或評級)將說明數據質量是否能滿足實際業務需求。
最後應將質量評價結果和數據質量評價過程匯總並報告。在完整的數據質量評價結果和報告中,應該包括全部上述內容。
4 何時需要進行數據質量評估
一般來說,有幾種情況我們需要進行比較完整的數據質量分析:
其一是我們產生了全新的業務需求,我們需要對現有的數據集進行一次質量評估,看看是否足以支持新的業務需求。
其二是當我們的數據採集、清理、轉化、存儲等任一個環節產生了重大的技術變更(比如重構、使用新的工具)的時候,我們要對變更後產生的新的數據集進行質量評估。
其三是當我們從一個新的數據來源獲取了全新的數據,並期望將它應用在一個具體的業務中的時候。
5 評估之後做什麼
完成質量評估後,我們會對數據質量有一個清晰的且量化的認識,同時也會對數據採集、清理、轉化、存儲等各環節存在的問題有所了解。對於一些問題,我們需要及時的反饋給數據生產部門,比如數據採集方法錯誤、錯誤值佔比過高、用戶覆蓋度太低等。還有一些錯誤是分析師可自行消化的,比如不同數據集之間相同屬性的取值範圍不一致等,可以通過一些技術手段來解決,因此可以根據數據質量評估結果指導後續的ETL工作。
6 其他要點整理
- 質量評估緊緊圍繞業務需求展開,脫離業務需求談數據質量是沒有意義的。
- 不是每個質量維度都需要考察,根據需要酌情選擇。
- 不是對所有的數據集都需要進行質量分析,如果沒有新的業務需求,且現有數據的全流程已經經過長時間驗證,可不必進行質量分析。
- 數據質量評估往往不是鼓勵的一個環節,通常和EDA(探索性數據分析)過程重疊。但兩者的關注重點不一樣,EDA關注的是數據背後隱藏的規律或模式;質量評估關注的重點是觀察數據集和業務需求之間的關聯程度。
- 本文列出的數據質量維度並不能包含所有方面,讀者請根據自己的實際需要增刪。
- 數據質量評估可能不單單是數據分析師自己的工作,通常要和數據開發、產品開發、測試等部門合作完成。
7 一點福利
作為一個理科僧,筆者以前寫作文從來沒及格過,今天寫這樣長一篇文章,真真要了老命了!我用生命整理來的文章,如果對你有用,請不要吝惜,點個贊吧!點贊後私信,可獲得筆者整理的數據質量評估報告模板喲~~
PS:未經授權嚴禁轉載!極度厭惡抄襲行為!
筆者其他相關文章及內容有:
BigCarrey:轉行數據分析,你準備好了嗎?數據分析師的薪酬大約是多少?推薦閱讀:
※數據團隊建設思考
※Python學習(二)
※分析競爭力,數字時代的差異化競爭優勢
※醫院銷售數據分析(數據分析第4關)
※惠眾在線行業情報|互聯網改變下的傳統節日