整洁的数据是组织数据集的三条规则集:
- 每个变量形成一个列。
- 每个观察形成一排。
- 每种类型的观测单元形成一张桌子。
这是一个令人难以置信的有用的抽象思考组织数据集进行分析。特别是任何数据集, 可以方便地重新纠结, 看起来像这个有趣的图表从珍妮布莱恩
然后可以假定有一个共同的形式和结构。这使得编写操作工具更加容易 - 因为格式是标准化的。从那时起,一整套的 R 包如雨后春笋般涌现,称为"整洁"(以及大量其他不在官方整洁的包装中),这些包根据该品种的数据运行。
整洁的数据非常适合您可能感兴趣的大量数据分析。它使组织、开发和共享数据变得容易得多。我建议大多数人共享数据, 我最近甚至写了一个完整的 Nih 赠款围绕整洁的健康数据库的想法。
但是,当您不得不处理边缘案例(如嵌套数据集)或非常大且导致重复整理数据的数据或最好作为矩阵操作的数据时,它开始感到有限制性。这些非整洁的数据在执行的大多数数据分析中只占相对较小的一小部分。对于这些分析,你可以做一些聪明、有条理的事情,但腹肌的有用性经常会分解。
最近,我一直在思考一套等效的数据分析规则是什么。我写了一本关于数据分析的书, 它本质上是一个扩展的经验法则清单。但我开始怀疑,我们能否想出一个实用和简单的数据分析抽象?我特别感兴趣的是,我们能否制定出一套三条规则,涵盖在实践中进行的绝大多数数据分析,并简化我们对这些分析的评估和理解。它还可以通过限制选择空间来简化数据分析工具的构建。必然,三条规则会导致边缘案例的一些不适,就像整洁的数据抽象在边缘周围遇到不适一样。但对于这个练习,我愿意接受那种程度的不适。
经过一段时间的思考,我确定了以下三条规则,我很乐意得到人们的反馈。"整洁"分析包括:
- 它回答了一个可以用参数来定义的定量问题。
- 它使用一套培训来进行所有模型构建,并使用测试集来评估所有模型构建。
- 它仅使用线性模型。
我已经告诉了几个人这个想法, 我得到了反应, 从笑声到冷淡的协议, 以推回。所以我想为这些规则给出一些理由。
参数定义的单个定量问题
正如任何应用/咨询统计学家会告诉你的,与合作者合作的很大一部分工作正在定义这个问题。根据我的经验,项目成功的关键预测因素之一是我们能否确定一个具体和可量化的问题。在大多数数据科学/统计咨询类中,我们致力于找出正在问的问题以及我们如何能够将之转化为定量陈述。因此,任何整洁的分析都会导致以具体参数定义的单个问题 - 这避免了您看到 1000 个不同图、子分析和转移的分析类型。
培训和测试集
数据分析过程有多种模型,但大多数模型都是以周期来定义的。例如,以下是哈德利·韦翰的《数据科学研究》一书所定义的过程
另一个例子是《数据科学的艺术》一书:
这种数据科学的循环视图的麻烦在于,它打开了p-hacking和叉路花园的大门,因为你永远不知道您所做的绘图、处理步骤或分析是跟踪信号还是噪音。众所周知,长期以来,避免这些过度拟合问题的最好方法是评估您的分析结果。无论您是在做推理、探索性分析还是预测,这都适用。
线性模型
当我提出这个方法时,这个是最有争议的。但我认为降低研究人员自由度的最好办法之一是降低研究人员的自由度。线性模型是一个极其有用的工具,可用于 ANOVA、建模、可视化、预测和许多其他任务。此外,它们的好处是成为更易于解释的模型之一。也许最重要的是,在线性模型中,您知道任何共变和您试图评估的结果之间的确切关系。
在我职业生涯的早期,我经常犯这样的错误:先尝试线性模型,看不到信号或信号很少,然后浪费大量时间尝试鸽友模型。几乎不可避免的是,如果你看不到一个合适的线性模型的信号,你将无法找到它与更奇特的方法。更奇特的方法可能只是使信号更强。因此,作为第一关,我总是希望看到线性模型的结果,以建立一个基线。
这确实遗漏了某些类型的分析,如无人监督的分析。但我认为这就是重点,目标是找到一套规则,涵盖大多数分析,使我们能够模板化/组织自己,并消除最常见的障碍,共同努力。