Як ефективно керувати проектом статистичного аналізу?


89

Ми часто чуємо про управління проектами та схеми дизайну в інформатиці, але рідше - про статистичний аналіз. Однак, здається, що вирішальним кроком до розробки ефективного та довговічного статистичного проекту є організація речей.

Я часто виступаю за використання R та послідовної організації файлів в окремих папках (необроблений файл даних, перетворений файл даних, R-сценарії, фігури, нотатки тощо). Основна причина такого підходу полягає в тому, що згодом може бути простіше запустити аналіз (коли ви забули, як, наприклад, ви виробили заданий сюжет).

Які найкращі практики управління статистичними проектами чи рекомендації, які ви хотіли б дати з власного досвіду? Звичайно, це стосується будь-якого статистичного програмного забезпечення. ( будь-яку відповідь за повідомлення, будь ласка )


Я голосую, щоб закрити це питання поза темою, оскільки мова йде про управління проектами
Аксакал

2
@Aksakal: Я думаю, ти трохи суворий. :) Це стосується " людей, які цікавляться статистикою ". Також 70+ голосів наголошують, що стандартні користувачі вважають це питання цікавим та корисним.
usεr11852

1
Я думаю, що це слід враховувати тут.
gung

@gung Чи не хотіли б ви додати відповідь до цієї теми Meta, щоб ми могли обговорити її?
амеба

Відповіді:


80

Я складаю коротку серію вказівок, які я знайшов щодо SO (як запропонував @Shane), Biostar (надалі, BS) та цього SE. Я намагався визнати право власності на кожен предмет та вибрати першу чи високообосновану відповідь. Я також додав власні речі та позначив елементи, характерні для [R] середовища.

Управління даними

  • Створіть структуру проекту для збереження всіх речей у потрібному місці (дані, код, цифри тощо, giovanni / BS)
  • Ніколи не змінюйте необроблені файли даних (в ідеалі вони повинні бути доступними лише для читання), не копіюйте / перейменуйте на нові під час перетворення, чищення тощо.
  • Перевірка узгодженості даних ( whuber / SE)
  • Управління залежностями сценарію та потоком даних за допомогою інструмента автоматизації побудови, як GNU make ( Карл Броман / Захарі Джонс )

Кодування

  • впорядкувати вихідний код у логічних одиницях або будівельних блоках ( Josh Reich / hadley / ars / SO; giovanni / Khader Shameer / BS)
  • окремий вихідний код від редагування матеріалів, особливо для великих проектів - частково перекриваючись попереднім пунктом та звітом
  • Документуйте все, наприклад, [R] кисень ( Shane / SO) або послідовне самоанотація у вихідному файлі - хороша дискусія щодо Medstats, Документування аналізів та параметрів редагування даних
  • [R] Спеціальні функції можна помістити у виділений файл (який можна отримати за необхідності), у новій обстановці (щоб уникнути заселення простору імен верхнього рівня, Brendan OConnor / SO) або пакет ( Dirk Eddelbuettel / Шейн / SO)

Аналіз

  • Не забудьте встановити / записати насіння, яке ви використовували під час виклику RNG або стохастичних алгоритмів (наприклад, k-засоби)
  • Для досліджень в Монте-Карло може бути цікавим зберігання специфікацій / параметрів в окремому файлі ( суматра може бути хорошим кандидатом, giovanni / BS)
  • Не обмежуйтеся однією графікою на змінну, використовуйте багатоваріантні (трелі) дисплеї та інтерактивні засоби візуалізації (наприклад, GGobi)

Версія

  • Використовуйте якийсь контроль редагування для легкого відстеження / експорту, наприклад, Git ( Sharpie / VonC / JD Long / SO) - це випливає з приємних питань, заданих @Jeromy та @Tal
  • Регулярно створюйте резервні копії всього ( Sharpie / JD Long / SO)
  • Ведіть журнал своїх ідей або покладайтеся на трекер випуску, як, наприклад, ditz ( giovanni / BS) - частково зайвий з попереднім пунктом, оскільки він доступний у Git

Редагування / звітування

В якості додаткової примітки, Хедлі Вікхем пропонує вичерпний огляд управління проектами R , включаючи відтворювану приклад та уніфіковану філософію даних .

Нарешті, у своєму R-орієнтованому документообізі аналізу статистичних даних Олівер Кірчкамп пропонує дуже детальний огляд того, чому прийняття та дотримання конкретного робочого процесу допоможе статистикам співпрацювати між собою, забезпечуючи цілісність даних та відтворюваність результатів. Далі воно включає деяке обговорення використання плетіння та системи контролю версій. Користувачі статистики можуть вважати корисним робочий процес аналізу даних Дж. Скотта Лонга, використовуючи Stata .


Чудова робота Хл! Чи було б у вас добре, якби я де опублікував це у своєму блозі? (Я маю на увазі, цей текст є куб.см., тому я міг, але я хотів, щоб ви дозволили будь-який спосіб :)) Будьте, Тал
Тал Галілі

@Tal Немає проблем. Це далеко не вичерпний список, але, можливо, ви зможете згодом зібрати інші корисні посилання. Крім того, не соромтеся адаптуватися або реорганізуватися в кращий спосіб.
chl

+1 Це хороший список. Ви можете розглянути можливість «прийняти це», щоб воно завжди було зверху; враховуючи, що це CW, кожен може постійно оновлювати його.
Шейн

@Shane Ну, я вам вдячний за надання першої відповіді з настільки корисними посиланнями. Не соромтеся додавати / змінювати потрібний вам спосіб.
chl

Я її перевидав тут. Чудовий список! r-statistics.com/2010/09 / ...
Tal Galili

21

Дякуємо за посилання! Питання є відкритим для будь-якого статистичного програмного забезпечення - я час від часу використовую Python та Stata, тому мені цікаво, чи підтверджені користувачі можуть запропонувати цікаві рекомендації.
chl

Абсолютно; хоча я додам, що рекомендації у вищезазначених посиланнях дійсно можуть стосуватися будь-якого статистичного проекту (незалежно від мови).
Шейн

Однозначно, так! Я одночасно оновив своє запитання.
chl

8

Це збігається з відповіддю Шейна, але, на мій погляд, є дві основні опори:

  • Відтворюваність ; не тільки тому, що ви не закінчитеся результатами, які зроблені "якось", але також зможете швидше повторити аналіз (за іншими даними або з незначно зміненими параметрами) та матимете більше часу на роздуми про результати. Щоб отримати величезну кількість даних, ви можете спробувати свої ідеї на невеликому "відтворенні", а потім легко поширити на всі дані.
  • Хороша документація ; коментували сценарії під контролем версій, деякі дослідницькі журнали, навіть система квитків для більш складних проектів. Покращує відтворюваність, полегшує відстеження помилок і пише остаточні звіти тривіально.

+1 Мені подобається другий момент (я використовую roxygen + git). Перший момент змушує мене думати також про можливість надати свій код іншому статистику, який зможе відтворити ваші результати на більш пізньому етапі проекту, без сторонньої допомоги.
chl

Відтворюваність? У будь-якому випадку дані мають випадкову помилку, тому кого це хвилює. Документація? Дві можливі відповіді: 1) Ми занадто зайняті, у нас немає часу на документацію або 2) у нас був лише бюджет, щоб зробити аналіз або документувати його, тому ми вирішили зробити аналіз. Ти думаєш, що я жартую? Я бачив / чув ці погляди неодноразово - про проекти, за якими життя їхало по лінії.
Марк Л. Стоун


1

Всього мої 2 копійки. Я вважаю, що Notepad ++ корисний для цього. Я можу підтримувати окремі сценарії (управління програмою, форматування даних тощо) та .pad-файл для кожного проекту. Виклик файлу .pad - всі сценарії, пов'язані з цим проектом.


3
Ви маєте на увазі блокнот ++ із використанням npptor :)
Тал Галілі

1

Хоча інші відповіді чудові, я хотів би додати ще один настрій: уникайте використання SPSS. Я використовував SPSS для магістерської дисертації, і зараз я працюю на регулярній роботі з дослідження ринку.

Під час роботи з SPSS було надзвичайно важко розробити організований статистичний код через те, що SPSS погано обробляє декілька файлів (звичайно, ви можете обробляти декілька файлів, але це не так безболісно, ​​як R), оскільки ви не можете зберігати набори даних до змінної - ви повинні використовувати "набір даних активувати х" - код, який може бути загальним болем. Також синтаксис є незграбним і заохочує скорочення, що робить код ще більш нечитабельним.


0

Ноутбуки Юпітера, які працюють з R / Python / Matlab / тощо, усувають клопот запам'ятовувати, який сценарій генерує певну фігуру. У цій публікації описаний охайний спосіб збереження коду та фігури прямо поруч. Зберігання всіх цифр для статті чи дипломної роботи в одному зошиті дозволяє легко знайти код, що приєднується.

Ще краще, насправді, адже ви можете прокрутити, скажімо, десяток фігур, щоб знайти потрібну. Код зберігається прихованим, поки не знадобиться.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.