方法赏析:《人文地理学进展》定量研究方法第一弹之“复制量化研究”
【导读】
可重复的定量研究是经过严格记录的研究,第三方可以重现任何定量结果的研究。本文认为这样一个目标对于定量人文地理研究是可取的,特别是该领域已经转向使用仿真技术和大数据分析创建算法和代码。文章列举了从20世纪70年代末至今这一领域许多可复现的定量地理研究,在此基础上,讨论了使研究具有可重复性的工具等实际问题,并明晰了采用这些方法的积极作用,文章的最后则以一些定量地理学家渴望发表可重复的研究结果作为总结。
敬请阅读:
Brunsdon C. (2016). Quantitative methods I: Reproducible research and quantitative geography. Progress in Human Geography, 40(5):687-696. doi:10.1177/0309132515599625
人文地理学大量的定量工作依赖于对数据的分析,通常这些研究的结果又是对分析过程产生的文本、统计建模、编码和可视化的简单阐述。可以说,尽管学者通过数据分析在这一领域发表文章并解决了具体的问题,但是总结的结论却很大程度上取决于数据分析工作。这也是进行数据分析工作的人被列为论文的作者之一的原因。与之矛盾的是大多数出版商更倾向于提供的是对地理问题的争鸣的平台,却很少注意到处于幕后的、可能会深远影响结论与建议的数据活动。
图1 Richard Harris的定量地理学著作
“研究可重复性”这一术语是用来描述解决问题的方法,尽管作者的观点在其他使用定量数据分析的领域广受关注(例如统计学、计量经济学和信号处理等领域),但同行的地理学家并未对这一术语给予应有的重视,本文认为,从事地理研究的学者应该重视定量地理研究的可重复性,并指出这一目标实现的内容为:任何报告结果的完整细节以及用于获得结果的计算应当是通用的,以便其他遵循相同程序和使用相同数据的人可以获得相同的结果。除此之外,还有学者认为还应该遵循两条公认的科学范式,他们是:(1)演绎:通过数学验证和形式逻辑实现;(2)实证:数据收集、统计模型和假设检验;
随着时间推移,还应该出现第三种科学范式:算法(大规模模拟和建模)。在复杂系统的研究的深入,第四种探索范式也正在出现,其典型特征是使用数据挖掘或更广泛的数据密集型操作来确定复杂数据结构的感兴趣区。之所以出现这种范式的原因是先进的数据收集、观测和测量技术使得收集非常大的数据成为可能,并且计算机技术(例如云计算)的发展可以有效处理为数据集。
连接不同科学范式的工具是计算机代码,学者通过不同的代码体现不同的智力贡献,如果某项研究的代码不能公开,那么在这些范式工作的研究人员进行全面探索和批判性工作就会受到抑制,定量科学、社会科学和定量人文学科的研究人员都会如此。所以我们应该集中解决这一工具透明公开的含义。
对于地理学家来说,理解和研究计算和探索范式的含义是证明可重复性的关键。在计算方式方面,作者列举了一系列定量地理研究工作,包括:(1)Openshaw和Taylor在研究面积单位变化是相关系数变化的工作;(2)Lovelace和Ballas修改微模拟技术,提供了Fortran和R代码保证产生迭代比例拟合的基于整数的加权模拟;上述两位学者的工作使得其他人能够与指定的算法进行交互或者修改,以便在不同的情况下应用。同样的,也有学者在相同分析框架下提供了相似的算法,这也被认为是对可重复性的贡献。
图2 R语言已经在自然地理领域被广泛引用
在Parker和Epstein为模拟流行病学传播提供的基于代理的模型的文章中,两位作者甚至提供了复现代码需要的环境,并为其他人复现代码的关键提供了帮助,使得其他人能理解透彻底层模型(本文体现的关键思想),并考虑修改代码并重新运行的方式进而修改模型。
也有的文章虽然没有提供完全可复制的代码,但是提供了非常详细的描述,因此第三方也很可能得以复制结果。虽然严格上说这种论文没有实现完全的可重复性,但是采用这种方法的论文体现了我们提到科学范式的一些优点。作者在这一节中展示了许多学者的工作,甚至还在文章中复现了一部分学者的工作,编辑简要指出所有的这些实例都是为了证明作者在上一节指出科学范式的优越性。
可重复性并不是通用的,例如重新进行收集、整理和分发整个人口普查是不可能的。然而,在定量人文地理领域特别是空间数据分析和地理信息系统,上述过程(假设我们进行的是一定范围的人口普查数据)是可能的,并且许多情况下是一个实用的建议。
Brunsdon和Singleton设定了以下场景证明上述论点:(1)你拥有一个数据集,你想用所在领域另一位研究人员发表的最近一篇论文中相同的技术来分析,但是在那篇论文中,这项技术并没有具体的算法和描述,尽管你可以访问该论文的数据,并尝试重新创建该技术,却无法重现报告中的结果;(2)你在五年前发表了一篇文论,将分析技术应用于一个数据集,现在希望用另一方分析方法,并希望比较结果;(3)在一篇论文报告中发现了一种特殊形式的分析,随后发现某个软件包提供了不完善的分析方法的算法,你想看看是否影响论文中的发现;(4)分析的数据集被发现包含恶意的数据(通常是未清洗),现在被修正了,你希望用新版本的数据重新进行分析工作。
提供准确详细的算法在上述场景中很有用,然而,有人可能会说,代码本身对可重复的帮助要大得多,因为口头描述容易导致不正确的解释和必要细节的遗漏,甚至,文章中所用的代码可能包含错误。在大多数情况下,这些信息的遗漏并不是研究人员的故意行为。作者提到后续有学者探讨这一点是否合理,但是需要承认的是,细致的工作(指提供完整可重复的代码)并不是科学标准(编辑注:作者更多认为这是一种权力,并不强制要求),不应该对所有的学者强制应用这一标准。
为了解决上面提及的问题,一种合适的方法是literate programming,即文本编程(编辑注:可以理解为计算机工程中的伪代码),这种方法最初是作为一种记录代码的工具提出的,可以同时记录代码文档和代码本身。
依照该方法可以生成人类可读的文档和计算机可读的内容并用来生成软件。这样做的目的是,人类可读的输出提供了程序工作的解释,提供了程序功能的可访问的概述解释。然而,这样的概要文件也可以以稍微不同的方式使用,其中人类可读的输出不是描述代码,而是包含由合并的代码执行的一些数据分析的文章。表格结果、图表和地图是由嵌入的代码创建的。和前面一样,可以对文件应用两个操作:文档创建和代码提取。嵌入的代码在原始文件中也可见。因此,有关报告和处理的信息可以包含在一个单独的文件中—如果分发此文件,则可以实现可复制的分析。
图3 Latex语言可以快捷嵌入代码,如今是很多理工科论文排版工具
实现这种方法的例子有NOWEB系统、Sweave和Knitr包。第一种方法使用标记语言的两个非常简单的扩展将代码合并到LaTeX文档中。后两种是该系统的扩展实现,使用R作为嵌入式代码的语言。有学者还提供了将代码嵌入markdown(一种比LaTeX更简单的标记语言)的可能性,这有助于快速生成可复制的文档。在后两种方法中使用R包对地理学家来说是令人鼓舞的,因为R提供了许多用于空间分析、地理信息系统提供的地理数据处理和空间统计的软件包。此外,由于R是开源软件,因此这些包中使用的代码也可以公开获取。因此,不仅可以共享高级数据分析操作,还可以共享用于在更高级别构建工具的代码。这里的另一种可能性是使用Pweave的方法,这是NOWEB的类似扩展,用于嵌入Python代码而不是R。
同样,Python为地理数据分析提供了许多工具,例如PySAL包。
可重复的方法提供了许多好处,然而,依然拥有比较高的门槛,例如没有基于GUI(图形化界面)的工具(例如Excel),通常都是使用代码来执行分析、可视化和数据操作,对操作者提出较高的要求,当今数据分析已经普遍转向了编程和远离GUI的趋势。另一方面,还要注意计算机本身的缺陷,例如无法生成真正的随机数。
然而,一个更大的挑战是被称为“数据革命”带来的新的探索范式。“大数据”不仅指数据集的大小,还包括了应用程序的多样性、复杂程度等,更包括了采集数据的传感器等等。了解这些对于定量地理学家非常重要,因为产生的数据大多带有地理属性,虽然计算范式可以被视为与演绎和实证方法结合,但仍有学者认为大数据的探索是理论导向方法的强有力的竞争对手,数据集接近通用性和模式识别甚至取代了理论和实验的需要。并且这种自以为是的说法没有受到任何质疑,至少在地理学科当中如此。这是值得从事定量地理研究学者警惕的。
对于人文地理数据定量分析的可重复性,不仅对于学术界(社会学更是如此,参见《社会学研究》近期的一个文章引起的“复制量化研究”的讨论复制《社会学研究》的一项研究的结果和感想),对于负责分析可能影响政策的数据的公共机构和私人咨询公司也是如此。尽管随着地理参考信息的多样性和数量的增加,前面还有一些挑战,但在某些情况下,实现这一目标显然是指日可待的。可以说,可重复方法在解决大问题上也有作用。采用可重复的方法确实需要改变研究者的实践,以及出版商的实践,即提供一种可以轻松提交可复制文件的媒介,处理和分发。