データベースの品質保証および品質管理(QA / QC)ガイドライン


18

バックグラウンド

私は一次文献からデータベースへのデータの入力を監督しています。特に、ユーザーが実験計画を解釈し、グラフィックと表からデータを抽出し、結果を標準化された単位に変換する必要があるため、データ入力プロセスはエラーが発生しやすくなります。

データは、Webインターフェイスを介してMySQLデータベースに入力されます。これまでに、20を超える変数、100を超える種、および500を超える引用からの1万を超えるデータポイントが含まれています。可変データだけでなく、各データポイントに関連付けられた種、研究の場所など、ルックアップテーブルに含まれるデータの品質のチェックを実行する必要があります。

データ入力が進行中のため、QA / QCを断続的に実行する必要があります。データはまだ公開されていませんが、今後数か月以内に公開する予定です。

現在、私のQA / QCには3つの手順が含まれています。

  1. 2人目のユーザーが各データポイントをチェックします。
  2. 外れ値の各変数のヒストグラムを視覚的に検査します。
  3. ユーザーは、誤った結果が得られた後に疑わしいデータを報告します。

ご質問

  1. このデータベースの堅牢なQA / QC手順の開発に使用できるガイドラインはありますか?
  2. 最初のステップは最も時間がかかります。これをより効率的にするためにできることはありますか?

1
ここの読者は、次のスレッドにも興味があります:必須データチェックテスト
GUNG -復活モニカ

回答:


25

この回答は2番目の質問に焦点を当てていますが、その過程で最初の質問に対する部分的な回答(QA / QC手順のガイドライン)が明らかになります。

あなたができる最善のことは、入力が試みられたときにデータ品質をチェックすることです。ユーザーのチェックとレポートは労働集約型であるため、実行可能な限り遅く、プロセスの後半に予約する必要があります。

豊富な経験から得られたいくつかの原則、ガイドライン、および提案を以下に示します(多くのデータベースの設計と作成は、お客様のデータベースに匹敵し、はるかに大きい)。それらはルールではありません。成功し効率的にするためにそれらに従う必要はありません。しかし、それらはすべて優れた理由でここにあり、それらから逸脱することについて一生懸命に考える必要があります。

  1. 知的に要求されるすべての活動からデータ入力を分離します。データ入力オペレーターに同時に何かをチェックしたり、数を数えたりするように頼まないでください。コンピューター読み取り可能なデータのファクシミリを作成することだけに仕事を制限してください。特に、この原則は、データ入力フォームが、データを保存する予定の形式ではなく、最初にデータを取得する形式を反映する必要があることを意味します。後である形式から別の形式に変換するのは比較的簡単ですが、データを入力しながらその場で変換を試みるのはエラーが発生しやすいプロセスです。

  2. データ監査証跡を作成しますデータに何かが行われるたびに、データ入力段階から開始し、これを文書化し、簡単に戻って問題が発生したことを確認できるように手順を記録します(問題が発生するため)。タイムスタンプ、データ入力演算子の識別子、元のデータのソースの識別子(レポートやページ番号など)のフィールドへの入力を検討してください。ストレージは安価ですが、エラーを追跡する時間は高価です。

  3. すべてを自動化します。 マーフィーの法則によれば、どのステップもやり直す必要があると想定し(最悪の場合には)、それに応じて計画します。手作業でいくつかの「簡単な手順」を実行して、時間を節約しようとしないでください。

  4. 特に、データ入力のサポートを作成します。各テーブルのフロントエンドを作成し(スプレッドシートでもうまくできる)、データを取得するための明確でシンプルで統一された方法を提供します。同時に、フロントエンドは「ビジネスルール:」つまり、できる限り多くの単純な有効性チェックを実行する必要があります。(たとえば、pHは0〜14でなければなりません。カウントは正でなければなりません。)理想的には、DBMSを使用してリレーショナル整合性チェックを強制します(たとえば、測定に関連するすべての種が実際にデータベースに存在します)。

  5. 常に物事を数え、その数が正確に一致することを確認してください。たとえば、調査で10種の属性を測定することになっている場合は、(データの入力が完了するとすぐに)10種が本当に報告されていることを確認してください。カウントのチェックは簡単で有益ではありませんが、重複したデータや省略されたデータの検出には優れています。

  6. データが貴重で重要な場合は、データセット全体を個別に二重入力することを検討してください。つまり、各アイテムは、相互作用しない2人の異なるユーザーによって別々の時間に入力されます。これは、タイプミスや欠落データなどをキャッチするのに最適な方法です。クロスチェックは完全に自動化できます。これは、100%の手動ダブルチェックよりも高速で、エラーの検出に優れ、効率的です。(データエントリ「people」には、OCR付きスキャナーなどのデバイスを含めることができます。)

  7. DBMS使用して、データを保存および管理します。スプレッドシートはデータ入力をサポートするのに最適ですが、データをスプレッドシートまたはテキストファイルからできるだけ早く実際のデータベースに取得します。これにより、あらゆる種類の潜在的なエラーが防止され、自動データ整合性チェックのサポートが多数追加されます。必要に応じて、データの保存と管理に統計ソフトウェアを使用しますが、専用のDBMSの使用を真剣に検討してください。それはより良い仕事をします。

  8. すべてのデータを入力して自動的にチェックした後、画像を描画します。ソートされたテーブル、ヒストグラム、散布図などを作成し、それらすべてを確認します。これらは、本格的な統計パッケージで簡単に自動化できます。

  9. コンピューターが実行できる反復タスクを実行するように人々に依頼しないでください。これらの場合、コンピューターははるかに高速で信頼性が高くなります。すぐには完了できないタスクを実行するために、小さなスクリプトや小さなプログラムを作成(および文書化)する習慣を身に付けます。これらは監査証跡の一部となり、作業を簡単にやり直すことができます。使いやすいプラットフォームを使用してください。これはタスクに適しています。(長年にわたって、利用可能なものに応じて、CおよびFortranプログラムからAWKおよびSEDスクリプト、ExcelおよびWord用のVBAスクリプト、カスタムに至るまで、そのようなプラットフォームを幅広く使用し、すべてその方法で効果を発揮してきました。リレーショナルデータベースシステム、GIS、およびRやStataなどの統計分析プラットフォーム用に作成されたプログラム。)

これらのガイドラインのほとんどに従う場合、データベースにデータを取り込む作業の約50%〜80%は、データベースの設計とサポートスクリプトの作成になります。そのようなプロジェクトで90%を達成し、50%未満で完了し、それでも時間通りに終了することは珍しいことではありません。すべてのセットアップとテストが完了すると、データ入力とチェックが驚くほど効率的になります。


4
まあ、私はこの答えにとても恋をしています。次のポイント4で、チェックをシンプルに保つ必要があることを強調したいと思います。実際のデータには、エントリの人々が入力できるはずであるが、予測できない不整合がほとんどないことがよくあります。たとえば、日付が日付として入力されていることを確認します。しかし、私は日付範囲に関する厳格なルールを廃止し、代わりにレポートでそれを確認し、データ入力を行った人に範囲外の値をフォローアップしました。
マットパーカー

5
誰かが正しいと信じている値を入力できないようにすると、それを検出して調査するよりも多くのエラーが発生する可能性があります。
マットパーカー

+1、素晴らしい答え。私はマットに同意します、私もこの答えが大好きです:)
mpiktas

1
@Matt良い点、その両方。同意します。最初のものについては、データの小さな代表的なサブセットでデータ入力手順をテストし、発生するすべての問題を徹底的に調査することをお勧めします。これにより、発生する可能性のあるすべての問題に対処することはできませんが、ほとんどの主要な問題を早期に特定し、効果的に対処することができます。
whuber

2
この情報を追加すると、1つの場所で役立ちます。1.メタデータを含むビジネスルールドキュメントを作成します。年齢などの派生変数を生成するために使用されるルールを含みます。2.これが特に管理データベースである場合、変数が時間とともに変化すると仮定します。たとえば、新しいコードが追加されます。メタデータで、変更が発生した時期と、これが時系列の動作にどのように影響するかを説明します。3.データベースが時間の経過とともに追加される場合、日付とタイムスタンプがデータベースに変更されます。
ミシェル

3

DataOneは、タグでフィルタリングできる便利なデータ管理のベストプラクティスのセットを提供します。http://www.dataone.org/best-practices/qualityにある「品質」でタグ付けされたベストプラクティス。ここで取り上げるトピックのリストをアルファベット順に示します。

  • データ品質の伝達
  • データとメタデータの説明の一致を確認します
  • 統合するデータの互換性を考慮してください
  • 品質保証および品質管理計画を作成する
  • 入力したデータを再確認してください
  • 基本的な品質管理を確保する
  • データのバックアップを作成するときに整合性とアクセシビリティを確保する
  • 外れ値を特定する
  • 推定される値を特定する
  • 使用および検出のためのバージョン情報を提供する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.