APP下载

OxCal校正软件在考古年代学中的应用

2022-04-14

东南文化 2022年1期
关键词:贝叶斯校正指令

宋 殷

(北京大学考古文博学院 北京 100871)

内容提要:OxCal校正软件是一款常用的处理碳十四数据的程序,拥有72个基本指令与若干模型。该软件的基本指令有两种,分别是赋值型指令和结构型指令。OxCal校正软件运用在具体考古遗址(如王城岗龙山文化城墙和城壕以及古埃及阿马尔纳遗址)研究中时,要注意序列或阶段的选择。

一、前言

碳十四测年有三次革命,分别是碳十四测年技术的出现即碳十四革命、校正曲线革命和AMS革命[1]。在最初几代校正曲线发布的时候,碳十四数据的校正方法主要采用校正表的方式校正,如1972年发布的“达曼表”和1984年发布的“新表”[2]。然而,随着计算机技术的发展并运用于碳十四数据的校正,通过查表来进行碳十四数据校正的方法迅速过时,同时,20世纪90年代贝叶斯统计被引入考古学界。使用贝叶斯统计来处理碳十四数据同样需要大量的数学运算,运用计算机软件来进行数据的校正和贝叶斯统计成为碳十四年代学这一领域的发展趋势。

在这样的背景下诞生了各种可用于处理碳十四数据的校正软件,比如 CALIB[3]、OxCal[4]、BCal[5]、CalPal[6]等。每种软件各有优势和劣势,本文不拟在此对各种校正软件的应用进行一一介绍,仅聚焦于在夏商周断代工程期间被介绍进中国并产生较大影响的OxCal校正软件。OxCal校正软件的开发和更新主要由牛津大学的兰姆希教授(Christopher Bronk Ramsey)完成,该软件自1994年首次发布以来经历了大约133次更新,最近一次更新版本OxCalv4.4.4完成于2021年11月24 日[7]。

OxCal校正软件虽然为碳十四数据的校正和贝叶斯统计处理带来了很多便利,但是OxCal校正软件是非开源的,即用户无法在OxCal校正软件上根据自己的需求设计代码以实现任务,因此理解那些在OxCal校正软件上的指令就至为关键。

二、基本指令与模型

OxCal校正软件拥有72个基本指令,可以完成数据的基本校正。其模型包括贝叶斯统计模型、树轮扭摆匹配(Tree-ring Sequence)、沉积模型(Deposition Model)、异常值模型(Outlier Model)等。其中,贝叶斯统计模型具体又包括连续模型(Contiguous Model)、非连续模型(Sequential Model)、重叠模型(Overlapping Model)、梯形模型(Trapezium Model)等。一般可以这样来理解,基本指令相当于一块块积木,而模型相当于用积木搭起来的建筑。

上述基本指令与模型在OxCal校正软件上都有简单的英文描述[8],为了方便理解和应用,本文结合实际使用经验,在此简要介绍一些重要指令和模型。

基本指令有两种,分别是赋值型指令和结构型指令。赋值型指令是指可以赋予一定数值来实现功能的指令;结构型指令是指这种指令可以容纳一系列的赋值型指令并构成一定的结构以实现某种功能。模型一般是由一个结构型指令或一群结构型指令构成的。

举例来说,R_Date这一指令即属于赋值型指令,每一个R_Date可以赋予三个值,分别是名称、碳十四原始数据(以5568年为半衰期,以BP为单位)、碳十四原始数据的误差(即正负多少年)。一个R_Date指令代表了一个实测的碳十四数据。同样是年代数值,C_Date也可以赋予三个值,分别是名称、指定日历年代(输入数值即公元多少年,公元前多少年要加上负号)、误差(正态分布的一个标准差),且C_Date一般符合正态分布,C_Date作为已知年代的指令,可以放入模型中与碳十四年代结果进行比对。

在R_Date基础之上衍生出了R_Combine和R_Simulate。R_Combine是容纳R_Date的结构型指令,其主要目的是对R_Combine所涵盖的数据进行取平均值处理,这样可以有效减小结果年代的误差。R_Combine的使用前提是确定若干个碳十四数据是完全“共时”的。例如从一个马坑内不同马个体的骨骼样本测出来的碳十四数据,即可以用R_Combine处理,以获得马坑的误差范围更小的年代。而R_Simulate可以赋予三个值,分别是名称、设定日历年代和误差。R_Simulate的设计理念是给定一个已知的日历年代,系统会返回一个包含该日历年代的碳十四年代。R_Simulate的主要用途是模拟贝叶斯统计过程,即在一个贝叶斯统计模型中每隔一定时间间距加入一个R_Simulate,观察在一定模拟的日历年代范围内加入多少个数据可以得到最高的准确度。

OxCal校正软件中还有两个指令可以计算年代差值,分别是Difference和Interval。Difference是赋值型指令,有四个值,分别是名称、参数一、参数二和先验条件表达式。使用Difference时,首先列出两个R_Date,然后插入Difference,并将参数一和参数二分别填入两个R_Date的名称,运行后即可得到两个R_Date的年代差。Interval可以计算一个序列(Sequence)中的一个阶段(Phase)的起止年代差,做法是将Interval放入一个Phase指令内数据的最后,运行程序即可得到该Phase的起止年代差。

对于区域补偿值(Offset)[9]已知的情况,可以利用Delta_R来对校正曲线进行微调。Delta_R有三个值,分别是名称、补偿值和误差。比如牛津大学经过研究,得到了埃及尼罗河地区的区域补偿值为19±5年[10],因此在研究古埃及年代的时候,就可以插入Delta_R,并将补偿值设为19年,误差设为5年。如果知道某测年样品的补偿值,可以用Offset指令引入补偿值。具体做法为:点击欲加入补偿值的R_Date,插入Offset指令并输入补偿值和误差。举例来说,对于大量食用水生生物的人类个体骨骼,如果知道该个体的补偿值,即可通过Offset指令得到去除储存库效应影响后的较为准确的年代。

OxCal校正软件还可以在地图上显示年代数据,具体有三个指令,分别是经度(Longitude)、纬度(Latitude)和颜色(Color)。具体做法为:输入一个R_Date之后,如图一所示,可以点击R_Date,插入经、纬度和颜色,在程序运行完之后选择观看(View)里的地图上显示(Plot on map)可以生成地图,同时可以得到地图随年代进行扫描的动态图,如图二所示,圆圈代表碳十四数据,圆圈的大小代表年代概率。

图一// 年代经纬度和颜色指令举例

图二// 地图显示碳十四年代举例

此外,OxCal校正软件还有观察大批量碳十四数据分布情况的Sum和KDE_Model两个指令。Sum是结构型指令,可以在Sum内加入欲分析的碳十四数据R_Date,Sum得到的结果是碳十四数据校正后年代的概率密度的直接叠加。KDE_Model是核密度估计分析的指令,可以用于计算年代数据的分布曲线,操作方法与Sum类似。但需要注意的是,在数据量较少的情况下,KDE_Model会对结果的数据年代有所压缩,数据量越多,越能反映真实的年代分布情况[11],KDE_Model的应用实例如图三所示,该图显示了夏家店下层文化所有新测碳十四数据可以分为A、B、C三群,而这是单个测年数据所无法展示的年代分布规律[12]。

图三// 夏家店下层文化新测碳十四数据的KDE_Model指令结果

三、在考古年代学中的应用

为了便于理解OxCal校正软件的具体操作,本文使用河南登封王城岗龙山文化大城城墙的地层序列一、王城岗龙山文化大城城壕的地层序列三[13]以及牛津大学在研究古埃及年表时所使用的贝叶斯统计模型[14]为例,具体分析如何应用OxCal校正软件。对于王城岗龙山文化的例子,本文只试图说明报告中所用模型设计及其与考古学信息的联系,不拟重新设计模型。

序列(Sequence)和阶段(Phase)是理解如何在OxCal校正软件中建立贝叶斯统计模型的关键概念。对于序列和阶段的选择直接决定了贝叶斯统计模型的结果。

图四是依据王城岗龙山文化大城城墙的地层序列一在OxCal校正软件中所建立的贝叶斯统计模型。由于地层是有先后时间顺序的,所以首先设置了一个序列,命名为“王城岗地层序列一”。然后在这个序列下面依照地层的顺序放入数据,地层的序列为“W5T0670⑤→W5T0670Q1→W5T0670⑧→⑧层下灰坑”。需要注意的是在Boundary_Bound之后设置了一个阶段,命名为“⑧层下灰坑”,由于H72、H73、H74都位于⑧层下,三者无法区分早晚,所以放在一个阶段里面。需要注意的是,“阶段”里的数据是不分早晚的。由于不清楚夯土墙三个数据的先后顺序,所以设置为一个阶段。在这个序列中,每两个有相互叠压关系的单位之间设置一个边界(Boundary),这属于贝叶斯统计模型中的连续模型(Contiguous Model),由于位于模型中间的阶段或数据前后都有边界,为公平起见,模型的起始与结束都加边界,以对起始和结束的阶段或数据加以约束。

图四// 王城岗龙山文化大城城墙的地层序列的贝叶斯统计模型

图五是依据王城岗龙山文化大城城墙的地层序列三在OxCal校正软件中所建立的贝叶斯统计模型。由于地层单位存在早晚关系,首先建立一个序列并命名为“王城岗地层序列三”。图五所示模型与图四所示模型大体相似,可依据层位关系“W5T0672HG4⑥→W5T0672HG2①→W5T0672HG1→W5T0672H76”建立模型,每两个单位之间设置一个Boundary。唯一区别为龙山文化壕沟HG1的数据按照层位由早到晚被放入一个序列里,并被命名为“龙山壕沟”。因此,在使用序列的时候,需要确保同一个“序列”里的数据是有早晚关系的。除了注意阶段和序列的区别,还要注意贝叶斯统计模型里的层级关系。此外,这里的模型开头设置了校正曲线的选择,在此选择2004年国际校正曲线IntCal04,如果不设置的话软件默认使用最新的IntCal20校正曲线。

图五// 王城岗龙山文化大城城墙的地层序列三的贝叶斯统计模型

最后是用碳十四测年研究古埃及年表的例子,如下所示是其中的一个贝叶斯统计模型[15]。

选择(Options)下设置了碳十四数据的分辨率为5年。整个分析使用的区域补偿值为19±5年。该模型研究了公元前14世纪中晚期的阿马尔纳(Tell el-Amarna)遗址,并在一个序列下设置了该遗址最初使用的阶段、阿马尔纳到图坦卡门序列、遗址废弃后的希腊化时代的阶段。阿马尔纳到图坦卡门序列又包括由长年样品的阶段和短年样品的阶段组成的阿马尔纳期和图坦卡门期。“//R_Date”所标注的年代是经过前期异常值检验(Outlier Check)发现的异常值。阿马尔纳遗址集中使用的时间主要是公元前14世纪中晚期,经过贝叶斯统计模型的处理,可以发现统计处理后的年代与历史文献的记载即1350—1335 BC很好地吻合(图六)。该应用中使用了R_Combine来处理Amarna Akhenaten SL时期的短年样品。这样做虽然可以得到十分精准的年代结果,但在中国的考古实践中需注意样品的“同时性”是否可以保证,一般而言只有同一座墓葬中同时被埋葬的不同个体的测年结果,或灰坑在短时间内形成的堆积中的短年样品测年结果可以使用R_Combine以缩小测年误差。

图六// 公元前14世纪中晚期阿马尔纳遗址的贝叶斯统计结果(本图为Radiocarbon and the Chronologies of Ancient Egypt.Oxford:Oxbow Books,2013,P142程序代码运行结果)

四、结语

本文介绍了OxCal校正软件的若干常用基本指令和OxCal校正软件的应用实例,并主要以王城岗遗址龙山文化城墙和城壕为例展示了如何设计贝叶斯统计模型,以及如何选择序列或阶段。但是,田野考古发掘中遇到的年代学问题远远不是几个简单的模型可以解决。对OxCal校正软件中的关键概念即序列和阶段的如何使用直接决定了结果的成败,这涉及诸如碳十四测年样品来源问题、遗迹单位的生命史、测年样本与遗迹单位的年代关系等若干田野考古中的关键问题,因此寻找最契合考古发掘实际的贝叶斯统计模型也是测年学者的不懈追求。

猜你喜欢

贝叶斯校正指令
基于抽象汇编指令的恶意软件家族分类方法
再分析降水资料的适用性评估与偏差校正
《单一形状固定循环指令G90车外圆仿真》教案设计
新机研制中总装装配指令策划研究
炫酷ACR
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
贝叶斯网络概述
一种具有自动校正装置的陶瓷切边机
贝叶斯公式的应用和推广