考虑实际意义
有大量数据的话,只关注统计学意义,或处理每一小组数据的细节,都是十分诱人的。但是您需要反问您自己,“如果X的值确实比Y的值多0.1%,这有影响么?”这可能特别重要,如果您不能很好理解或是归类您的部分数据。如果您不能理解我们的日志中的一些用户代理字段,不管它是0.1%还是10%有很大的差异,取决于多大程度上您要研究这些案例。
另一方面,您有时会有一个较小的数据集。许多变化达不到统计学显著意义,可是又不同于说这是“中性”。您必须问自己“实际上仍然具有显著性变化的可能性有多大”?
检查经过时间后的一致性
您应该总是使用的一种特定划分方法,就是以时间为单位划分(我们经常使用的是日期,但其他单位可能也行)。这是因为许多基础背后的干扰因素系统随时间演进而产生的。通常一个特征或初始数据集的初始版本将会受到仔细的检查,但是依这种方法继续,出现例外并不罕见。
仅仅因为某一天或某些天出现异常,并不意味着您应该舍弃它。在您丢弃之前,使用这个异常数据作为一个钩子,找到为什么这天出现异常的原因。
看这种“一天又一天”的数据的另一个好处是,它给您数据不断变化的感觉,最终将形成一个置信区间或声明其统计学显著性。这通常不能取代严格的置信区间计算,但仅从“一天又一天”图表中您往往可以看到统计显著的大致变化。
过程
分开验证、描述、评估
我认为探索性数据分析有三个相互关联的阶段:
验证或初步数据分析:我是否相信数据是自我一致的(self-consistent),是否采用正确的数据收集方法,我认为这些数据代表什么?这通常叫做“健康检查”。例如,如果完成了手动测试某种特征,那么我可以看看手动测试的日志吗?移动设备功能推出的特性,日志是否记录了台式机也存在这种特性?
描述:这个数据的客观解释是什么?例如,“用户很少用7字查询这些数据吗?”,“点击页面加载的时间(这里经过点击后)超过1%”,还有“进入下一个结果的页面的用户比例更小。”
评估:鉴于描述,数据告诉我们,对于用户、对于谷歌、对于世界一些好事将会发生吗?例如,“用户可以更快找到结果”或“点击质量更高了”。
分成这些阶段,您可以更容易地与他人达成共识。描述应该是每个人都能从数据达成一致的事情。评估可能会存在更多的争议,因为您对数据灌输了一些意义和价值。如果您不把描述和评价分开,您更有可能只看到您希望看到的数据解释。此外,因为要建立规范的测度值,通常是通过与其他特征和测量进行严格的比较,需要大量的投入,评估往往会更加困难。
这些阶段不是按顺序递进的。当您要探索数据,您可能在这些阶段之间反复,但在任何时候您应该清楚您处于什么阶段。
确认实验及数据收集的建立
看任何数据之前,确保您了解实验和数据收集的设置。实验者和分析师之间交流融洽,是一个巨大的挑战。如果您能直接看到实验协议或配置,那您就应当这样做。否则,写下您自己理解的设置,确保负责采数据的人能明白它的正确性。
您可能会发现不正常或不好的配置,或样本集的限制(如仅在一个特定的浏览器下能得到有效数据)。这里提到的可能会帮助您构建并验证理论。下面一些方面需要考虑:
如果它是一个产品的特征,那么就要试着找出它。如果不能,至少要看行为的截图或是描述;
寻找任何实验运行时间内的不寻常事件(假期、大新闻的发布,等等)。
检查关键标记
在真正回答您感兴趣的问题之前(例如,“用户使用我厉害的新功能了吗?”),您需要检查大量的相关事宜,这些可能不是您感兴趣的,但这可能对以后的分析或指出数据的问题是很有用的。用户数量变化了吗?受影响查询数量是否正确得显示在我所有的子组当中?出错率变了吗?就像您的医生每次总是检查您的身高、体重、和血压,检查您的生命体征数据是否潜在大问题。这是一个“验证”阶段的重要组成部分。
标准化第一,个性化第二
这是一个不容改变的检查规则。特别是当看到新特性和新数据的时候,那么用新的或特别的测量这个新特征的方法往往很诱人。但是您应该先看看标准测量方法,即使您希望改变他们。例如,当添加一个全新的UI特征来搜索页面,您应该确保您先理解标准测量,比如结果的点击数的影响,然后对这个新的UI功能采用特别的测量方法。您这样做是因为标准测量更加有效,更可能是正确的。如果您的新、自定义的测量与标准的测量不一致,那这个测量很可能是错的。