2012-06-21 22 views
13

Với sự căng thẳng đối với khoa học tái sản xuất, tôi đã tự hỏi liệu công việc gần đây của tôi có đảm bảo bao gồm mã ví dụ trong ấn phẩm hay không. Các bộ dữ liệu mà tôi đang sử dụng khá lớn, vì vậy sẽ không có ý nghĩa khi xuất bản những điều cần thiết đó - Tuy nhiên, các phương pháp thống kê mà tôi áp dụng trong R thường không được khán giả biết đến (mặc dù tôi nghĩ rằng chúng nên).Có bất kỳ hướng dẫn nào khi mã tái sản xuất phải được đưa vào ấn bản không?

Tôi đang sử dụng phân tích chức năng trực giao thực nghiệm (EOF) và mô hình phụ gia tổng quát (GAM) trong phân tích của tôi. GAM, đặc biệt, được sử dụng rộng rãi trong các nghiên cứu sinh thái, nhưng ít hơn trong khoa học vật lý - công việc của tôi kéo dài cả hai ngành.

Tôi chắc chắn tham khảo các gói R mà tôi sử dụng và sẽ không khó để người đánh giá/người đọc tìm kiếm các tham chiếu đó (và các ví dụ kèm theo). Vì vậy, câu hỏi của tôi là, tình huống nào thích hợp nhất để đưa mã tái sản xuất vào một ấn bản?

+1

Điều này có thể nhiều hơn về chủ đề tại [trang web Academia] (http://academia.stackexchange.com/). –

+0

Có lẽ, nhưng tôi sẽ đánh giá cao bất kỳ trải nghiệm nào mà cộng đồng lập trình có thể cung cấp. –

+0

Tôi nghĩ sự đồng thuận là khá rõ ràng ở đây. Có rất nhiều tạp chí chấp nhận phụ lục bao gồm mã được sử dụng trong phân tích và, như được minh họa bằng một số nhận xét bên dưới, tùy chọn tải lên bộ dữ liệu, v.v. –

Trả lời

14

Mã là cách trình bày chính xác nhất về những gì bạn thực sự đã làm. Do đó, theo quan điểm của tôi, bạn nên luôn luôn nhằm mục đích xuất bản mã cùng với bài viết của bạn.

Tuy nhiên, khả năng chống đối với trình chỉnh sửa này khá mạnh. Nỗi sợ hãi là nếu người đánh giá có quyền truy cập vào mã, sau đó tạp chí trông khá tệ nếu một lỗi mã hóa nội dung sau đó được tìm thấy. Đây không phải là một nỗi sợ giả định, được đưa ra là Levitt paper, v.v.

Knuth có một số quan điểm mạnh mẽ về lập trình biết chữ mà bạn sẽ có thể trích dẫn như là biện minh. Nếu bạn không thể thuyết phục tạp chí chấp nhận mã của bạn dưới dạng một phần không thể tách rời của ấn phẩm, hãy xem xét xuất bản nó trên trang web cá nhân của bạn (cách tiếp cận được thực hiện theo số Raj Chetty cho nhiều giấy tờ của mình) hoặc xuất bản dưới dạng gói R.

Cuối cùng, đây là một lưu ý tôi đã viết cho sinh viên lập trình của tôi:

xem xét xuất bản mã của bạn. Làm như vậy sẽ hoạt động như một thiết bị cam kết sẽ khuyến khích thói quen tốt - những thói quen làm cho công việc của bạn trở nên dễ dàng hơn . Xuất bản mã của bạn cũng giúp những người khác dễ dàng hơn để mở rộng phân tích của bạn, điều này có thể dẫn đến nhiều trích dẫn về tác phẩm của bạn hơn. Việc phát hành mã của bạn cũng là một thực hành học tập tốt: đó là di chúc xác thực đúng với phân tích của bạn. Và cung cấp chương trình của bạn cho thế giới cho thấy các kỹ năng mã hóa tuyệt vời mà bạn sắp đạt được là .

+0

Cũng được nói - không chắc chắn rằng kỹ năng mã hóa của tôi là tất cả những điều tuyệt vời ;-) –

+0

Haha. Đây là trong bối cảnh của một hướng dẫn 30pp cho khóa học này, vì vậy nó là nhiều hơn về kỹ năng giảng dạy đẹp của tôi hơn kỹ năng mã hóa của họ :-). '<- false non-humility' –

10

Nguyên lý cơ bản của khoa học là khả năng tái tạo. Vì vậy, câu trả lời sẽ là "bao gồm" mã cần thiết để tiến hành phân tích của bạn cho mọi bài báo/ấn phẩm dựa trên phân tích dữ liệu.

Tôi nói "bao gồm" vì bạn không cần phải đặt mã R trực tiếp vào giấy. Nhiều nếu không phải hầu hết các tạp chí cho phép tài liệu bổ sung là một lựa chọn. Thay thế, cung cấp kịch bản của bạn cho một trong nhiều trang lưu trữ dữ liệu Khoa học (như Figshare) và sau đó (và đây là kẻ giết người!) Trích dẫn tập lệnh của riêng bạn bằng DOI mà Figshare cung cấp cho tập lệnh được gửi của bạn. Nếu bạn có thể đăng tải dữ liệu, thì tất cả đều tốt hơn; Figshare không thực sự quan tâm quá nhiều đến các tập dữ liệu lớn.

Ở trên áp dụng cho mã nơi bạn đang sử dụng các gói khác và tập lệnh R của bạn thực hiện những việc như dữ liệu tải và định dạng, chức năng cuộc gọi từ các gói khác và sau đó vẽ hoặc hiển thị kết quả/kết quả.Nếu bạn đã phát triển mã R mới để thực hiện một phương pháp cụ thể sau đó tôi sẽ nói gói mã như một gói R và gửi cho CRAN hoặc r-giả mạo hoặc một cái gì đó như thế.

Từ mô tả của bạn, trước đây (gửi mã phân tích trong repo) sẽ phù hợp nhất.

+0

Thật tuyệt vời - tôi chưa từng nghe nói về Figshare. "không gian công cộng không giới hạn" ?! –

+0

Hoặc chỉ cần đặt nó trên một kho lưu trữ VCS công cộng: BitBucket thậm chí cung cấp tài khoản không giới hạn cho các học giả, bao gồm cả những người riêng tư, do đó, thực sự không có lý do gì. Sau đó, bạn chỉ có thể liên kết đến thẻ cuối cùng/cam kết bạn đã sử dụng khi viết bài, trong khi vẫn tiếp tục cập nhật mã, nếu nó có thể sử dụng lại được. – naught101

5

Gần đây chúng tôi đã có một cuộc thảo luận tại viện nghiên cứu của chúng tôi về nghiên cứu tái sản xuất. Ưu đãi đến từ biên tập Thiên nhiên (http://arstechnica.com/science/2012/02/science-code-should-be-open-source-according-to-editorial/) cho rằng tất cả mã của bạn nên được xuất bản . Tôi hoàn toàn đồng ý với điều này. Mặc dù tập dữ liệu của bạn rất lớn, việc xuất bản mã R mà bạn đã sử dụng để tạo kết quả của bạn khiến cho nó rõ ràng là bạn đã làm gì. Thông thường, các phương pháp của một bài báo không có đủ chi tiết để tái tạo kết quả, mã này hoàn toàn là một trợ giúp trong trường hợp này.

Các vấn đề liên quan