Dataset

數據庫的質量保證和質量控制 (QA/QC) 指南

  • February 21, 2011

背景

我正在監督將原始文獻中的數據輸入數據庫。數據輸入過程很容易出錯,特別是因為用戶必須解釋實驗設計,從圖形和表格中提取數據,並將結果轉換為標準化單位。

數據通過 Web 界面輸入 MySQL 數據庫。迄今為止,已包含來自 > 20 個變量、> 100 個物種和 > 500 次引用的超過 10k 個數據點。我不僅需要檢查變量數據的質量,還需要檢查查找表中包含的數據,例如與每個數據點相關的物種、研究的位置等。

數據輸入正在進行中,因此 QA/QC 需要間歇運行。這些數據尚未公開發布,但我們計劃在未來幾個月內發布。

目前,我的 QA/QC 涉及三個步驟:

  1. 第二個用戶檢查每個數據點。
  2. 目視檢查直方圖每個變量的異常值。
  3. 用戶在獲得虛假結果後報告有問題的數據。

問題

  1. 是否有可用於為該數據庫開發強大的 QA/QC 程序的指南?
  2. 第一步是最耗時的;我能做些什麼來提高效率嗎?

此響應側重於第二個問題,但在此過程中將出現對第一個問題(QA/QC 程序指南)的部分答案。

到目前為止,您能做的最好的事情是在嘗試輸入時檢查數據質量。用戶檢查和報告是勞動密集型的,因此應在流程的後期保留,盡可能晚。

這裡有一些原則、指導方針和建議,它們源自豐富的經驗(設計和創建的許多數據庫與您的數據庫相當並且比您的數據庫大得多)。它們不是規則;您不必遵循它們即可成功和高效;但他們都在這裡有很好的理由,你應該認真考慮偏離他們。

  1. 將數據輸入與所有需要智力的活動分開。不要同時要求數據輸入操作員檢查任何內容、計算任何內容等。將他們的工作限制為創建數據的計算機可讀傳真,僅此而已。特別是,該原則意味著數據輸入表格應反映您最初獲取數據的格式,而不是您計劃存儲數據的格式。稍後將一種格式轉換為另一種格式相對容易,但在輸入數據時嘗試即時轉換是一個容易出錯的過程。
  2. 創建數據審計跟踪:每當對數據進行任何操作時,從數據輸入階段開始,記錄並記錄程序,以便輕鬆返回並檢查出了什麼問題(因為事情會出錯)。考慮填寫時間戳字段、數據輸入操作員的標識符、原始數據的來源標識符(例如報告及其頁碼)等。存儲成本低,但追踪錯誤的時間成本高。
  3. 自動化一切。 假設任何步驟都必須重做(根據墨菲定律,在最壞的時間),並相應地計劃。現在不要試圖通過手動執行幾個“簡單步驟”來節省時間。
  4. 特別是創建對數據輸入的支持:為每個表(甚至電子表格也可以做得很好)創建一個前端,提供清晰、簡單、統一的方式來獲取數據。同時前端應該強制執行您的“業務規則:”也就是說,它應該執行盡可能多的簡單有效性檢查。(例如,pH 必須在 0 和 14 之間;計數必須是正數。)理想情況下,使用 DBMS 來執行關係完整性檢查(例如,與測量相關的每個物種都確實存在於數據庫中)。
  5. 不斷地計算事物並檢查計數是否完全一致。例如,如果一項研究要測量 10 個物種的屬性,請確保(一旦數據輸入完成)確實報告了 10 個物種。儘管檢查計數簡單且信息量不足,但它非常適合檢測重複和遺漏的數據。
  6. 如果數據有價值且重要,請考慮獨立重複輸入整個數據集。這意味著每個項目將由兩個不同的非交互人員在不同的時間輸入。這是捕獲拼寫錯誤、丟失數據等的好方法。交叉檢查可以完全自動化。這比 100% 的手動雙重檢查更快、更好地捕捉錯誤並且更有效。(數據條目“人”可以包括設備,例如帶有 OCR 的掃描儀。)
  7. 使用 DBMS來存儲和管理數據。電子表格非常適合支持數據輸入,但要盡快將數據從電子表格或文本文件中取出並放入真實數據庫。這可以防止各種隱蔽錯誤,同時增加了對自動數據完整性檢查的大量支持。如果必須,請使用您的統計軟件進行數據存儲和管理,但請認真考慮使用專用 DBMS:它會做得更好。
  8. 全部數據錄入並自動核對後,畫圖:製作排序表、直方圖、散點圖等,全部查看。這些可以通過任何成熟的統計軟件包輕鬆實現自動化。
  9. 不要要求人們做計算機可以做的重複性任務。計算機在這些方面更快,更可靠。養成編寫(和記錄)小腳本和小程序的習慣,以完成任何無法立即完成的任務。這些將成為您審計跟踪的一部分,它們將使工作能夠輕鬆重做。使用您喜歡的任何適合任務的平台。(多年來,根據可用的平台,我使用過各種各樣的此類平台,並且都以它們的方式有效,從 C 和 Fortran 程序到 AWK 和 SED 腳本,用於 Excel 和 Word 的 VBA 腳本,以及自定義為關係數據庫系統、GIS 和 R 和 Stata 等統計分析平台編寫的程序。)

如果您遵循這些準則中的大部分,將數據輸入數據庫的工作中大約 50%-80% 將是數據庫設計和編寫支持腳本。通過這樣的項目完成 90% 並完成不到 50% 的情況並不少見,但仍能按時完成:一旦一切都設置好並經過測試,數據輸入和檢查會非常高效。

引用自:https://stats.stackexchange.com/questions/7467

comments powered by Disqus