《统计会犯错——如何避免数据分析中的统计陷阱》一一2.2 低功效困境

简介:

本节书摘来自异步社区出版社《统计会犯错——如何避免数据分析中的统计陷阱》一书中的第2章,第2.2节,作者:【美】Alex Reinhart(亚历克斯·莱因哈特),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 低功效困境

考虑下面一个试验:在相同条件下,比较Fixitol和Solvix这两种不同的药物,以确定哪种药物更加安全。由于药物的副作用比较罕见,所以即使分别在100名患者身上测试这两种药物,在每一群体里,也只要在少数患者身上产生严重的副作用。正如同我们难以区分两枚正面向上概率分别为 50%和 51%的硬币,如果两种药物的副作用发生率分别为 3%和 4%,那么也难以把它们区别开来。如果有 4 名服用Fixitol的患者产生了严重的副作用,而只有 3 名服用Solvix的患者产生了副作用,此时你并不能得到Fixitol更有可能产生副作用的结论,这是因为此时检验的功效较低。

如果一个试验不能有效地识别出某种效应,那么我们就说这个试验低功效。

你也许认为,对于医学试验而言,计算功效是必需的一个步骤;新药开发人员为了检验一种药物的效果,应确定召集多少名患者来参与这个试验,而通过计算一下功效就可以得到答案。令科学家感到满意的试验的功效是80%或者比这更高,这也就意味着能够有80%或更高的概率检测到一种特定大小的真实效应。

然而,鲜有科学家计算统计功效,也很少有期刊论文提及统计功效。在最权威的期刊《科学》和《自然》上,在开展研究之前计算统计功效的文章少于3%1。实际上,许多试验的结论是:“虽然两组效果具有大的差异,但是在统计上并没有显著性”。这些试验丝毫不提及,可能是因为没有收集到足够的数据,所以它们的功效较低,发现差异却没能得到显著性的结论2。如果有些试验是在比较两种药物的副作用,那么以上错误结论就意味着,两种药物都是同样安全的,而事实上,其中某种药物可能比另一种更加危险。

你也许认为上述问题只在副作用发生概率很低或者副作用影响不大时才会产生。事实上绝非如此。我们收集了1975~1990年在权威医学期刊上发表的一些试验,发现在那些报告没有显著性差异的试验中,约有4/5的试验没有收集足够的数据,来检测治疗组与对照组之间25%的效果差异。也就是说,即使一种药物比另一种药物能将病状降低25%,却由于没有足够的数据,仍然不能作出上述结论。另外,约有2/3的试验的功效较低, 未能检测出50%的效果差异3。

在最近关于癌症试验的一项研究中,有类似的结论:在那些得到阴性结论的研究中,仅有一半有足够的功效能识别出主要结果的差异,其他研究均因功效过低没有得到有用发现4。在这些低功效的研究中,只有不到10%解释了为什么选取的样本容量如此之少。类似的低功效问题在医药研究的其他领域也时常发生5,6。

以上问题在神经科学的研究中尤为突出。每项神经科学研究收集了过少的数据,以至于平均每项研究只有20%的功效。为了弥补低功效的不足,你可以将研究同一效应的所有论文数据整理在一起进行分析。既然神经科学研究都以动物作为研究对象,因此就产生了伦理问题。如果一项研究功效较低,那么只有完成更多的研究,使用更多的动物作为研究对象,才能发现真正的效应7。伦理道德委员会不应支持开展那些功效较低、不能发现目标效应的研究。

低功效的原因
奇怪的是,低功效问题由来已久,但现在仍然非常普遍。1960年,Jacob Cohen分析了发表在《Journal of Abnormal and Social Psychology》8上试验的功效,他发现平均而言,这些试验能够检测出中等效应的功效只有48%[1]。Jacob Cohen的研究被引用上百次,而且类似的评论也接踵而至,一致要求进行试验时需计算功效并扩大样本容量。1989年,一篇评论指出,在Cohen得到以上分析结论后的10年里,平均的研究功效实际上又下降了9!这是因为,研究人员开始意识到多重假设检验问题,而在解决多重假设检验问题的过程中,研究的功效进一步降低了(我们将在第4章讨论多重假设检验问题,那时你将会看到我们必须在研究功效和多重假设检验修正之间做出取舍)。

为什么我们经常忽视功效计算?原因之一是样本大小和功效结果给我们的直观感受不一样。即使在功效极低的情况下,我们经常认为试验对象已经足够多了。举个例子,假如你在测试一项新的心脏病治疗方案,希望将死亡风险从20%降低至10%。你可能会这样想:如果对50名患者采用这项新的方案,没有发现明显差别,那么新治疗方案就没带来多少好处。但是为了使功效达到80%,你实际上需要多达400名患者,每个治疗组里有200名患者而不是50名患者10。临床医生往往未意识到他们的样本容量太小。

在数学上准确计算功效难度较大,甚至有时无法计算,这是忽视功效计算的另外一个原因。在统计课堂上,一般不会讲授计算功效的方法,并且一些商用软件中也没有计算功效的函数。当然,你也可以不用数学而是利用随机模拟的方法计算功效。首先模拟具有你所期待效应的成千上万个数据集,然后在每一个数据集上进行统计检验,得到显著性检验结果的比例就是功效。但是这种方法需要编程经验,而且模拟现实数据也充满技巧。

尽管计算困难,但你可能认为科学家应该注意到了功效问题并试图进行改进:连续5次或6次试验都显示不显著的结果,科学家就应怀疑在某些地方出了问题。然而,一般的研究并不只做单个假设检验而是很多、很有可能得到显著性的结果 11。只要该显著性的结果非常有趣,就可以看成是论文的亮点,这名科学家此时早已忘记研究功效较低的问题。

低功效并非意味着,当科学家们声称两组之间没有显著性差异时,他们在说谎。但是如果认为这些结果表明确实不存在差异,那这就是误导了。差异甚至一个非常重要的差异可能是存在的,只是由于研究的规模太小没能发现这种差异。下面,我们考虑生活中的一个例子。

遇红灯时错误转弯
20世纪70年代,美国许多地方开始允许司机遇到红灯时右转。而在很多年以前,城市道路规划人员认为,允许红灯右转会带来安全隐患,引起更多的交通事故和行人死亡。但是1973年的石油危机促使交通管理部门考虑实施这项政策,因为这样就能减少等待红灯时的汽油浪费。最终,国会要求各州实施该政策,并把它作为一项能源节约措施,就像建筑物隔热有效采光措施一样。

一些研究考察了该政策带来的安全影响。其中,弗吉尼亚公路与运输局的咨询部门对比了政策变化前后,州内 20 个交叉路口的交通事故发生情况。他们发现,在允许红灯右转之前,这些交叉路口发生了 308 次事故,而在允许红灯右转之后,相同时间内发生了 337 次事故。他们的报告指出,虽然事故发生率增加了,但这种差异在统计上是不显著的。在看到这份报告后,公路与运输局的官员写道:“我们可以相信,红灯右转政策并未给汽车驾驶员或行人带来显著的危险隐患”12。显然,官员们把统计上的不显著直接当作现实中的不显著。

后续研究有类似的发现:相撞事故次数略有增加,但并没有足够的数据表明这种增加是显著的。正如一份报告所指出的:没有理由怀疑在实施“红灯右转”后,行人被撞事件的次数增加了。

显然,以上研究均是低功效的。但是越来越多的州和城市开始允许红灯右转,在整个美国这种做法也变得非常普遍。没有人尝试将各项研究的数据整理在一起,形成一个更有用的数据集。与此同时,越来越多的行人被撞伤,越来越多的汽车被撞毁。没有人收集足够的数据来说明这种情况,直至若干年后,一些研究才发现,由于右转,汽车撞毁频率比以前提高 20%,行人被撞的频率比以前高 60%,几乎是骑自行车的人被撞频率的 2倍13,14,[2]。

然而,交通安全部门并没有吸取教训。例如, 2002 年的一项研究考察铺砌的路牙对乡村公路交通事故发生率的影响。不出意外,路牙降低了事故风险,但没有足够的数据说明这种下降在统计上是显著的,因此研究人员的结论是,铺砌路牙子的花费是不值得的。他们混淆了不显著的差异和完全没有差异,尽管数据已经表明铺砌的路牙可以改善交通安全12。一个更好的分析的结论似乎应该是这样的,铺砌路牙的好处在统计上是“不显著”的,但是数据表明铺砌路牙确实带来了巨大好处。这就是置信区间的分析方法。

相关文章
|
11天前
|
机器学习/深度学习 数据可视化 数据挖掘
用Python进行健康数据分析:挖掘医疗统计中的信息
【4月更文挑战第12天】Python在医疗健康数据分析中扮演重要角色,具备数据处理、机器学习、可视化及丰富生态的优势。基本流程包括数据获取、预处理、探索、模型选择与训练、评估优化及结果可视化。应用案例包括疾病预测、药物效果分析和医疗资源优化,例如使用RandomForestClassifier进行疾病预测,Logit模型分析药物效果,以及linprog优化医疗资源配置。
|
1月前
|
存储 数据采集 数据挖掘
python数据分析——数据分类汇总与统计
数据分类汇总与统计是指将大量的数据按照不同的分类方式进行整理和归纳,然后对这些数据进行统计分析,以便于更好地了解数据的特点和规律。
58 1
|
1月前
|
机器学习/深度学习 算法 数据挖掘
python数据分析——数据分析的统计推断
数据分析的统计推断是科学研究中的重要环节,它通过对样本数据的分析,对总体参数进行估计,并对假设进行检验。这一过程旨在从数据中提取有意义的信息,为决策提供科学依据。 在统计推断中,我们通常会遇到两类问题:参数估计和假设检验。参数估计是通过样本数据对总体参数进行点估计或区间估计。点估计是对总体参数的具体数值进行预测,而区间估计则是给出一个包含总体参数的置信区间。这两种估计方法都基于大数定律和中心极限定理,保证了估计的准确性和可靠性。
45 0
|
4月前
|
算法 数据挖掘 API
贝叶斯统计在Python数据分析中的高级技术点:贝叶斯推断、概率编程和马尔科夫链蒙特卡洛
贝叶斯统计在Python数据分析中的高级技术点:贝叶斯推断、概率编程和马尔科夫链蒙特卡洛
47 1
贝叶斯统计在Python数据分析中的高级技术点:贝叶斯推断、概率编程和马尔科夫链蒙特卡洛
|
5月前
|
Web App开发 数据挖掘 iOS开发
84 网站点击流数据分析案例(统计分析-PV统计)
84 网站点击流数据分析案例(统计分析-PV统计)
55 0
|
4天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
9 1
|
5天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
9 1
|
5天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
10 1
|
8天前
|
Python 数据挖掘 存储
Python 数据分析(PYDA)第三版(七)(4)
Python 数据分析(PYDA)第三版(七)
30 1
|
Python Shell 存储
Python 数据分析(PYDA)第三版(七)(3)
Python 数据分析(PYDA)第三版(七)
44 1
Python 数据分析(PYDA)第三版(七)(3)

热门文章

最新文章