題:
基本數據檢查測試
Chris Beeley
2011-06-07 13:19:23 UTC
view on stackexchange narkive permalink

在工作中,我經常與其他人的數據集一起工作,非專家為我帶來了臨床數據,我幫助他們將其匯總並進行統計檢驗。

我遇到的問題是數據集幾乎總是給我帶來錯別字,不一致和其他各種問題。我很想知道其他人是否有標準測試,他們會嘗試檢查輸入的任何數據集。

我曾經繪製每個變量的直方圖只是為了看看,但我現在意識到許多可怕的錯誤可以在測試中倖存下來。例如,前幾天我有一個重複測量數據集,對於某些人,該重複測量在時間2上與時間1上相同。這隨後被證明是不正確的,正如您所期望的那樣。另一個數據集包含一個個體,從非常嚴重的無序狀態(由高分錶示)變為無問題(由0表示)。

那是不可能的,儘管我無法確切地證明這一點。

那麼我可以對每個數據集進行哪些基本測試,以確保它們沒有錯別字且不包含不可能的值?

謝謝!

好問題。我懷疑很難給出一般性的答案,因為檢查將取決於數據集的具體情況。
@mark999我同意。我將有興趣閱讀該問題的答案。有一些通用策略,但是我發現很多檢查都是針對建立特定於域的期望進行的,既涉及數據的外觀,也涉及可能出現的一些常見錯誤。
這裡的讀者也將對以下主題感興趣:[數據庫的質量保證和質量控制(qa / qc)準則](http://stats.stackexchange.com/questions/7467/)。
六 答案:
whuber
2011-06-07 19:30:49 UTC
view on stackexchange narkive permalink

這有助於了解數據的記錄方式。

讓我分享一個故事。很久以前,許多數據集只存儲在褪色的硬拷貝中。在那段黑暗的日子裡,我與一家組織(譜系和規模很大;你們中的許多人可能都擁有股票)簽約,以在其一家製造工廠中對約10 ^ 5條環境監測數據記錄進行計算機處理。為此,我親自標記了實驗室報告的架子(以顯示數據的位置),創建了數據輸入表單,並與臨時代理機構簽約,以使文化工作者將數據鍵入表單中。 (是的,您必須為能夠閱讀的人支付額外的費用。)由於數據的價值和敏感性,我一次與兩名工作人員(通常每天都在變化)並行進行此過程。花了幾個星期。我編寫了用於比較兩組條目的軟件,以系統地識別和糾正出現的所有錯誤。

男孩有錯誤!有什麼問題嗎?描述和測量誤差的一種好方法是在基本的記錄級別,在這種情況下,該記錄是對獲得的特定樣品的單一分析結果(通常是某些化學物質的濃度)的描述。在給定日期的給定監視點。在比較這兩個數據集時,我發現:

  • 遺漏錯誤:一個數據集將包含一條記錄,另一個數據集將不包含記錄。通常發生這種情況是因為(a)在頁面底部忽略了一行或兩行,或者(b)將跳過整個頁面。

  • 明顯遺漏錯誤實際上是數據輸入錯誤。記錄由監視點名稱,日期和“分析物”(通常是化學名稱)標識。如果其中任何一個有印刷錯誤,它將不會與與其相關的其他記錄匹配。實際上,正確的記錄消失了,並且出現了錯誤的記錄。

  • 假複製。相同的結果可以出現在多​​個來源中,可以多次轉錄,如果沒有,它們似乎是真正的重複測量。重複項易於檢測,但是要確定重複項是否錯誤取決於是否知道重複項是否應該出現在數據集中。有時您只是不知道。

  • 坦率的數據輸入錯誤。 “好”的那些容易更改,因為它們會更改基準面的 type :例如,將字母“ O”用作數字“ 0”會將數字轉換為非數字。其他良好的錯誤會大大改變該值,因此可以通過統計測試輕鬆檢測到。 (在一種情況下,“ 1,000,010 mg / Kg”的前一位數字被截斷,保留為10的值。當您談論農藥濃度時,這是一個巨大的變化!)很難發現錯誤,因為它們會發生變化將一個值放入一個適合(類似於)其餘數據的值,例如,將“ 50”鍵入“ 80”。 (此類錯誤始終在OCR軟件中發生。)

  • 換位。可以輸入正確的值,但與錯誤的記錄鍵相關聯。這很隱蔽,因為數據集的全局統計特徵可能保持不變,但是在組之間可能會產生虛假差異。也許只有兩次輸入之類的機制才能夠檢測到這些錯誤。 ,您可以編寫腳本來拖曳數據集以了解是否可能出現此類錯誤,並標記它們以進一步關注。您不能總是解決它們,但至少可以在註釋的後面加上“評論”或“質量標誌”字段,以便在以後的分析中始終將它們與數據一起使用。

    從那時起,我開始關注數據質量問題,並且有更多的機會對大型統計數據集進行全面檢查。沒有一個是完美的。他們都從質量檢查中受益。多年來,我為此制定的一些原則包括

    1. 在可能的情況下,在數據輸入和數據轉錄過程中創建冗餘:校驗和,總計重複條目:支持自動內部一致性檢查的所有內容。

    2. 如果可能,創建並利用另一個描述數據外觀的數據庫,即計算機可讀元數據。。例如,在藥物實驗中,您可能事先知道每個病人都會被看過3次。這樣一來,您就可以創建一個數據庫,其中包含所有正確的記錄及其標識符,並帶有等待輸入的值。用給定的數據填充它們,然後檢查重複,遺漏和意外數據。

    3. 始終對數據進行規範化(具體來說,至少使它們成為第四範式),無論您打算如何格式化數據集分析。這迫使您為要建模的每個概念上不同的實體創建表。 (在環境情況下,這將包括監視位置,樣品,化學藥品(特性,典型範圍等),這些樣品的測試(測試通常涵蓋一組化學藥品)以及這些測試的各個結果的表。這樣,您可以對數據質量和一致性進行許多有效的檢查,並確定許多潛在的丟失,重複或不一致的值。

      這項工作(需要良好的數據處理技能,但很簡單)非常有效。如果您想分析大型或複雜的數據集,並且對關係數據庫及其理論不了解,請盡快將其添加到要學習的事物列表中。

    4. 它會在您的整個職業生涯中派息。這些是對明顯事物的自動驗證,例如日期落在其預期期限內,患者(或化學藥品或其他任何東西)的計數總是正確地相加,值始終是合理的(例如,pH必須在0到14之間,並且可能在諸如,範圍更窄的血液pH值讀數等)。這是領域專業知識可以提供最大幫助的地方:統計學家可以無所畏懼地問專家的愚蠢問題,並利用答案來檢查數據。

    5. ol>

      當然可以說更多的東西了-該主題值得一本書-但這足以激發思想。

[數據庫QA / QC指南]的出色附錄(http://stats.stackexchange.com/questions/7467/quality-assurance-and-quality-control-qa-qc-guidelines-for-a-database/7472# 7472)
一個後續問題-該主題值得一本書-是否有一本書?
@Chris 1990年左右出版了一本。我不記得它的標題或作者,因為幾年前我把它扔掉了:它太籠統,充滿了瑣碎的明顯“原理”,因此一文不值。
+1-精彩的答案。希望您有一個博客:)(我很想將您的著作添加到r-bloggers.com)
您應該寫一本值得一讀的書!
這是如此復雜,以至於許多諮詢公司專門從事“數據檢索/清理/存儲”。
JMS
2011-06-07 22:04:53 UTC
view on stackexchange narkive permalink

@whuber提出了很好的建議;我只會添加:地塊,地塊,地塊,地塊。散點圖,直方圖,框圖,線圖,熱圖以及您可以想到的其他任何東西。當然,正如您所發現的那樣,在任何情節中都不會出現明顯的錯誤,但它們是一個很好的起點。只需確保清楚您的軟件如何處理丟失的數據等即可。

根據上下文的不同,您可以發揮創造力。我想對多元數據做的一件事是擬合某種因素模型/概率PCA(對缺失的數據進行多次插補的某種方法),並查看盡可能多的成分的得分。在次要因素/因素上得分較高的數據點通常是異常值,否則您可能看不到。

+1繪圖用於統計芝加哥的投票:每個人都經常做的事,而且經常做。 ;-)
Tal Galili
2011-09-19 13:44:43 UTC
view on stackexchange narkive permalink

我傾向於檢查的重要內容:

  1. 變量類型-看到數字是數字,而不是因數/字符(可能表示輸入的數據有問題)
  2. 一致的值級別-看到名稱為“ t1”的變量再也找不到其自身為“ t1”或“ t 1”的變量
  3. 離群值-價值範圍是有意義的。 (您的血壓值是0還是負?)。在這裡,我們有時會發現有人將-5編碼為缺失值或類似的值。
  4. 線性限制。我不使用它,但是有些人發現他們希望對某些列的依賴項進行重構(列A,B必須添加到C或類似的東西)。為此,您可以看一下 deducorrect軟件包(我在上次useR會議上遇到了演講者Mark van der Loo,他的軟件包給我留下了深刻的印象)
  5. 隨機性太少。有時,值必須四捨五入為某些值,或在某些時候被截斷。這些類型的事情在散點圖中通常更清晰。
  6. 缺少值-確保丟失與其他變量(隨機丟失)無關。但是我沒有經驗法則。
  7. 空行或幾乎沒有值的行。
  8. ol>

    很好的問題BTW-我希望閱讀其他人在此問題上的經驗。

robin girard
2011-06-07 13:42:59 UTC
view on stackexchange narkive permalink

當您隨時間進行測量(“ 縱向數據”)時,檢查梯度以及邊際分佈通常很有用。可以在不同的比例下計算此梯度。通常,您可以對數據進行有意義的轉換(傅立葉,小波),並檢查轉換後數據的邊際分佈。

Fomite
2011-09-19 13:33:15 UTC
view on stackexchange narkive permalink

我經常要經歷的一些事情:

  1. 應該有多少條記錄?例如,如果您從其他來源或其他人數據的子集中提取數據,您的數字看起來合理嗎?您以為可以解決這個問題,但是您會...感到驚訝。
  2. 所有變量都在那裡嗎?這些變量的值有意義嗎?例如,如果將Yes / No / Missing變量編碼為“ 1,2,3”,這意味著什麼?
  3. 您缺少的值在哪裡?是否有一些變量似乎缺少信息?是否有某些主題帶有大量缺失值。
  4. ol>

    這些是我要確保數據集甚至準備好用於探索性數據的第一步分析。只是坐下來,在數據上漫遊一些,“看起來...似乎正確嗎?”

Tareq Shahwan
2016-03-31 20:43:47 UTC
view on stackexchange narkive permalink

我將對每一列使用驗收抽樣方法(它給出了可以在高質量和低質量之間劃界的分界線),為此提供了一個在線計算器。

就目前而言,將其作為評論比作為答案更合適。請詳細說明,提供指向資源或參考的鏈接等
很難看到在許多情況下這是有效的,並且容易找到許多根本不起作用的條件(例如字符串或其他名義數據)或可怕的(因為它完全忽略了所有多元關係)。這似乎是任意的,因為除了時間序列(和一些相關數據)之外,數據表的記錄中沒有固有的順序,而許多(如果不是全部)驗收採樣方法取決於序列。
好了,這是要使用的計算器:http://www.sqconline.com/squeglia-zero-based-acceptance-sampling-plan-calculator只要您使用隨機接受抽樣就可以使用。如果要使其複雜化,可以使用系統採樣技術,然後在每個段上使用驗收採樣


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...