Подтвердить что ты не робот

Существуют ли какие-либо рекомендации по включению воспроизводимого кода в публикацию?

Учитывая стресс к воспроизводимой науке, мне было интересно, если моя недавняя работа требует включения примерного кода в публикацию. Наборы данных, которые я использую, довольно большие, поэтому было бы бессмысленно публиковать эти требования. Однако статистические методы, которые я применяю в R, обычно не известны моей аудитории (хотя я думаю, что они должны быть).

В моем анализе я использую эмпирический анализ ортогональных функций (EOF) и обобщенные аддитивные модели (GAM). GAM, в частности, широко используется в экологических исследованиях, но тем более в физических науках - моя работа охватывает оба дисциплины.

Я определенно отношусь к R-пакетам, которые я использую, и для рецензента/читателя не было бы действительно трудным образом искать эти ссылки (и включенные примеры). Итак, мой вопрос: какие ситуации наиболее подходят для включения воспроизводимого кода в публикацию?

4b9b3361

Ответ 1

Код - это наиболее точное представление о том, что вы на самом деле делали. Поэтому, на мой взгляд, вы всегда должны стремиться публиковать код вместе со своей статьей.

Однако сопротивление редактора этому довольно сильное. Страх в том, что если рецензент имел доступ к коду, тогда журнал выглядит довольно плохо, если позднее обнаружится существенная ошибка кодирования. Это не гипотетический страх, учитывая лист Levitt и т.д.

У Кнута есть некоторые сильные взгляды на грамотное программирование, которое вы должны уметь приводить как оправдание. Если вы не можете убедить журнал принять ваш код как неотъемлемую часть публикации, подумайте о публикации его на своем личном веб-сайте (подход, например, Raj Chetty для многих его работ) или опубликовать его как пакет R.

Наконец, здесь записка, которую я написал моим ученикам по программированию:

Рассмотрите возможность публикации кода. Это будет действовать как обязательство устройство, которое будет стимулировать хорошие привычки - привычки, которые делают ваши собственные работать легче. Публикация вашего кода также облегчает другим пользователям расширьте свой анализ, что может привести к большему количеству ссылок на вашу работу. Выпуск вашего кода - хорошая академическая практика: это истинное подтверждение вашего анализа. И предлагая свою программу для мир демонстрирует прекрасные навыки кодирования, которые вы собираетесь приобретать.

Ответ 2

Основным принципом науки является воспроизводимость. Таким образом, ответ будет заключаться в том, чтобы "включить" код, необходимый для проведения анализа, на каждую бумагу/публикацию, основанную на анализе данных.

Я говорю "включить", потому что вам не нужно вводить код R прямо в документ. Многие, если не большинство журналов, предоставляют дополнительный материал, который является вариантом. Альтернативно, поставьте свой script на один из многих сайтов архивации данных Science (таких как Figshare), а затем (и вот убийца!) Ссылайтесь на свой собственный script с помощью DOI, который Figshare дает вашему депонированному script. Если вы также можете опубликовать данные, то все будет лучше; Figshare не слишком заботится о больших наборах данных.

Вышеупомянутое относится к коду, в котором вы используете другие пакеты, и ваш R script выполняет такие функции, как загрузка и форматирование данных, вызывает функции из других пакетов, а затем отображает или выводит результат/результаты. Если вы разработали новый R-код для реализации определенного метода, я бы сказал, что пакет кода как R-пакет и отправьте его в CRAN или r-forge или что-то в этом роде.

Из вашего описания наиболее предпочтительным будет первый (занести анализ script в репо).

Ответ 3

Недавно мы провели дискуссию в нашем научно-исследовательском институте относительно воспроизводимых исследований. Стимул пришел из редакционной статьи Nature (http://arstechnica.com/science/2012/02/science-code-should-be-open-source-according-to-editorial/), в которой утверждалось, что весь ваш код должен быть опубликован, Я полностью согласен с этим. Несмотря на то, что ваш набор данных очень велик, публикация R-кода, который вы использовали для создания ваших результатов, делает его совершенно ясным, что вы сделали. Часто методы в документе не содержат достаточных деталей для воспроизведения результата, в этом случае код является весьма полезной.