Compartieron el código, pero luego encontré errores clave en su trabajo. ¿Cómo critico esto en mi trabajo de investigación?

Associate Prof. X está comprometido con la investigación reproducible y pone su código a disposición. Es autor de un artículo con el Dr. Y y otros.

El Dr. Y es el primer autor del artículo y el código se comparte en Ass. Sitio web del Prof. X. Está claramente establecido en el documento que el código produce los gráficos en el documento.

Descargué el código, ejecuté el código y descubrí que funciona bien, es decir, produce los mismos gráficos en el documento. Sin embargo, el código no era descriptivo ni fácil de entender (Aparentemente, las variables que facilitan la lectura se han cambiado a algo difícil de entender excepto con mucho esfuerzo y tiempo). De todos modos, estudié el código y pude entender claramente los significados de varias partes del código. Le di a las variables sus definiciones apropiadas mientras generaba los mismos gráficos

Ahora, encuentro que no se proporcionan los gráficos para algunas figuras, luego envié un correo electrónico al profesor Ass X, quien después de un tiempo me informó que el primer autor, el Dr. Y, enviará el código. El código fue enviado y pude entender este papel.

Actualmente, estoy por hacer una extensión a este trabajo. Sin embargo, observo que hay algunos errores en varias ecuaciones en el documento que afectan negativamente el comportamiento de algunos gráficos. Además, en una investigación más profunda del documento, se hicieron algunas inferencias y proposiciones basadas en algunos de los errores del documento. En un momento traté de comunicarme con el Dr. Y sobre algo que quería saber mejor sobre el artículo, pero no obtuve una respuesta.

El desafío que tengo ahora es que quiero presentar mi propio artículo y también corregir estos errores, ya que extiende directamente este trabajo. ¿Cómo manejo esto? ¿Digo por ejemplo: "Corregimos la ecuación (y) en [ref] y así, las gráficas se comportan así?". Además, estoy pensando que, dado que recibí el código de algunos de los gráficos (por correo electrónico), debería agradecer a los autores por compartir el código (para esos gráficos). Sin embargo, no estoy seguro de que esto sea apropiado ya que el público sabe implícitamente que el código de algunos de los gráficos no se proporciona en el documento.

Tenga en cuenta que aprecio y considero una obligación ser directo en mi investigación.

¿A qué te refieres con "tonterías"? ¿Le enviaron código ofuscado intencionalmente, o es simplemente un código que fue escrito para su propio uso interno y nadie se molestó en agregarle comentarios o facilitar su uso para un tercero?
¡Gracias Federico! He editado eso en la pregunta. Parecía que se hizo un intento deliberado para que el código no fuera interesante y las variables "no descriptivas".
Sospecho que no fue tanto deliberado como que el investigador que escribió el código era un investigador típico cuando se trata de código. Muchos científicos no escriben código para la reutilización sino simplemente para resolver un problema inmediato, por desafortunado que sea.
Quiero secundar el comentario de @JAB: nunca atribuir a la malicia lo que puede explicarse adecuadamente por incompetencia.

Respuestas (2)

Pensaría varias veces antes de usar la palabra 'corregido', especialmente si no entiendo completamente el código, como parece de su pregunta ("... estudié el código y pude descifrar los significados de varias partes de el código."). Comprender varias partes es diferente de comprenderlo por completo, siendo este último un requisito previo para mejorarlo o corregirlo.

Sin embargo, si está seguro de que existen errores en el código, tiene dos opciones:

(a) Señale esos errores y compártalos con X e Y antes de intentar publicarlo. Una vez que publica, la credibilidad de su código disminuye; si algunas partes están equivocadas, otras también podrían estarlo. Por lo tanto, es justo que les transmita los errores primero. No estás obligado a hacerlo, pero creo que es lo correcto.

(b) Si está ampliando significativamente el código, escriba el suyo propio; podría basarse en su código, y puede reconocerlo, pero al escribir su propio código, asume toda la responsabilidad por él y no está propagando ningún error inherente. al código original. En términos de cantidad de trabajo, creo que esto es más significativo y le da más espacio para desarrollarlo para su propósito particular.

¡Pude entender correctamente el código, ya que le di a las variables sus definiciones correctas mientras generaba los mismos gráficos! Sin embargo, hay problemas con las ecuaciones en el documento. La palabra descifrar se refiere a la naturaleza no descriptiva del código. Entonces, ¿te refieres a compartir mi propio código públicamente? Definitivamente he hecho correcciones al código basadas en el marco del documento (después de haber identificado las áreas de preocupación en su código). Además, señalarles los errores suena bien, pero, ¿cómo manejan los investigadores esas cosas si se les señalan los errores?
Bueno, si estás seguro de ello, ¡entonces eso es genial! :) Según tengo entendido, hay dos cosas: (a) los problemas con las ecuaciones y (b) la nueva funcionalidad que ha agregado. El primero es todo lo que debe compartir con X e Y. Si la nueva funcionalidad es significativa, es posible que desee volver a escribir un código nuevo, le brinda más control y puede probarlo más a fondo. Aún debe mencionar en el documento que X e Y abordaron este problema primero. En cuanto a compartir el código nuevo públicamente, esa es una pregunta diferente y depende completamente de usted.
Acerca de cómo los investigadores lo manejarían, eso realmente podría variar desde profusamente agradecido hasta enojado, pero en cualquier caso, creo que apreciarían que se dirigiera a ellos antes de ir a un editor. La razón es simple: en caso de que haya una explicación, pueden hacerlo, en lugar de tener que escribir al diario, lo que puede volverse amargo.
Además, aproveche la sabiduría de la multitud para asegurarse de que los códigos (suyos y suyos) sean correctos. Un buen lugar es Code Review
¡Sí! Acabo de comprobar la revisión del código, pero el código es una interpretación analítica de las ecuaciones del documento. Estoy pensando que podría proporcionar el código durante el proceso de revisión por pares. Mi extensión incluiría su trabajo como un caso especial. Estoy pensando en eliminar el caso especial de mi investigación.

En primer lugar, sí, definitivamente debería agradecerles por proporcionar su código y hacer que su investigación sea reproducible. Esto es extremadamente valioso, y es precisamente la capacidad de detectar y corregir errores en la investigación lo que la convierte en una buena práctica. Si fuera yo, sería bastante profuso en mi agradecimiento por esto, y me aseguraría de que cualquier crítica de errores esté contextualizada por el excelente trabajo realizado para preservar sus datos y código.

La otra cosa con la que debe tener cuidado es asegurarse absolutamente de tener razón sobre los errores. Sugeriría que antes de enviar su artículo, primero se comunique con los autores del otro trabajo y les muestre los errores que ha encontrado en su trabajo. Esto le dará retroalimentación para confirmar/rechazar el error. (Incluso podría encontrar que es algo simple como que le enviaron la versión incorrecta del código). La mayoría de los autores son bastante razonables al responder a cosas como esta, y estoy seguro de que querrán revisar su trabajo para ver si hay errores Si encuentra que responden a sus inquietudes, incluso podría considerar sugerir a estos autores como árbitros para su artículo.

Por favor, ¿qué quiere decir con "asegúrese de que cualquier crítica de errores esté contextualizada por el excelente trabajo realizado para preservar sus datos y código".
Lo que quiero decir es que la razón por la que puede identificar un error es porque han hecho lo correcto y han puesto a disposición sus datos y código, por lo que si hace una crítica de un error, también es una señal de que lo han hecho bien . trabajar haciendo que sus datos y códigos estén disponibles para ese propósito; a eso me refiero con "contexto".