许多统计工作要求具有大规模数据的经验。处理大型数据集需要哪些统计和计算技能。例如,给定包含 1000 万个样本的数据集,如何构建回归模型?
进行大规模统计分析需要哪些技能?
好的答案已经出现。因此,我将根据个人经验分享一些想法:根据需要根据自己的情况调整相关的想法。
对于背景和上下文——所以你可以解释任何可能潜入这条信息的个人偏见——我的大部分工作都是帮助人们根据相对较小的数据集做出重要的决定。它们很小,因为收集数据可能很昂贵(例如,地下水监测井的第一个样本需要 10,000 美元,或者用于分析异常化学物质需要数千美元)。我习惯于从任何可用的数据中获取尽可能多的数据,将它们探索到死,并在必要时发明新的方法来分析它们。然而,在过去的几年里,我一直从事一些相当大的数据库的工作,例如在人口普查区块级别覆盖整个美国的社会经济和工程数据之一(850 万条记录,
对于非常大的数据集,一个人的整个方法和思维方式都会发生变化。现在有太多数据需要分析。一些直接的(回想起来)明显的影响(强调回归建模)包括
您考虑进行的任何分析都可能需要大量时间和计算。您将需要开发子采样方法和处理部分数据集,以便在使用整个数据集进行计算时规划您的工作流程。(二次抽样可能很复杂,因为您需要一个与整个数据集一样丰富的数据的代表性子集。不要忘记使用保留的数据交叉验证您的模型。)
您的大部分时间都花在简单地移动数据并重新格式化它们上。您需要处理大型数据库的技能以及汇总和绘制大量数据的技能。(塔夫特的小倍数在这里脱颖而出。)
您最喜欢的一些软件工具将会失败。例如,忘记电子表格。许多开源和学术软件无法处理大型数据集:处理将永远持续下去,否则软件将崩溃。期待这一点,并确保您有多种方法来完成您的关键任务。
您运行的几乎所有统计测试都会非常强大,几乎可以肯定会识别出“显着”效果。 您必须更多地关注统计重要性,例如效果大小,而不是显着性。
同样,模型选择很麻烦,因为您可能考虑的几乎任何变量和任何交互都会看起来很重要。 您必须更多地关注您选择分析的变量的意义。
将有足够多的信息来识别变量的适当非线性变换。知道如何做到这一点。
您将有足够的数据来检测非线性关系、趋势变化、非平稳性、异方差性等。
你永远不会完成。有这么多的数据,你可以永远研究它们。因此,重要的是从一开始就确立分析目标并始终牢记在心。
我将以一个简短的轶事结束,它说明了使用大型数据集的回归建模与使用较小数据集的回归建模之间的一个意想不到的差异。在使用人口普查数据的项目结束时,我开发的回归模型需要在客户的计算系统中实现,这意味着在关系数据库中编写 SQL 代码。这是一个常规步骤,但数据库程序员生成的代码涉及数千行 SQL。这使得几乎不可能保证它没有错误——尽管我们可以检测到错误(它在测试数据上给出了不同的结果),但找到它们是另一回事。(您所需要的只是系数中的一个印刷错误......)解决方案的一部分是编写一个程序,该程序直接从模型估计中生成 SQL 命令. 这确保了从统计包中出来的正是进入 RDBMS 的。作为奖励,编写此脚本花费的几个小时可能取代了可能数周的 SQL 编码和测试。这只是统计学家能够传达他们的结果的一小部分。
你的问题应该会产生一些好的答案。这里有一些起点。
在精度和对计算能力的要求之间进行权衡的能力。
具有数据挖掘技术的设施,可在进行回归之前用作初步筛选工具。例如,chaid、cart 或神经网络。
深刻理解统计意义和实际意义之间的关系。多种变量选择方法。
交叉验证的本能。
良好的编程技能是必须的。您需要能够编写能够处理大量数据而不会阻塞的高效代码,并且也许能够并行化所述代码以使其在合理的时间内运行。
我还要补充一点,大规模数据还引入了潜在的“坏数据”问题。不仅缺少数据,而且系统的每个部分都会引入数据错误和不一致的定义,这些部分曾经接触过数据。因此,除了统计技能之外,您还需要成为一名数据清理专家,除非有人为您做这件事。
——拉尔夫·温特斯