BP神经网络在二手船评估中的应用

张树帆张弦

    要:

随着世界经济的发展,货运量的增多,各航运公司对运力的需求也日益增加。而直接购置二手船与订购新造船相比,具有短、平、快的优点,所以很多航运公司更倾向于直接购置二手船,这也促进了二手船市场的发展。二手船的交易往往涉及到船的评估,本文研究了在评估过程中引入BP神经网络,通过MATLAB实现对二手船整体价值的估算。运用神经网络强大的运算能力,使用clarkson上的实际历史成交数据和训练模型,从而达到对被评估船价格的模拟。

一、BP神经网络及数据选择

B P网络能学习和存储大量的输入输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。B P神经网络模型拓扑结构包括输入层(i n p u t)、隐层(hidden layer)和输出层(output layer)

就好比一个有记忆能力的黑箱”,我们通过已有的输入输出数据去训练黑箱”,找到输入输出间的相关关系并用黑箱记录下来。再用这个训练好的黑箱去模拟未知的输出值。

本文主要用到MATLAB中的神经网络工具箱。通过MATLAB编程,调用神经网络工具箱,实现模型的搭建。

本文从权威国际船舶期刊clarkson周报上提取了近五年(2011~2015)每周的交易数据(clarkson有记录的交易),并分交易年度、交易船型做了分类。每一条交易信息都记录了交易船舶的船型(Vessel Type)、船名(Vessel name)、载重吨(DWT)、建造年份(Blt.)、造船厂(Yard)、成交时间(Date)、成交价(US $m.)、买方(Buyers)、船龄(成交年减建造年),并记录了交易披露当期所在周的对应船舶新造船价格(Newbuliding Prices)以及一年期期租费率(Timecharter Rates)还有每一条交易信息出处的期刊号方便查证。

对于数据的选取,前期做了大量测试,包括各种船型,各个交易时间段的测试。不管选取的数据是哪些,我们所要构建的模型的主体框架是明确的。即一个y=f(X1.X2…Xn)式的多输入单输出函数,只是这个函数对应关系比较复杂,正是我们要找的黑箱子”,Xn表示第n个输入变量,y则表示模拟船价。现仅以2014Bulk船型的交易为例说明。

首先,对于2014Bulk船型的所有交易信息,我们剔除掉同一条船多次交易的数据(因为这些重复数据是没必要的,选取一条保留即可),剔除掉同一相似船但成交价差异很大的数据(这相当于输入x后输出了两个y),剔除掉跳跃性很大的数据(如相似状况的船成交价都为1,但这条船成交价为100),最终保留267组数据。随机选取其中228组数据做训练,剩下39组数据做测试。

对于Xn的选取,除了船龄和载重吨这两个必有的重要变量外,本文作者尝试加入了各种变量期望能得到更加精确的结果,包括BDI指数,经济状况指数等等,但多次试验所得结果远不如只用两变量理想,故在宏观经济环境和船舶市场都不存在较大波动的区间范围,可考虑选择两变量输入来模拟船价。最终,本文作者选取一年之内的交易信息作为时间区段(因时间跨度如果太长,将难以反映船价的波动)。输入变量仅选取船龄(成交年减建造年)、载重吨(DWT)这两个,采用单隐层三层结构,隐层节点数为10,神经网络结构如图1所示。

各层之间的连接函数为tansig,训练步数为1000,学习率0.1,训练目标0.00001ab分别为输入的船龄和载重吨,p为输出的船价。

 

1 模型结构   下载原图

二、建立模型及测试结果

MATLAB编程构建模型,以选取的228组训练数据训练模型,训练结果如图2~3所示。

 

  下载原图

将剩下的39组数据作为测试,用训练好的模型模拟船价,再与实际成交价对比,比较误差大小,随机选取其中一部分结果如图4所示。

第一列为模型模拟价,第二列为实际成交价,第三列为误差值。标红的表示该组数据模拟值和实际值误差较大。可以看到,模型模拟结果与实际成交价误差基本在20%以内,少部分数据误差甚至在2%以内,但也存在个别结果误差较大。我们知道船舶的交易存在一定的特殊性,不可避免的有些船舶的交易因买卖双方谈判能力、船舶本身状况、船舶制造商等而存在较大的偏离。我们能获取的交易信息有限,再加上很多数据是无法量化的,所以训练数据和测试数据的选取并不能完全排除掉这些特殊交易。因此,存在个别数据的较大误差是难以避免的。对于普遍性的交易,模型可用于评估的初步价值估算,以及最终评估结果的验证。如果评估结果与模型模拟值存在较大差别,那么就需要找出交易的特殊性给予说明。

 

  下载原图

三、模型进阶

当船价在一定时间内存在较大波动,而可选区间可用数据又太少时,就需要给模型加入变量,使之既能反映宏观的船价波动趋势,又能反映微观的每一艘具体交易船的交易价格(要与该艘船成交价有很强相关性)。在引入了多个变量进行试验后,最终发现已获取的数据中只有新造船价格(Newbuliding Prices)这一变量能满足上述要求。

在这里特别说明下关于添加变量,由于我们的模型是要模拟每一条具体的交易船的成交价,所以所选的每一个变量必须与该条交易紧密关联,如果添加的变量哪怕只有一个变量是只反映宏观经济因素而没有反映微观成交因素的话,模型模拟效果就会变得粗糙而无法精确的模拟出船价,最终的结果会造成很大误差。因此在变量的选取上,微观关联性是必须的,宏观相关性可有可无。当加入的变量越多时,模型失真的可能性也越大,所以并不是变量越多模型越精确,存在一个最优变量数。

   

  下载原图

最终,本文作者选取了三变量(船龄、载重吨、新造船价格)来延展模型适用区间并提高精度。现仍以Bulk船型为例来说明。

选择近三年(2013~2015)所有Bulk船型交易数据,仍按前述Bulk船型的要求筛掉不合理数据,最终保留343组合理数据,随机选择其中300组数据做训练,剩下43组数据做测试。

而关于第三个变量新造船价格(Ne wbul idi ng Prices),数据来源于每一艘船交易当周clarkson周报上新造船价格板块,该板块将每一种船型按载重吨范围分档,每一船型的每档都会有一个当周的新造船平均价格。对于每一艘交易船,我们通过数据来源的周报上找到对应船型对应载重吨当周新造船价格来赋值第三个变量。

由于采用了三输入一输出结构,模型变得更加复杂。在经过了反复试验后,本文作者测试出相对最优结构,采用了双隐层共四层结构,第一隐层有10个节点,第二隐层有30个节点,训练步数定为1000,学习率0.01,训练目标为0.000001,模型结构如图5所示。

其中,abc分别代表输入的船龄、载重吨、新造船价格,p代表模型输出的船价。

 

  下载原图

300组数据训练模型部分结果如图6~9所示。

用剩下43组数据做测试,结果如图10

第一列为实际成交价,第二列为模型模拟值,第三列为误差百分比。可以看到,模拟结果与实际值相比已经没有大的跳跃点了,且误差基本控制在20%以内。最关键在于,此模型已经可以跨时间区间使用,不再仅限于短时间适用。

   

 

  下载原图

 

  下载原图

四、小结

由前述试验,可以得出船价模拟的两个方法:

1.当短期内(宏观经济环境和船价市场波动能忽略不计的区间)可获取的交易数据足够达到训练所需最少数据组数时,可以采用两变量(船龄、载重吨)输入来模拟船价,数据的组合训练能使模型模拟值和实际值误差基本控制在20%以内,存在极少数跳跃点。

 

  下载原图

 

  下载原图

 

10   下载原图

2. 当短期内不能获取足够多的数据,而船价市场或者宏观经济存在较大波动时,可以采用三变量(船龄、载重吨、新造船价格)输入来模拟船价,数据的组合能使模拟值和实际值误差基本控制在20%以内,而且适用范围不受时间和船舶市场波动限制。

以上两种方法结合使用,可使船模型运用于实际评估中的不同情况。当然,船舶市场价格变动就像股票价格的随机波动一样,是不可完全预测的,模型模拟也因实际情况的差异,误差是不可避免的。

我们看到,模型的结果还存在着一定的误差,未来希望能找到方法使模型更加精确的模拟船价,缩小误差。数据的选取目前也还难以剔除掉部分特殊交易,下一步希望能找到识别特殊交易的方法,使训练数据更加适用。

除此之外,BP神经网络这一工具也可以更多的运用到市场法评估中去,特别是需要批量估值的评估实践中可以使工作效率大幅提升。只要从市场上获取到与资产价值相关性较强的多组数据,通过BP神经网络训练模型找出相关关系,就可以用于模拟资产价值评估。

 

 

我们的服务

首页    亦博微讯    筹划解读    评估方法    BP神经网络在二手船评估中的应用