如何高效管理一个统计分析项目?

机器算法验证 项目管理
2022-02-11 22:23:50

我们经常听到计算机科学中的项目管理和设计模式,但在统计分析中却很少听到。然而,设计一个有效和持久的统计项目的决定性步骤似乎是让事情井井有条。

我经常提倡使用 R 并在不同的文件夹中统一组织文件(原始数据文件、转换后的数据文件、R 脚本、图形、注释等)。这种方法的主要原因是以后运行分析可能更容易(例如,当您忘记如何碰巧生成给定图时)。

统计项目管理的最佳实践是什么,或者您想根据自己的经验给出哪些建议?当然,这适用于任何统计软件。每个帖子一个答案,请

4个回答

我正在编译我在SO(@Shane 建议)、Biostar(以下简称 BS)和这个 SE上找到的一系列快速指南。我尽力确认每个项目的所有权,并选择第一个或高度赞成的答案。我还添加了我自己的东西,并标记了特定于 [R] 环境的项目。

数据管理

  • 创建一个项目结构,将所有东西放在正确的位置(数据、代码、图形等,giovanni / BS)
  • 切勿修改原始数据文件(理想情况下,它们应该是只读的),在进行转换、清理等时复制/重命名为新文件。
  • 检查数据一致性(whuber /SE)
  • 使用构建自动化工具管理脚本依赖项和数据流,例如 GNU make ( Karl Broman / Zachary Jones )

编码

分析

  • 不要忘记设置/记录您在调用 RNG 或随机算法(例如 k-means)时使用的种子
  • 对于蒙特卡罗研究,将规格/参数存储在单独的文件中可能会很有趣(苏门答腊可能是一个很好的候选者,giovanni / BS)
  • 不要将自己限制在每个变量一个图上,使用多变量(Trellis)显示和交互式可视化工具(例如 GGobi)

版本控制

  • 使用某种版本控制来轻松跟踪/导出,例如 Git(Sharpie / VonC / JD Long /SO)——这源于@Jeromy 和@Tal 提出的好问题
  • 定期备份所有内容(Sharpie / JD Long /SO)
  • 记录你的想法,或者依赖问题跟踪器,比如ditz ( giovanni /BS)——因为它在 Git 中可用,所以与上一个项目部分冗余

编辑/报告

作为旁注,Hadley Wickham 提供了R 项目管理的全面概述,包括可重复的示例统一的数据哲学

最后,在他的面向 R的统计数据分析工作流程中, Oliver Kirchkamp 提供了一个非常详细的概述,说明为什么采用和遵守特定的工作流程将有助于统计学家相互协作,同时确保数据的完整性和结果的可重复性。它还包括一些关于使用编织和版本控制系统的讨论。Stata 用户可能会发现 J. Scott Long 的The Workflow of Data Analysis Using Stata也很有用。

这与 Shane 的回答重叠,但在我看来,主要有两个方面:

  • 再现性不仅因为您不会以“不知何故”的结果结束,而且还能够更快地重新运行分析(在其他数据或稍微更改的参数上)并有更多时间考虑结果。对于庞大的数据,您可以先在一些小的“游戏集”上测试您的想法,然后轻松扩展整个数据。
  • 良好的文档评论版本控制下的脚本,一些研究期刊,甚至更复杂项目的票证系统。提高可重复性,使错误跟踪更容易,编写最终报告变得微不足道。

van Belle是成功统计项目规则来源。