魏 瑤/文
現代社會中,數據是構成信息的基本形式,特別是統計調查中的數據。如何從海量數據中提取有價值信息,數據清洗就顯得尤為重要。數據清洗是研究如何檢測并消除數據中的錯誤、不一致等問題的一種手段,也是提升數據質量的有效途徑。從數據來源、數據庫系統結構與特點來看,高質量的數據所產生的價值越來越大。為此,本文針對數據的采集、整理、存儲、分析,就數據清洗環節進行重點探討,并對數據清洗流程、數據清洗中的問題提出應對建議。
數據清洗,從概念上講是基于目標數據,通過采用不同的數據檢測、審查、處理、校驗方法,實現對數據的糾錯,清除原數據中“臟”的信息,如一些統計調查中的無效值、缺失值、重復數據、異常數據等。數據清洗在海量數據信息挖掘中具有重要的應用價值,借助對“臟數據”的清洗提升數據質量,可以為各類分析決策提供科學、準確的評判依據,提升統計調查結果的公信力。從數據清洗的對象來看,由于不同類型、不同規模的數據差異性,可以歸納為單數據源、多數據源兩類。在數據采集方式上,有手工錄入的問卷調查數據,也有網絡調查系統數據、計算機輔助電話調查設計以及PDA 等移動終端采集的數據等。單數據源中,因缺失完整性約束條件,而出現數據差錯、缺失等問題;多數據源中,因字段名稱沖突、屬性值、數據結構沖突等,也會出現統計邏輯錯誤等。無論是單數據源還是多數據源,數據質量是評價數據效用的重要指標。
從提升數據質量維度來看,數據清洗是最有效的解決方法。對于數據清洗,考慮到數據分析的可靠性與一致性,需要對數據源進行預“清洗”或預“修復”,便于提升后續清洗環節的效率。從數據清洗過程來看,主要分為:一是對原數據進行備份,并做好清洗前準備。通常,面對一項統計調查所采集的數據信息,需要結合數據采集方式進行提前合并和預處理。如電話回訪、網絡調查、面談等方式所獲取的數據,需要做好數據信息的錄入、整理和存儲。同時,面對不同來源的數據信息,在進行合并時,還需要結合數據格式、變量名稱、數據類型等進行一致性處理。在對數據進行清洗作業前,一定要先對原始數據進行備份,避免因數據清洗而帶來數據丟失或損壞。二是對數據進行審核處理。根據數據量的實際規模,在數據審核中可采用人工審核、計算機軟件審核或者兩者相結合方式對數據中的“臟數據”進行校驗、處理。三是數據驗證與評估。對數據進行清洗后,需要進行科學驗證和評估,如果評估后出現偏差,則需要重新優化清洗方案,進行再次清洗。四是對清洗后的數據建立新的數據源備份,便于后續數據挖掘與處理。
從數據清洗環節來看,主要的清洗技術有人工清洗、計算機清洗、兩者聯合清洗等。通常,面對非標數據源或者數據量相對較少的情況,可以借助于人工檢測方式來進行人工清洗。但對于數據庫龐大、數據結構復雜的數據源,可以引入計算機清洗。利用SPSS、SAS、Python 等軟件,通過設置校驗規則,對數據源中的不同字段的取值范圍、缺失值、數據類型、拼寫錯誤檢查等進行識別,對離散程度不大的數據源,可以通過數據分布特征或箱線圖來進行處理。需要強調的是,在數據清洗過程中,準確性、完整度、現時度、一致度等都是衡量數據清洗質量的重要指標。如某數據以<e,a,v>方式進行描述,e 表示實體,a 表示屬性,v 表示具體值。準確度就表示為v 值與真實值v'的接近程度。若v=v',則被認為是準確的,否則,這個值是不準確的。完整度表示為對一切實體的所有屬性,其對應值是否完整的程度。現時度是與數據源中的數據信息是否會隨著時間的變化而改變,如人的年齡、體重等信息,并非靜態的。現時度就是衡量時態數據的一個維度,如果某數據在t 時刻是準確的,如果在t時刻是過期的,則數據的值是不準確的。一致度是衡量數據的值是否與數據模型所定義的約束條件保持一致。在一些商業調查中,數據庫中的數據在不同環境下被設計成不同模型,而同一數據在不同數據模型中的表現形式也不盡相同,這就需要對數據進行抽取、整合,來解決數據一致性問題。如某人收入信息字段,一些數據庫是以人民幣為結算單位,一些數據以美元為結算單位,這就需要對該字段數據一致性進行處理。最后,對于數據清洗,還需要結合數據質量要求,進行數據審核與評估,來提升數據清洗的準確性、完整性、現時度、一致度。
數據清洗中常見問題主要有異常值、缺失值、樣本重復或其他數據類型錯誤等。通常,在異常值處理中,面對數據樣本中的個別值與樣本屬性值之間存在較大或明顯的偏差,從而表現出異常值現象。數據清洗時,可以通過設置箱形圖方式,對一些異常值的范圍進行設置,通過閾值方式來規避大于或小于箱形圖上下界的數值,都給予異常值處理。在處理異常值問題時,一種方式是將異常值轉變為缺失值,再進行填補缺失值;另一種方式是直接刪除,不做統計分析。一般而言,對調查數據的刪除操作要謹慎,因為一些被刪除數據可能也是對某種情況的反映,如果盲目刪除異常值數據,可能帶來調查統計結果的失真。如在對某吸煙群體進行統計調查中,吸煙量中的個別異常數據,可能與煙民所在地區、年齡、職業等有較大關系。如果將這些異常值進行刪除,可能會影響分析結果。因此,在數據清洗過程中,對于異常值的處理要審慎,要結合具體的字段、數據類型及調查實際,對相關異常值進行判斷分析。異常值數據是否為錄入錯誤,可以通過查看紙質問卷、訪談錄音,或者電話聯系受訪者等方式進行復核。針對錄入錯誤在核實后可以進行直接修改;對于真實的異常值,還應該作為調查統計的一部分。
調查統計中的數據出現缺失值時,其處理方法有以下幾種:
1.將空缺樣本數據提交給調查機構復核,并補充完整。
2.當樣本數量足夠大時,可以直接刪除,對總體數據影響不大。
3.采用特殊填充方法。結合數據調查內容、屬性值類型,根據樣本均值、中位數、眾數等方式進行填充。當然,特殊填充法本身就對數據帶來了影響,因此要合理綜合,避免填充值給數據調查帶來嚴重偏差。
4.根據變量間的關系進行推算。如根據行政區劃碼,填寫對應城市信息等。
另外,一些大型統計調查項目在調查中可能會有備用樣本,針對一些有異常值、缺失值的數據樣本,還可以直接從備用樣本中進行補充。針對調查樣本中的重復問題,如利用SAS 軟件對數據字段進行處理時,可以通過設置比對條件來檢查樣本是否重復。同樣,在對數據進行清洗時,一些變量本身具有重復性,如地區、姓名、電話等存在重復時,可以進行原始數據核查、確認后給予刪除處理。針對統計調查中數據清洗時的其他錯誤問題,如一些字段數據類型不匹配,數據存儲格式不合理,拼寫錯誤,單個字段存在多個值,或者數據間存在矛盾性等。對于該類問題,通常需要結合數據樣本原始數據,就可能存在的錄入錯誤進行核查,是否存在錄入錯誤、受訪者信息是否失真等等。數據清洗時,對一些變量值出現的異常問題,要根據描述性統計信息,分析各個變量的合理取值范圍,對于不符合邏輯或存在矛盾的數據進行檢測,并進行處理。
實際操作中,根據統計調查數據源的規模及數據質量要求,需要對“臟數據”進行分析,并對出現的數據偏差進行處理。總體而言,為提升數據清洗質量和效率,建議做好以下工作:
1.重視數據清洗環節,結合統計調查數據,設置合理、科學的數據清洗方案,提升數據清洗質量。
2.注重對數據清洗人力結構與專業能力的提升。統計調查涉及的數據量大、人員多,對相關人員的專業化水平要求更高。如果不懂統計業務,可能會帶來數據錄入錯誤。一些數據在進行清洗時,需要從數據邏輯關系上進行判斷,對重要數據進行檢驗,提升數據清洗科學效度。
3.做好數據清洗流程安排。根據數據清洗要求,細化崗位職責,充分發揮計算機、人工輔助數據清洗優勢,保障數據清洗質量。
4.構建統一的數據管理平臺,積極引入現代網絡、大數據、云平臺等技術,對相關數據統一收集、存儲、審核、處理,確保數據統計分析質量。