基本數據檢查測試
在我的工作角色中,我經常使用其他人的數據集,非專家給我帶來臨床數據,我幫助他們總結並進行統計測試。
我遇到的問題是,我帶來的數據集幾乎總是充滿錯別字、不一致和各種其他問題。我很想知道其他人是否進行了標準測試來嘗試檢查傳入的任何數據集。
我曾經繪製每個變量的直方圖只是為了看看,但我現在意識到有很多可怕的錯誤可以在這個測試中倖存下來。例如,前幾天我有一個重複測量數據集,對於某些人來說,重複測量在時間 2 和時間 1 是相同的。後來證明這是不正確的,正如你所期望的那樣。另一個數據集有一個人從非常嚴重的無序(以高分錶示)變為沒有問題,以全線 0 表示。這是不可能的,儘管我無法確定地證明這一點。
那麼我可以在每個數據集上運行哪些基本測試以確保它們沒有拼寫錯誤並且它們不包含不可能的值?
提前致謝!
它有助於了解數據是如何記錄的。
讓我分享一個故事。很久以前,許多數據集只存儲在褪色的硬拷貝中。在那些黑暗的日子裡,我與一個組織(具有偉大的血統和規模;你們中的許多人可能擁有它的股票)簽訂了合同,將其其中一個製造工廠的大約 10^5 條環境監測數據記錄計算機化。為此,我親自標記了實驗室報告的架子(以顯示數據的位置),創建數據輸入表格,並與臨時機構簽約以進行識字工人將數據輸入表格。(是的,您必須為能夠閱讀的人支付額外費用。)由於數據的價值和敏感性,我一次與兩名工人並行進行此過程(他們通常每天都在變化)。花了幾個星期。我編寫了軟件來比較兩組條目,系統地識別和糾正所有出現的錯誤。
男孩有錯誤!會出什麼問題?描述和測量誤差的一個好方法是在基本*記錄的級別上,*在這種情況下,它是對在給定監測點上獲得的特定樣品的單個分析結果(通常是某種化學物質的濃度)的描述給定日期。在比較這兩個數據集時,我發現:
- 遺漏錯誤:一個數據集將包含記錄,另一個則不包含。這通常是因為(a)在頁面底部會忽略一兩行,或者(b)會跳過整個頁面。
- 明顯的遺漏錯誤實際上是數據輸入錯誤。記錄由監測點名稱、日期和“分析物”(通常是化學名稱)標識。如果其中任何一個有印刷錯誤,它將不會與與之相關的其他記錄匹配。實際上,正確的記錄消失了,錯誤的記錄出現了。
- 假複製。相同的結果可以出現在多個來源中,被多次轉錄,並且似乎是真正的重複測量,但實際上並非如此。重複項很容易檢測,但確定它們是否錯誤取決於是否知道重複項是否應該出現在數據集中。有時候你就是不知道。
- 坦率的數據輸入錯誤。“好”的很容易被抓住,因為它們改變了數據的類型:例如,使用字母“O”代表數字“0”,將數字變成非數字。其他好的錯誤會極大地改變值,以至於可以通過統計測試輕鬆檢測到。(在一種情況下,“1,000,010 mg/Kg”中的首位數字被截斷,留下了 10 的值。當您談論農藥濃度時,這是一個巨大的變化!)壞錯誤很難被發現,因為它們會改變一個與其餘數據相匹配(某種程度)的值,例如為“50”鍵入“80”。(這種錯誤一直發生在 OCR 軟件中。)
- 換位。可以輸入正確的值,但與錯誤的記錄鍵相關聯。這是陰險的,因為數據集的全局統計特徵可能保持不變,但可以在組之間創建虛假差異。可能只有像複式輸入這樣的機制甚至能夠檢測到這些錯誤。
一旦您意識到這些錯誤並知道它們是如何發生的,或者有一個理論,您就可以編寫腳本來控制您的數據集以查找可能存在的此類錯誤,並將它們標記為進一步關注。你不能總是解決它們,但至少你可以包含一個“評論”或“質量標誌”字段,以在他們以後的分析中伴隨數據。
從那時起,我就開始關注數據質量問題,並有更多機會對大型統計數據集進行全面檢查。沒有一個是完美的;他們都受益於質量檢查。我多年來為此制定的一些原則包括
- 只要有可能,在數據輸入和數據轉錄過程中創建冗餘:校驗和、總計、重複輸入:任何支持自動內部一致性檢查的東西。
- 如果可能,創建和利用另一個*描述數據應該是什麼樣子的數據庫:*即計算機可讀的元數據。 例如,在藥物實驗中,您可能事先知道每位患者將被看 3 次。這使您能夠創建一個數據庫,其中包含所有正確的記錄及其標識符以及等待填寫的值。用給定的數據填寫它們,然後檢查重複、遺漏和意外數據。
- 無論您計劃如何格式化數據集以進行分析,始終對您的數據進行規範化(具體而言,將它們至少轉換為第四範式)。這迫使您為正在建模的每個概念上不同的實體創建表。(在環境案例中,這將包括監測位置、樣品、化學品(特性、典型範圍等)、這些樣品的測試(測試通常涵蓋一套化學品)以及這些測試的單個結果的表格。在這樣做的過程中,您可以對數據質量和一致性進行許多有效檢查,並識別許多可能丟失、重複或不一致的值。
這項工作(需要良好的數據處理技能,但很簡單)非常有效。如果您渴望分析大型或複雜的數據集,並且對關係數據庫及其理論沒有很好的工作知識,請盡快將其添加到您的學習清單中。它將在您的整個職業生涯中帶來紅利。 4. 始終盡可能多地執行“愚蠢”檢查。這些是對明顯事物的自動驗證,例如日期落在預期的時期內,患者(或化學品或其他)的計數總是正確地加起來,值總是合理的(例如,pH 值必須在 0 到 14 之間,並且可能在例如,血液 pH 值讀數的範圍要窄得多)等。這是領域專業知識可以提供最大幫助的地方:統計學家可以無所畏懼地向專家提出愚蠢的問題,並利用答案來檢查數據。
當然可以說的更多——這個主題值得一本書——但這應該足以激發想法。