Реплицируемость P3
#research@kiscience #полезно@kiscience
Всем привет! Сегодня хочу продолжить разговор, почему важна реплицируемость любой работы, почему это особенно важно для тех, кто работает с данными и как ошибки в коде могут привести к реальной потере денег
Представьте, что вы сейчас перенесете свой код на другой компьютер и подумайте, а будет ли он работать сразу же без проблем?
Что может случиться:
1. Вы работали на определённой версии программного обеспечения (python 3.6.1, например) и даже не обращали на это внимания. Перенесли на другой компьютер, а там python 3.8 и некоторые ваши команды могут оказаться устаревшими и не работать в новой версии. Что делать? Как минимум указывать в документации к коду, какую версию программы вы использовали при написании, как максимум в Stata, например, можно указать какую версию программа должна использовать прогоняя код (понятно, что имея stata 17 она может откатиться до stata 14, но не наоборот), думаю, в других программах можно сделать тоже самое
2. Вы могли использовать устаревшие библиотеки/пакеты - за этим надо следить
3. Вы могли кучу раз в течение кода прописывать file paths, и потом вам придётся много раз выискивать эти места и менять их на новом компьютере. Я сама в этом очень тупила, и делала кучу file paths и мои профессора, которые хотели прогнать код на своём компьютере очень страдали :( (мне очень стыдно сейчас перед ними), сейчас я поумнела конечно, и прописываю global directories в начале кода
4. Всегда тестируйте код! Пробуйте разные inputs (это если вручную) или пишите прямо тесты, сначала пока вы пишете код это кажется не важно, но потом оказывается, что может привести к большим проблемам..
Так вот, нам сегодня рассказали как отсутствие тестов привело к реальной потере денег:
Сотрудник research support Келлога писал код для отделения поведенческие экономики, чтобы автоматизировать выплату вознаграждений участникам экспериментов. Теоретически, у каждого участника есть id, и сотрудник лаборатории просто запускала код и всем отправлялась денюжка. Но в один момент на определённом месте код застопорился, сотрудница лаборатории подумала, что это ее ошибка и запустила код ещё несколько раз, и только потом пошла в research support. Оказалось, что иногда попадались некорректно вбитые ID и код ломался, а запуская код несколько раз сотрудница несколько раз отправила деньги одним и тем же людям.. сумма случайно отправленных денег оказалась около 2.000$…После этого, конечно, прописалось условие пропускать некорректные id и идти дальше, и условие, что деньги не могут быть отправлены одному и тому же человека дважды за один эксперимент 🙌🏻
Post #64
113
- 👍 7