人々にデータをよりよく世話させるにはどうすればよいですか?


42

私の職場には非常に幅広い分野の従業員がいるため、さまざまな形でデータを生成しています。その結果、各チームはデータを保存する独自のシステムを開発しました。AccessデータベースまたはSQLデータベースを使用するものもあります。一部のチーム(私の恐怖)は、ほぼ完全にExcelスプレッドシートに依存しています。多くの場合、データ形式はプロジェクトごとに変わります。場合によっては、それを「システム」と呼ぶのはあまりにも親切です。

これに伴う問題は、すべてのプロジェクトのデータを消去するために新しいコードを作成する必要があることです。これは高価です。スプレッドシートを手動で編集する人は、データの再現性と監査をほぼ不可能にします。さらに悪いことに、データが失われたり、不正確になったりする可能性があります。

私は会社の役員とこれらの問題について話し合う機会を与えられました。私は彼に何を伝えるべきかを考え出す必要があります。私たちには問題があり、これを正しくすることでより良い科学とお金の節約が可能になると彼を説得したと思います。問題は、何を目指すべきか、そしてどのようにそこに到達するかです。

すなわち:

論文の作成から公開まで追跡できるように、データをどのように保存する必要がありますか?(データベースは中央サーバーに保存されていますか?)

データベース形式を標準化するにはどうしますか?

データの世話をする方法について人々を教育するための良いリソースはありますか?(原則として、職業衛生士と爆発物のエンジニアはデータオタクではないため、非技術的なコンテンツが優先されます。)


タイトルの質問は、投稿の実質的な質問とは異なります。前者は、データを管理するように人々を説得する方法について尋ね、後者は、データを保存するための最善の方法について尋ねます。答えたい質問はどれですか?
モニカ

回答:


16

ソフトウェアの世界からのアイデアを検討する価値があります。特に、バージョン管理リポジトリと中央データベースサーバーのセットアップを考えるかもしれません。

バージョン管理は、おそらくExcelやテキストファイルなどの無料のフローティングファイルで役立ちます。ただし、これには、R、SASなどのデータに関連付けられたファイルも含まれる可能性があります。アイデアは、変更を追跡するシステムがあるということですファイルを使用すると、何がいつ発生したかを把握し、必要に応じて過去の時点にロールバックできます。

既にSQLデータベースがある場合、できる最善のことは、中央サーバーをセットアップし、有能なDBAを雇うことです。DBAは、データの整合性の確保と管理を担当する人です。ジョブの説明の一部には、バックアップやチューニングなどが含まれます。ただし、ここでは別の部分がより重要です。データのシステムへの入力方法の制御、制約の充足、データへの害を防ぐためのアクセスポリシーの設定、カスタムまたは簡易データ形式を公開するためのビューの設定などです。データプロセスに関する方法論の実装。実際のDBAを雇わなくても(優れたDBAを採用するのは非常に困難です)、中央サーバーを使用することで、データに関する何らかの方法論の制定について考えることができます。


3
バージョン管理に完全に同意しました。私はそれを使用します; 開発者と統計学者の大部分がそうであるように。(私は100%の採用を望んでいますが、それは今のところ別の夢想です。)難しいことは、技術者以外にそれを使わせることです。どんなアイデアも感謝します。
リッチーコットン

2
@Richie Cotton:理由はわかりませんが、バージョン管理は非技術者が把握するのが難しい概念のようです。人々は、ファイルに変更を加え、名前を変更し、電子メールで送信し続けます。私はそれらの「PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc」ファイルを嫌いどのように...
ニコ

12

1
優れたリンク。私が伝えたい2つの重要なメッセージは、もっと自動化されたデータチェックが必要であり、データ入力とデータ表示の分離について説明を始める必要があると思います。
リッチーコットン

6

まず最初に自問する必要があると思います。なぜ人々はExcelを使ってExcelが作られていない仕事をするのですか?

1)彼らはすでにそれを使用する方法を知っています2)それは動作します。たぶん不器用な方法ですが、それは動作し、それが彼らが望むものです

一連の数字をコピーし、ボタンを押すとプロットが表示されます。それと同じくらい簡単。

そのため、一元化されたデータセット、適切なデータベース(Accessはそれらの1つではないことに注意してください)などを使用して、彼らが持つことができる利点を理解させます。ただし、上記の2つの点を覚えておいてください。機能するシステムをセットアップする必要があり、使いやすいです。

ひどく何度もシステムを作りすぎて、Excelではなくペンと紙に戻りたいと思ったことがあります。

例として、私が働いている恐ろしい注文システムがあります。

以前は注文フォームに記入する必要がありました。これは、製品の名前、数量、コストなどを入力するExcelスプレッドシートでした。注文する秘書がそれでした。非効率的ですが、機能しました。

これで、集中DBとすべてを備えたオンライン注文システムができました。それは恐怖です。統一されたキーボードショートカットとソフトウェアのさまざまな奇妙さのために、いまいましいフォームに記入するのに10分はかかりません。そして、私は非常に情報学に精通しているので、コンピューターが嫌いな人に何が起こるか想像してみてください...


物事はユーザーフレンドリーである必要があることに同意しました。人々は労働慣行に対して非常に保護的であるため、どんな変化も人々の生活を楽にしなければ失敗します。
リッチーコットン

5

私はすでに与えられたすべての答えに下線を引きますが、猫を猫と呼びましょう:多くのワークスペースでは、「エキゾチックな」ソフトウェアツール(つまり、エキゾチックな)への投資が必要であることを経営者に納得させることはほとんど不可能ですそれを維持します。私はかなりのクライアントに、ソフトウェアとデータベースの完全なバックグラウンドを持つ統計学者を雇うことで大きな恩恵を受けるだろうと言ってきましたが、「できない」は一般的な回答です。

そのため、それが起こらない限り、Excelでできる簡単なことがいくつかあります。そして、これの最初は間違いなくバージョン管理です。Excelによるバージョン管理の詳細については、こちらをご覧ください

Excelの使用に関するいくつかのこと

EXCELを使用している人々は、EXCELの数式機能を非常によく使用します。それでも、これはEXCELシート内のエラーの最も重要な原因であり、私の経験では、EXCELファイルを読み取ろうとするときの問題の原因です。数式を含むシートの使用を拒否します。

また、私は一緒に働くすべての人に、EXCELシートを単純な形式で提供するよう強制します。

  • 最初の行には、さまざまな変数の名前が含まれています
  • スプレッドシートはセルA1から始まります
  • すべてのデータは、中断することなく、フォーマットせずに列に配置されます。
  • 可能であれば、データも.csv形式で保存されます。データを抽出し、再フォーマットして.csvファイルに入れるVBAスクリプトを記述することは難しくありません。また、データの.csvダンプを毎日作成できるため、バージョン管理が向上します。

データに常にある一般的な構造がある場合は、データを追加して分析用のデータセットを生成するために、基礎となるVBマクロを含むテンプレートを開発することをお勧めします。これにより、一般的に、すべての従業員が独自のデータストレージの「天才」システムを思い付くことが回避され、これに基づいてコードを記述することができます。

つまり、すべての人にSQL(およびデータ入力用のフロントエンド)を使用するよう説得できれば、RをそのSQLに直接リンクできます。これにより、パフォーマンスが大幅に向上します。

データ構造と管理

一般的な規則として、データベース(または、それらが主張する場合はEXCELシート)に保存されるデータは絶対的な最小値でなければなりません。つまり、他の変数から計算できる変数はデータベースに含まれません。計算が面倒で時間がかかる場合は、派生変数または変換された変数も保存しておくと便利な場合があります。ただし、これらは、必要に応じて元のデータベースにリンクされた別のデータベースに保存する必要があります。

1つのケースと見なされるもの(したがって1つの行)についても考慮する必要があります。例として、人々は各時点で新しい変数を作成することで時系列を作成する傾向があります。これはEXCELでは理にかなっていますが、これらのデータを読み取るには、データマトリックスをひっくり返す必要があります。グループを比較する場合も同じです。各グループの応答変数ではなく、1つのグループインジケータと1つの応答変数が必要です。このようにして、データ構造も標準化できます。

私が頻繁に遭遇する最後のことは、異なるメトリックの使用です。長さはメートルまたはセンチメートルで、温度は摂氏、ケルビンまたはファレンハイトで与えられます...変数が測定される単位がフロントエンドまたはテンプレートで示される必要があります。

そして、これらすべてのことを行った後でも、実際に分析を開始する前に、データ制御ステップが必要です。繰り返しになりますが、これは新しいエントリで毎日(夜間など)実行され、問題をすぐに(範囲外、間違ったタイプ、欠落フィールドなど)フラグ付けするスクリプトであるため、できるだけ早く修正できます。2か月前に作成されたエントリに戻って、何が間違っているのか、その理由を調べる必要がある場合は、修正するための優れた「シャーロックスキル」を取得することをお勧めします。

私の2セント


ここで非常に興味深い点がいくつかあります。スプレッドシートを単純化し、標準化するように人々を説得することは、それらを放棄させるよりも成功する可能性が高いです。また、バージョン管理がExcelと統合できるとは思いもしませんでした。知っておくといい。
リッチーコットン

2
冗長な変数を保存しないというアドバイスに関して:これはRDBMSに適していますが、スプレッドシートでは反対のことを推奨することを提案したいと思います。後者はエラーが発生しやすいため、エラーを検出して修正するメカニズムは非常に貴重です。最適なものの1つは、計算フィールドや統計要約などの冗長な情報で構成されています。たとえば、列Cが列Aと列Bの比率である場合、特定の行の単一列のエラーを検出し、通常は修正できます。
whuber

1
@whuber:データ制御ステップで確認するものです。余分な列を使用して高速にチェックできますが、最終シートに保持しないでください。スプレッドシートの式は恐ろしく、スプレッドシートが大きいほど、データを取り出すのが難しくなります。さらに、Excelの場合は、とにかく.xlsと.xlsxの違いと戦うことになります。Excelファイルに大きく依存している場合、Microsoft Officeを更新するというマネージャーの決定により、大量のコードが破損する可能性があることを確認してください。そのため、csvとして保存し、これらのcsvファイルをできるだけ小さくします。
ジョリスメイズ

スプレッドシートで送信されたデータに対処し、実質的なデータベースを管理する私のキャリアの最後の24年のかなりの部分を費やした後、私は敬意を持って同意しなければなりません。スプレッドシート(​​.xls、.xlsx、.wks、.wb *など)やcsvファイルを「制御」するようなものはありません。そのようなファイルに冗長な情報が存在することは、たとえ印刷された形式でのみ利用できる場合でも、かなり大きなデータベース(100k +レコード)を何度も復活させました。これが起こるたびに、私(および私のクライアント)は冗長性に感謝しています。
whuber

@whuber:追加のスクリプトでデータ制御を行い、不可能な値/外れ値/奇数のケースを探します。それがデータ制御ステップで私が意味することです。これは、SGSなどの企業が臨床試験などの分析を行う業界標準です。必要な冗長情報は別のデータベースに保存されます。片方が失敗した場合、もう片方が復活に必要です。場合は、あなたは...ですまともなバックアップシステムを、持っていない
ヨリスMeys

3

VisTrails:Pythonベースの科学的ワークフローと来歴システム。PyCon 2010で行われたこの講演には、いくつかの良いアイデアがあります。VisTrailsまたはpythonの使用に興味がない場合でも、耳を傾ける価値があります。最終的には、データを再現するための明確なドキュメント方法があることを要求できると思います。そして、彼らができるいくつかの検証が必要です。

引用:

「この講演では、VisTrails(http://www.vistrails.org)の概要を説明します。これは、データ製品と使用されるプロセスの両方の出所(つまり、系統)を透過的にキャプチャする、Pythonベースのオープンソース科学ワークフローです。 VisTrailsを使用して、データの探索と視覚化を合理化する方法を示します実際の例を使用して、複数のツールとIibrariesを組み合わせた情報処理パイプラインを視覚的に作成する機能など、システムの主要な機能を示します。 VTK、pylab、matplotlib。また、VisTrailsが来歴情報を活用して結果の再現性をサポートするだけでなく、パイプラインの作成と改良を簡素化する方法も示します。


Pythonは私たちの組織では普及していませんが、興味深いプロジェクトのようです。ドキュメントから物事をどのように行うべきかについていくつかのアイデアをピンチできるかどうかを確認します。
リッチーコットン

2

データ管理計画について、ICPSRがホストしているこのWebページに出会いました。ICPSRの目標はあなたのビジネスとは多少異なると思いますが(たとえば、機密性を侵害することなくデータを容易に広めることに強い関心があるなど)、ビジネスに役立つ情報があると思います。メタデータの作成に関する特にアドバイスは、私にとって普遍的であるように思われます。


2

はるかに小さい規模の場合、他の研究者/共同研究者とデータファイル(およびスクリプトと結果)のコピーを共有/同期するためにDropboxを使用することを経験しました(これについては、こちらで説明しました)。

私が使用した他のツールは、データを収集および共有するためのGoogleドキュメントです(これについては、ここで書きました


0

Dropbox + packratは、バックアップ/バージョン管理でファイルを共有するのに適しています。

次に、それらのファイルを(自動正規化/マッサージ後)データベースにロードし、クリーンアップされたデータから分析を行います。Extract-Transform-Loadサイクルを自動化するスクリプトをバージョン管理下に置きます(または、少なくともpackratオプションのある個別のドロップボックスフォルダー...)。

最終的にデータベースサーバーがクラッシュした場合(またはシャードなどが必要な場合)、データを人に優しい(Excel、Webフォームなど)から分析に適した(通常は正規化および制約され、常にクリーンアップ)に移動するためのパイプラインがあります。

その「ETL」フェーズは、データウェアハウジングからのものです。また、オンライントランザクション処理システムを構築していない場合は、おそらくデータウェアハウスを構築しています。だからそれを受け入れて、人々が過去30年間それらを構築することから学んだことを利用してください。

楽しんで。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.