統計分析プロジェクトを効率的に管理する方法は?


89

コンピューターサイエンスではプロジェクト管理やデザインパターンについてよく耳にしますが、統計分析ではそうではありません。しかし、効果的で耐久性のある統計プロジェクトを設計するための決定的なステップは、物事を整理することです。

私はしばしば、Rの使用と、別々のフォルダー内のファイルの一貫した編成(生データファイル、変換されたデータファイル、Rスクリプト、図、メモなど)を提唱します。このアプローチの主な理由は、後で分析を実行する方が簡単な場合があることです(たとえば、特定のプロットの作成方法を忘れた場合)。

統計プロジェクト管理のベストプラクティスは何ですか?または、あなた自身の経験から与えたい推奨事項は何ですか?もちろん、これはすべての統計ソフトウェアに適用されます。(投稿ごとに1つの回答をお願いします


プロジェクト管理に関するものであるため、私はこの質問をトピック外として終了することを投票しています
-Aksakal

2
@Aksakal:あなたは少し厳しいと思います。:)「統計に興味がある人」に関連しています。また、70を超える票は、標準ユーザーがこの興味深く有用な質問を見つけたことを強く示唆しています。
usεr11852

1
これはここのトピックで検討されるべきだと思います。
グング

@gung議論するために、おそらくそのメタスレッドに答えを追加しますか?
アメーバ

回答:


80

私は、SO(@Shaneが提案)、Biostar(以下、BS)、およびこのSEで見つけた簡単な一連のガイドラインをまとめています。私は、各アイテムの所有権を認め、最初の回答または非常に賛成の回答を選択するために最善を尽くしました。また、自分のものを追加し、[R]環境に固有のアイテムにフラグを付けました。

データ管理

  • すべてのものを正しい場所に保持するためのプロジェクト構造を作成します(データ、コード、図など、giovanni / BS)
  • 変換、クリーニングなどを行うときは、生データファイルを変更しないでください(理想的には読み取り専用である必要があります)。
  • データの一貫性を確認する(whuber / SE)
  • GNU make(Karl Broman / Zachary Jones)などのビルド自動化ツールを使用して、スクリプトの依存関係とデータフローを管理します

コーディング

  • ソースコードを論理ユニットまたはビルディングブロックに整理する(Josh Reich / hadley / ars / SO; giovanni / Khader Shameer / BS)
  • 特に大規模なプロジェクトの場合、ソースコードを編集用のものから分離します。以前のアイテムやレポートと一部重複しています
  • ソースファイルに[R] oxygen(シェーン / SO)または一貫した自己注釈を付けてすべてを文書化します。Medstats、文書化分析、データ編集に関する適切な議論オプション
  • [R]カスタム関数は、専用ファイル(必要に応じて供給可能)、新しい環境(トップレベルの名前空間、Brendan OConnor / SO への入力を避けるため)、またはパッケージ(Dirk Eddelbuettel / シェーン / SO)

分析

  • RNGまたは確率的アルゴリズム(k-meansなど)を呼び出すときに使用したシードを設定/記録することを忘れないでください
  • モンテカルロ研究では、仕様/パラメータを別のファイルに保存するのが面白いかもしれません(スマトラは良い候補かもしれません、ジョバンニ / BS)
  • 変数ごとに1つのプロットに制限するのではなく、多変量(トレリス)ディスプレイとインタラクティブな視覚化ツール(例:GGobi)を使用します

バージョニング

  • いくつかの種類を使用し、リビジョン管理を簡単に追跡/エクスポートのために、例えばGitリポジトリ(シャーピー / VonC / JDロング / SO) -これは@Jeromyと@Talで尋ねた素敵な質問から、次の
  • すべてを定期的にバックアップします(Sharpie / JD Long / SO)
  • アイデアのログを保存するか、ditzgiovanni / BS)などの課題トラッカーに依存します-Gitで利用できるため、以前のアイテムと部分的に冗長です

編集/報告

サイドノートとして、Hadley Wickhamは、再現可能な例示データの統一哲学を含む、Rプロジェクト管理の包括的な概要を提供します。

最後に、R指向の統計データ分析のワークフローで、 Oliver Kirchkampは、特定のワークフローを採​​用および従うことで統計学者が相互に協力し、データの整合性と結果の再現性を確保する理由の非常に詳細な概要を提供します。さらに、製織およびバージョン管理システムの使用に関するいくつかの議論が含まれています。Stataユーザーは、J。Scott LongのStataを使用したデータ分析のワークフローも便利だと感じるかもしれません。


お疲れ様でした!これを私のブログのどこに公開したらいいですか?(つまり、このテキストはccですので、私はできましたが、私はあなたに許可を求めました:))乾杯、タル
タルガリリ

@Tal問題ありません。完全なリストではありませんが、後で他の有用なリンクを集約できる可能性があります。また、より良い方法で自由に適応または再編成してください。
chl

+1これはいいリストです。「これを受け入れる」ことを検討して、常にトップになるようにしてください。CWであるため、誰でも最新の状態に保つことができます。
シェーン

@Shaneまあ、私はあなたにとても役立つリンクで最初の答えを提供してくれたことに感謝しています。自由に追加/変更してください。
chl

ここで再公開しました。素晴らしいリスト! r-statistics.com/2010/09/...
タルGalili

21

リンクをありがとう!質問はあらゆる統計ソフトウェアに公開されています-私は時々PythonとStataを使用しているので、確認済みのユーザーが興味深い推奨事項をそこに持ってくるかもしれないと思います。
chl

絶対に; ただし、上記のリンクの推奨事項は、(言語に関係なく)統計プロジェクトに実際に適用できると付け加えます。
シェーン

絶対そうです!質問を同時に更新しました。
chl

8

これはシェーンの答えと重複していますが、私の見解では、2つの主要な桟橋があります。

  • 再現性 ; 「何らかの形で」行われた結果で終わらないだけでなく、(他のデータまたはパラメータをわずかに変更して)分析をより速く再実行できるため、結果について考える時間ができます。巨大なデータの場合、まず小さな「プレイセット」でアイデアをテストしてから、データ全体に簡単に拡張できます。
  • 優れたドキュメント。バージョン管理下のスクリプト、一部の研究ジャーナル、さらに複雑なプロジェクトのチケットシステムまでコメントしました。再現性が向上し、エラー追跡が容易になり、最終レポートの作成が簡単になります。

+1私は2番目のポイントが好きです(roxygen + gitを使用しています)。最初の点は、プロジェクトの後半の段階で何の助けもなしに結果を再現できる別の統計学者にコードを提供する可能性についても考えさせてくれます。
chl

再現性?とにかく、データにはランダムなエラーがあります。ドキュメンテーション?考えられる2つの答え:1)忙しすぎて、ドキュメントを作成する時間がないか、2)分析またはドキュメントを作成する予算しかなかったため、分析を行うことにしました。冗談だと思う?私はこれらの態度を多くの場面で見ました/聞いたことがあります-命が乗っているプロジェクトで。
マークL.ストーン


1

ちょうど2セントです。これにはNotepad ++が便利だと思いました。プロジェクトごとに個別のスクリプト(プログラム制御、データ形式など)と.padファイルを維持できます。.padファイル呼び出しは、そのプロジェクトに関連付けられているすべてのスクリプトです。


3
つまり、npptorを使用したnotepad ++ :)
Tal Galili

1

他の答えは素晴らしいですが、別の感情を付け加えます。SPSSの使用は避けてください。私は修士論文にSPSSを使用し、現在は市場調査の通常の仕事に従事しています。

SPSSを使用している間、データセットを保存できないため、SPSSは複数のファイルの処理に苦労している(確かに、複数のファイルを処理できますが、Rほど簡単ではありません)ため、組織化された統計コードを開発するのは非常に困難でした変数に-「dataset activate x」コードを使用する必要がありますが、これは非常に面倒です。また、構文は不格好であり、コードをさらに読みにくくする省略表現を推奨します。


0

R / Python / Matlab /などで動作するJupyterノートブックは、どのスクリプトが特定の図を生成するかを覚える手間を取り除きます。この投稿では、コードと図を並べる整然とした方法について説明します。論文または論文の章のすべての図を1つのノートブックに保管しておくと、関連付けられたコードを簡単に見つけることができます。

実際、さらに良いのは、たとえば12個の図をスクロールして、必要な図を見つけることができるからです。コードは、必要になるまで非表示のままです。

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