計算研究を再現可能にするために、雑誌記事にどの資料を含める必要がありますか(またはオンラインで投稿する必要がありますか)?


23

計算科学の研究では、再現性がますます重要になっています。(たとえば科学の Roger Pengによるこの記事を参照してください。他のそのような記事やWebサイトも知っています。)しかし、どの程度の情報をジャーナル記事(またはオンライン)に含めるべきかはわかりません。私の計算研究は再現可能です(知的財産契約のような他の障害がないと仮定)。ガイドラインはありますか?もしそうでなければ、計算科学研究を再現可能にするために研究者がとるべきステップを提案できますか?

回答で特に使用されるのは、これらの提案を実装するための可能な方法、つまりワークフローです。システムに依存しない、またはLinuxベースのワークフローが望ましいです。また、関連する個人的な経験について話し合うことも役立ちます。

私の特定のケースでは、MATLABで実行できるほど単純な2つの計算例を含む理論的な論文を書いています。この場合、MATLABスクリプトを含め、マシン上の特定のバージョンのMATLABを記録するだけで、再現性を確保できます。ただし、もっと複雑なシナリオが存在することは確かです。再現可能な研究を実行する方法についてのアドバイスは、将来のプロジェクトについて知るのに非常に役立ちます。

回答:


17

重要度の大まかな順序。

ソースコード

  1. アルゴリズムの重要な側面を実装するコードを利用可能にします。ユーザーがビルドまたは実行できない場合でも、実行内容を正確に読み取ることができます。簡単な決定に気付いたことが何度かありましたが、それらは論文には記載されていませんでしたが、ソースコードを使用して数分で決定的に答えました。
  2. 実行可能にします。これには、依存ライブラリのバージョンのドキュメント化が含まれ、通常は、ある程度移植性のあるコードを記述する必要があります。自分のマシン以外の少なくとも1台のマシン上でビルドするようにしてください(クリーンな環境でビルドしたことがない場合は、隠れた依存関係を持つのは簡単です)。
  3. 使用されたコードのバージョンを指定します。正式にリリースされたバージョンではない場合(および場合によっては)、バージョンのSHA1を文書化します。(これは、GitやMercurialなどのDSCMに最も自然に適用されますが、どこでも使用できます。)これは、誰かが実際に同じバージョンのコードを持っていることを保証する非常に信頼できる方法です。
  4. コンパイラベンダー、バージョン、最適化フラグ、libcなどのシステムライブラリ、CPUタイプ、メモリタイプおよびトポロジ(特にパフォーマンス調査用)を含む構成およびホストパラメーターを含めます。

実行時パラメーター/入力ファイル

完全な入力仕様を含めます。スクリプトによって生成された場合は、そのスクリプトを含めます。巨大なデータの場合は、データの取得方法と処理方法を文書化します。アルゴリズムにランダム性がある場合、使用された乱数ジェネレーターとシードを指定します。

図と表を生成するスクリプト

これらのスクリプトを含めると、図が実際に示しているものについての質問を明確にし、パラメータを変更したりアルゴリズムを変更した場合の変化を読者に実験させたりするのに役立ちます。


単体テストを含めることはどれくらい重要ですか?再現性のために含めるコードはどれくらい文書化する必要がありますか?
ジェフオックスベリー

結果の再現性だけが必要な場合は、単体テストとマニュアルページ/ユーザーマニュアルは必要ありません。ソフトウェアの将来の共著者またはユーザーを引き付けようとしている場合(引用...)、再利用のためにソフトウェアを記述し、徹底的に文書化することは価値があります。ソフトウェアを他の人が使用することを意図しているかどうかに関係なく、テストとドキュメントを作成することで、より自信を持って動き回って実験できるため、長期的には時間を節約できる可能性があります
ジェドブラウン

6

ほとんどのジャーナルは正式な方法でセットアップされていませんが、最近、ソースコードと記事の一部である必要のあるすべてを保持することを特に意図した数値ソフトウェアのアーカイブを設立しました。それをチェックしてください:http : //journals.tdl.org/ans 投稿は大歓迎です!


2
あなたが編集委員会のメンバーのペットソフトウェアプロジェクトを使用すると仮定します。この要件は、ジャーナルの完全性を低下させると感じざるを得ません。
ジャックポールソン

1
@JackPoulson:これは編集者の間で長々と議論してきた点であり、コミュニティの他の人々とさらに長々と議論しました。私たちは皆あなたの意見を見ていると思いますが、同時に、2つの理由で他の方法でそれを行うことができないと感じました:コミュニティには、質の高いプロジェクトとそうでないプロジェクトとで一定のコンセンサスがあります。私たちは、ANSがあらゆるプロジェクトのアウトレットになることを望みませんでした。ウェブページで述べているように、最終的にすべての高品質パッケージを含めたいと思います。
ウォルフガングバンガース

2
レビュアーは、「ランダムフィールドX」ではなく「ランダムプロジェクトX」に精通している必要があるのはどのような理由ですか?これを取り上げるのは、特定のパッケージリストで実装できるものに厳しい制限があるため、ジャーナルが重要なクラスの論文で欠落していると思うからです。たとえば、並列コンピューティングへの基本的な貢献はありません。MPI、または天国の禁じられているBLASまたはLAPACKへの呼び出しを含むものは、ジャーナルの標準に違反するようです。このことについて、さらにオフラインでお話させていただきます。
ジャックポールソン

@JackPoulson:私の知る限り、並列コンピューティングに基本的な貢献をしたい場合は、別のジャーナルで論文を書くことに加えて、ANSで「Library Introduction」論文を書いて、あなたのライブラリがライブラリの承認済みリストに追加されました。
ジェフオックスベリー

1
@GeoffOxberry:Wolfgangと私は友好的な会話をしました。共通の結論は、線形代数ライブラリのリストを大幅に拡張することですが、ジャーナルの目的は単に再現性ではなく「高品質」ライブラリです。したがって、いくつかの審査プロセスが必要です。
ジャックポールソン

3

Stodden、V.2009。「再現可能な科学研究の法的枠組み」CiSE

Victoria Stoddenは、完全な「研究概要」の公開を推奨し、pに次のコンポーネントをリストしています。38:

  1. 研究論文
  2. データ - データを処理するためのドキュメントとコードを含む
  3. 実験 —すべてのソースコード。ドキュメント、パラメーター、設定、およびオペレーティングシステムの依存関係
  4. 実験の結果 —図、データ、イラストのソースファイル。実験結果の処理に関する文書と説明
  5. 補助材料

2

少なくとも、実験の実行に使用したソースコードとデータはどこかにアクセスできる必要があります。必要に応じて、コードをビルドする手順を追加します。実際、オープンアクセスジャーナルは非常に少ないため、オープンで確立されたルールはありません。


2

私はエルゼビアで働いています。私の会社は、著者が論文の結果と図を再現するために必要なすべてのデータとコードを含めることができるように、ジャーナルの問題でコラージュフレームワーク(Executable Paper Grand Challengeに対応して開発)の使用を開始しました。この機能により、読者は記事で報告された結果を簡単に再現し、公開された資料を自分の研究に再利用できます。Collageは、多種多様なオープンソースおよび独自のソフトウェアをサポートしています。詳細については、こちらの情報ビデオおよびCollage Authoring Environment Webサイトをご覧ください

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