经济时间序列矢量图的数值提取方法
2014-07-08彭哲郎香香张婷婷
彭哲 郎香香 张婷婷
摘 要:图形处理软件CorelDRAW可以提取矢量图形的坐标,得到的坐标值经简单变化后,可以还原为初始数据。本文通过一则实例介绍了具体的操作方法,对需要提取精确数据的研究提供了有益的参考。
关键词:坐标提取;时间序列;CorelDRAW
0 引言
在进行宏观经济学研究时,通常需要参阅一些专业报告,摘取其中的时间序列数据进行统计分析。然而,不少专业报告只提供时间序列的走势图,并不报告全部的原始数据。这些图形所对应的数据无法通过其他公开渠道获得,给研究工作造成了一定困难。
为了尽量利用图片信息,提取出数据的数值,使用者可以借助一些专业软件。这类数据提取软件包括:engauge、g3data、imageJ、Plot Digitizer、windig和UN-SCAN-IT等。遗憾的是,这些软件提取的数据精度较差。其原因有二:首先,这类软件处理的是非矢量图(如bmp、jpg、tiff等格式),提取的数据精度受限于原始图像的分辨率。其次,在应用这类软件时,使用者需要人为设定坐标的起始点,有些软件甚至需要手工确定曲线上每个节点的位置(如g3data),从而造成了较大的误差。
以UN-SCAN-IT为例,该软件虽然支持自动提取曲线坐标,但设定自动提取时,使用者需要指定目标曲线的颜色。若曲线颜色深浅不一,则会造成提取失败。此外,曲线的粗细也会影响到使用者对节点的判断,进而影响数据的精度。最后,这些软件并不能保证数据的间隔(频率)与原始时间序列的固有间隔一致。以一个年度时间序列图为例,提取的数据本应是每年一个观察值。但是实际操作中,不仅两个年份之间会出现新的节点,原有的节点也可能因为精度欠佳而偏离对应的年份。
但是,如果报告文件中嵌入的图片是矢量图,且至少有2个节点的真实数值已知,那么从理论上讲,可以用矢量图形处理软件得到所有节点的精确坐标,进而还原出原始数据。这种数据提取方法的原理是:矢量图能够保持原始时间序列的拐折点(节点),放大或缩小图形也不会使图形失真。
由于经济类专业报告一般采用pdf格式,因此这里以一个pdf格式的报告为例,介绍Acrobat软件下矢量图形的提取。
1 矢量图的数值提取方法
本文的范例时间序列图取自戴德梁行(DTZ)2002年第三季度发布的报告[1]--《中国大陆房地产价格指数》(DTZ Index, Chinese Mainland)。它包含了北京市写字楼租金与售价指数的时间序列图。其中,写字楼租金曲线包含了1991第一季度至2002年第三季度的走势,写字楼售价曲线包含了1993年第三季度至2002年第三季度的走势,如图1所示。
但是,这份报告只列出了时间序列图所对应的部分数据——1997年之前的数据仅有各年份第四季度的记录。
(一)提取曲线
要提取数据,第一步需要将矢量曲线提取出来。这里选取的示例图例为"写字楼租金指数"(Office Rent Index)。
提取矢量图的具体步骤是:首先用Acrobat软件打开pdf文件,依次点击工具→高级编辑→TouchUp对象工具。将鼠标指向要提取的曲线。此时,屏幕会出现一个浅色的图框(如图1所示),目标曲线就包含在这个图框中。点击鼠标右键,选择"编辑对象",这样,折线就会被单独提取成一个pdf文件。接下来,将文件另存备用。
(二)记录坐标数值
为了提取曲线的坐标值,用CorelDRAW软件打开上一部提取的pdf文件。CoredDRAW软件会自动确定每个节点相对图形的位置(如图2所示)。
将鼠标指向第一个节点,以节点为中心,将图片放大到最大比例。这时,屏幕左下方就会出现该节点的坐标值,然后将之记录下来。这样,使用者就得到了曲线节点的精确位置。需要注意的是,CorelDRAW软件记录的数值有三位小数。重复上述过程,直到整条曲线的坐标都被记录下来。表1的第2列给出了"写字楼租金指数"的前12个记录(1991第一季度至1993第四季度)的坐标。
需要注意的是,本文的提取方法至少需要确定2个点的坐标:一个是起点,它的作用是确定图形其他节点的相对位置;另一个是参考点,参考点与起点之间的纵坐标距离,能够定出提取曲线(提取的数据)与原始曲线(原始数据)的比例关系。本例所用的文件显示:北京1991年第一季度的写字楼租金指数为54.6;该指数以1993年第三季度为基准,数值取为100。这些额外的信息记录在表1的第4列中。
(三) 简单变换
提取的各节点坐标是矢量图在CorelDRAW中的坐标,其数值与原始图形不同。要将提取的坐标值还原为原始数据,需要对提取后的数值进行再处理。因此,本文采用Excel进行简单的处理。
记提取的数据为Y■ (表1第2列),提取数据的参考点记为Yrf,即1991年第四季度的数值。由上一步可知,Yrf=86.298。两个已知的真实数据节点分别记为Y0rf和Y0b,其中, Y0rf=54.6是参考点,即1991年第四季度的数值;Y0b=100是基准点,即1993年第三季度的数值。
将提取的数据和实际值减去各自的参考值后,得到Y■-Y■ (第3列)和Y■■-Y■■ (第5列)。用去掉参考值后的真实值Y■■-Y■■ (第4列)除以去参考值的提取值Y■■-Y■■ (第3列),就得到了缩放比例,记为M。本例中,M= 45.4/9.125 = 4.975,如第6列所示。这样,就可以根据已知两点的实际值求出曲线中所有节点的实际值,即为
Y■■=Y■■+M×Y■-Y■
如第7列所示。当然,用这种方法提取的数据精度不可能高于原始数据。这是因为,在还原原始值的过程中需要计算比例值M,而M的计算用到了原始数据的值。
2 非时间序列图形的提取
需要说明的是,图1中时间序列的横轴坐标是季度,而需要的工作是按照时间顺序提取纵轴坐标的写字楼租金指数和价格指数。因此,使用者只需提取出曲线的纵坐标即可。
若图形是非时间序列图,使用者可能会关心横轴的内容。这时,使用者需要记录CorelDRAW软件给出的横、纵坐标值,再对变换后的节点数值分别计算缩放比例即可。
3 结论
矢量图可以精确地记录曲线的拐折点,因此在理论上,使用者可以从矢量图中精确提取图形的坐标,再通过简单变换将提取后的数据还原为原始数值。本文介绍了利用矢量作图软件CorelDRAW提取真实数据的操作步骤,为从半公开报告中提取数据提供了一种新的方法。有助于缓解研究者在搜集数据时所面临的数据可得性难题。
参考文献:
[1] DTZ (2003). DTZ Index of Chinese Mainland. http://esd.nankai.edu.cn/bbs/attachment.aspx?attachmentid=5922.