这篇开创性的文章主要指出,随意使用那些处理小型、中型及大型数据的数据技术将会带来危险。我们用在大数据交易的例子来说明这一问题,并提出了解决办法。而且,我们也相信出色的数据科学家的数量要比企业们所认为的更充足(而且也和他们所认为的身份不同):请阅读文章末尾“相关文献”部分以获取详细信息。这篇文章将用通俗的语言撰写,文章并不长,且会为决策者提供高端资料和深入的技术剖析以备所用。
简单而言,所谓“大数据的诅咒”是指,当你试图在那些有数十亿甚至数十万亿个数据点,而且包含数以千计指标的非常大的数据集中寻找一些模式时,你一定会发现一些毫无预测力的巧合事件——更糟糕的是,最无效的模式可能是: l 完全偶然的(就像某人完全偶然地中了彩票),而且 l 不可重复的, l 完全毫无预测力的, l 但隐含稍弱而被忽略、却有很强预测能力的模式。 所以问题在于:你怎样从海量数据里辨别真正的信号和随机信号呢? 我们来看看以下的例子:识别出强相关或不同时间序列中的关系。假如你有1,000个指标(时间序列),那么你可以计算499,500 = 1,000*999/2 种相关关系。如果算上时间滞后的交叉相关(例如,IBM今天的股价与Google两天前的股价),那我们就要处理数百万的相关关系了。而这些相关关系中,有些纯粹是偶然的——如果你这些相关关系用于预测建模,你就完了。请时刻记住,对所有指标进行交叉分析仅仅是统计学家实行任何项目时最初级的步骤——那是探索性分析的其中一个步骤。然而,对标准化时间序列进行频谱分析(而非相关分析)可以为识别真实关系提供一个更好的机制。 为了更好地解释这个问题,我们假设你有k个时间序列,每个时间序列有n个值,并计算k个不同的股票代码在由n天所组成的一个相同时期里不同时间滞后上的股价变化(股价涨跌)。例如,你想要检测诸如“当Google的股价上涨,Facebook的股价就会在此后一天中下跌”之类的模式。为了检测这样的有利模式,你需要计算数以千计只股票在不同时间滞后中的交叉相关性:一天、两天,或者一秒、两秒,这取决于你要做每日交易,抑或要进行当天快速频繁交易操作。通常情况下,你只进行少数几个观测——如10天或10毫秒——因为这些图式很快就会消失(当你的竞争对手检测到这种图式,就不会再有利)。换言之,你可以假设n=10,或者n=20。在基于月度数据(环境统计、新病症的出现)的情况下,可能n=48(月度数据从两年时间周期中搜集)。在一些情况下n可能大得多,但那种情况下大数据的诅咒将不复存在。大数据的诅咒在n小于200且k为一定值(例如,k=500)的情况下尤为严重。然而,n很大(> 1,000)且k也很大(> 5,000)的情况却非常罕见。 现在我们稍微估算一下在检测一个高度相关关系时发生错误的几率。我们本来可以用蒙特卡罗模拟来计算这个几率,但在这里我们宁愿用一个更浅显的旧式统计模型。 我们引入一个新参数,记为m,用它表示从我们所处理的k个时间序列中成对(双变量)、独立的时间序列的数量。我们要计算这m对时间序列的相关性。由此提出理论问题:假设你有m对独立的时间序列,每对时间序列由n个用随机数生成器生成的数字构成(例如在给定时间内,在模拟股票市场中两只不同股票的标准化股价),那么在这m个相关系数之中,至少有一个大于0.80的几率有多大呢? 在这种情况下,相关系数的理论值(与其估计值相对应)为0。为了回答以上的问题,我们(不失一般性地)假设这一(经过简单标准化后的)时间序列为高斯白噪声。这样,相关系数的估计值(记为r)是(渐近地,即当n不小时近似于)以均值 = 0 且方差 = 1/(n-1)的正态分布。r大于给定的数字a(例如当a = 0.80时,意指强相关)的概率为p = P(r>a),P表示均值 = 0且方差 = 1/(n-1)的正态分布。这样在m个双变量(成对)时间序列中,至少有一个的相关系数大于a = 0.80的概率就等于1-[(1-p)^m](即1-p的m次方)。 例如: l 如果n = 20,m = 10,000(10,000对时间序列,每对包含20个观测值),那么你得出的结论是错的(即a = 0.80)的几率为90.93%。 l 如果n = 20,m = 100,000(m仍然相对小),那么你得出的结论错得很离谱(即a = 0.90)的几率为98.17%。 在实际应用中是这样的:你有k个指标或变量,每个指标在n个不同的时间区间中计算出一个时间序列。你要计算所有的交叉相关,即m = k * (k-1)/2。但是现在m对时间序列之间的相互独立性却不成立了,为此相关系数估计区间的中心值将偏离一个较高值,诸如a = 0.90。更有甚者,你的数据也并非随机数,它们并不是白噪声。因此所得的理论相关值将远高于0,当n = 20时大约为0.15。而即使你只有k = 1,000个时间序列(例如每个时间序列表示一个股价),m的值仍将远高于(例如)10,000或100,000。不过这三个因素(非独立、r的理论值不等于0、非常大的m)将会相互抵消,这样在处理真实情形下一个典型的大数据问题时,我以上的计算仍然会相当准确。请注意我是使用一个叫stattrek的线上计算工具完成上述概率的计算的。 结论:在处理大数据问题前,请雇佣一位合适的数据科学家。他/她不一定非要技巧高超,但一定要能用类似我上述的方式来思考,要在写下一个统计或计算科学的算法前,知道可能导致模型出错的情形。如果你是统计学家,那会有助于你,但你不需要很高级的统计知识。作为计算机科学家也能帮你权衡选择算法并简化它们,让算法更有效。如果你是有MBA学位的分析师,那么你将能够透彻理解你要解决的问题。拥有以上三种身份当然求之不得。你也要明白,这样的人的确大有人在。 原文链接:http://www.analyticbridge.com/pr ... e-curse-of-big-data 译 者:中国统计网翻译小组--郭嘉恩
|