13

再現性のある科学へのストレスを考えると、私の最近の仕事が出版物にサンプルコードを含めることを正当化するかどうか疑問に思いました。私が使用しているデータセットは非常に大きいので、それらの必然性を公開することは意味がありません-しかし、R内で適用する統計的手法は、一般的に私の聴衆には知られていません(私はそうあるべきだと思いますが)。

分析では、経験的直交関数分析(EOF)と一般化加法モデル(GAM)を使用しています。特にGAMは生態学の研究で広く使用されていますが、物理科学ではあまり使用されていません。私の仕事は両方の分野にまたがっています。

私は間違いなく私が使用しているRパッケージを参照しており、レビュー担当者/読者がそれらの参照(および含まれている例)自体を探すことはそれほど難しくありません。それで、私の質問は、出版物に再現可能なコードを含めるのに最も適切な状況は何ですか?

4

3 に答える 3

14

コードは、実際に行ったことを最も正確に表したものです。したがって、私の見解では、常に記事と一緒にコードを公開することを目指す必要があります。

ただし、これに対する編集者の抵抗はかなり強いです。レビューアがコードにアクセスできた場合、後で実質的なコーディングの間違いが見つかった場合、ジャーナルはかなり悪く見えるのではないかという懸念があります。Levittの論文などを考えると、これは架空の恐れではありません。

クヌースは、あなたが正当化として引用できるはずの文芸的プログラミングについていくつかの強い見解を持っています。コードを出版物の不可欠な部分として受け入れるようにジャーナルを説得できない場合は、個人のWebサイトで公開するか(たとえば、Raj Chettyが彼の論文の多くで採用しているアプローチ)、Rパッケージとして公開することを検討してください。

最後に、プログラミングの学生に書いたメモを次に示します。

コードを公開することを検討してください。そうすることは、良い習慣、つまりあなた自身の仕事を容易にする習慣を奨励するコミットメントデバイスとして機能します。コードを公開すると、他の人が分析を拡張しやすくなり、作業の引用が増える可能性があります。コードをリリースすることは、優れた学術的実践でもあります。それは、分析の真の証です。そして、あなたのプログラムを世界に提供することは、あなたがこれから習得しようとしている美しいコーディングスキルを誇示します。

于 2012-06-21T12:21:21.717 に答える
10

科学の基本的な信条は再現性です。したがって、答えは、データ分析に基づくすべての論文/出版物に対して分析を行うために必要なコードを「含める」ことです。

Rコードを直接紙に書く必要がないので、「含める」と言います。ほとんどではないにしても多くのジャーナルは、オプションである補足資料を許可しています。または、スクリプトを多くのサイエンスデータアーカイブサイト(Figshareなど)の1つに提供してから、Figshareがデポジットしたスクリプトに提供するDOIを使用して、独自のスクリプトを引用します(これがキラーです!)。あなたもデータを投稿することができれば、それならなおさらです。Figshareは、ビッグデータセットについてはあまり気にしません。

上記は、他のパッケージを使用しているコードに適用され、Rスクリプトはデータのロードとフォーマット、他のパッケージからの関数の呼び出し、出力/結果のプロットまたは表示などを行います。特定のメソッドを実装するために新しいRコードを開発した場合は、コードをRパッケージとしてパッケージ化し、それをCRANまたはr-forgeなどに送信します。

あなたの説明から、前者(分析スクリプトをレポに預ける)が最も適切でしょう。

于 2012-06-21T12:35:42.797 に答える
5

最近、私たちの研究所で再現性のある研究について話し合いました。インセンティブは、すべてのコードを公開する必要があると主張したNature社説(http://arstechnica.com/science/2012/02/science-code-should-be-open-source-according-to-editorial/)から来ました。 。私はこれに心から同意します。データセットは非常に大きいですが、結果の作成に使用したRコードを公開すると、何をしたかが明確になります。多くの場合、紙のメソッドには結果を再現するのに十分な詳細が含まれていませんが、この場合、コードは非常に役立ちます。

于 2012-06-21T13:11:51.393 に答える