基于云模式的经济学实验模型开发工具设计实现

2019-02-06 10:57施於人杨慧洁
重庆理工大学学报(自然科学) 2019年12期
关键词:研究者经济学受试者

施於人,杨 晓,杨慧洁

(重庆理工大学 工程训练与经管实验中心,重庆 400054)

2017年塞勒因其在行为经济学领域的贡献获得诺贝尔经济学奖,标志着开启了经济学研究全新的诠释范式。行为经济学和实验经济学是密切相关的经济学分支。行为经济学研究往往需要采用实验方法研究经济社会问题,实验的设计、开展是研究者们在研究过程中的必要环节和手段。

过去的三四十年中,史密斯(Vernon Smith)、泽尔腾(Reinhard Selten)、普洛特(Charles Plott)等在经济学实验的开展、规范等领域做了大量的研究工作,其研究成果告诉人们采用实验来研究问题所应遵循的基本原则、范式,应用方面的研究成果也不断涌现。国内对于实验方法在社会科学领域的应用也有讨论和研究[1-3]。

实验方法已经开始被广泛应用于社会科学的研究,如会计[4]、市场营销[5]、公共物品[6]等领域。大部分的研究,实验的参与者都是来自高校的大学生,如连洪泉等[7-8]开展的公共品供给研究,汪思绮、陈颖等[9-10]进行的信任博弈研究。它们也常常被用于课堂教学,如H.Holm、P.Nystedt[11]在瑞典Linkoping大学进行的信任博弈实验,刘文燕等[12]开展完全竞争市场和完全垄断市场的实验。但目前国内外研究者在开展研究、教学的过程中,所使用的实验平台或工具并不能完全满足研究中“便捷、快速、高效”构建模型以及方便地满足其他研究者复现、共享这些实验的需求。

1 经济学实验模型设计工具发展现状

最早期开展的实验研究,不论是张伯伦(Chamberlin)的供给与需求实验,还是史密斯(Vernon Smith)提炼总结开展经济学实验应遵循的实验设计五大原则,都主要依赖于纸、笔、扑克牌等工具。

随着信息技术的不断发展和实验方法的改进,研究者们开始采用一些通用开发工具来设计所需要进行的实验,如C++、VB。采用通用开发平台自己编写代码,对于从事经济学实验研究的人来说,这并不是一个具备“比较优势”的选择,且通用开发平台不是专为经济学实验模型开发设计的,在实验设计方面效率不高。

Charles Plott等[13]采用Python、.net等开发工具,建设了可在线开展实验的网站,如Veconlab,网站提供了部分经典实验模型,可用于进行在线实验教学,但网站无法满足自定义实验的设计、开发,也无法进行自定义实验的调试、变更以及定制实验流程和参数。

当前最常用的开发工具是1998年由瑞士苏黎世大学Fischbacher等使用C++语言设计研发的z-Tree,如李宾等[14]在教学科研中使用的开发工具。此外,2017年MIT的Daniel Chen等开发了允许用户可以创建基于B/S模式的设计开发工具——oTree。它们在一定程度上帮助研究者解决了自主设计实验的问题,使得研究者能使用相对简单的程序语句,而不是完全由计算机专业人员才能使用的开发语言来完成一个实验模型的设计,并能相对容易地部署、运行,但仍然具有一定的局限性:

1)z-Tree、Otree虽然降低了研究者所需要掌握计算机开发能力的门槛,但对于完全不熟悉计算机开发、编程、调试的研究者而言,它还是相对复杂。z-Tree内嵌的编程语言为C++,oTree则为

Python。

2)z-Tree的主体结构仍基于20世纪90年代末期的开发工具所提供,其在运行过程控制、通讯稳定性、容错以及易用性等方面落后于目前开发工具、组件所能提供的功能。对zTree使用者而言,更无法解决源开发工具本身所导致的功能缺陷。oTree则需要研究者完成实验设计后独立安装部署,才能提供互联网模式的访问方式。

3)其他研究者如果想重复实验,同样需要掌握z-Tree、oTree的开发、调试技能,才能复现这些实验,来完成对研究成果的检验。

因此,开发一种基于云模式的,能为从事实验经济学、行为经济学的研究、教学人员提供一个可视化、易建模、能复用的实验建模开发工具(后文以“BeTools”指代)是一个现实的需求。从实际应用角度看,这类在线开发工具的实现也具有重要意义及可行性[15]。

2 开发工具的架构设计与实现

云模式是目前许多软件使用的新型开发、运行、使用模式,其应用领域日益广泛,如政务[16]、教育[17]等。在云模式的含义主要在3个层面,即:

IaaS(基础架构即服务)。任何一个系统使用都需要安装到一定的硬件设备中,使用必须的操作系统、磁盘存储和访问带宽。对Iaas服务模式也有要求[18],目前这部分服务,可通过付费给提供云服务的服务商,如阿里、华为等即可获得。

PaaS(平台即服务)。PaaS提供了基础架构,开发者可以在这个基础架构之上建设新的应用或者扩展已有的应用,同时却不必购买开发质量控制或生产服务器。例如微软的Azure(主要用途为计算服务、数据存储服务)、Amazon、Google。PaaS的架构[19]、运作模式[20]也有讨论,不过仍不是本文所关注的,工具开发者可以通过采用提供类似功能的开源软件或付费获得所需的功能服务。

SaaS(软件即服务)。SaaS是一种通过互联网络提供软件的模式,最终用户无需购买软件,而是直接使用提供商基于Web的软件来完成所需的各项工作和功能。可以将它理解为一种软件分布模式,在这种模式下,应用软件安装在云端,用户可以通过网络来使用这些软件。在这种模式下,提供商在软件开发过程中需采用符合这种运行模式的软件架构和部署方式进行开发和部署。

BeTools工具属于这一模式中的SaaS,工具的使用、运行,除了BeTools应该具备提供的各项功能外,还必须包括IaaS、PaaS服务商的选择、维护等必须的基础设施和架构。同时,SaaS方在提供最终应用时,为获得完整的云运行模式,工具的开发设计需要采用符合“云”模式的架构和部署方式。

2.1 实验/行为经济学实验的流程和类型分析

实验/行为经济学实验是经济学研究者(主持者)在挑选的受试者对象参与下,按照一定的实际规则并给以一定的物质报酬,以仿真方法创造与实际经济相似的一种实验环境,不断改变实验参数,对得到的实验数据分析整理加工,用以检验已有的经济理论及其前提假设或者发现新的理论,又或者为一些决策提供理论分析的研究性实验。实验均为回合制,在一个回合决策过程中,部分实验会采用“实时”方式进行决策,基本流程见图1。

图1 实验/行为经济学实验的基本流程

设定角色和实验参数。用来规定实验环境,即受试者在什么样的环境下完成决策。角色是指参与实验的受试者是具备相同的实验属性还是具备不同的实验属性。

受试者分组/匹配。主持者将所有参与实验的受试者根据随机或者固定匹配的方式分成若干组,分组和匹配方式会影响受试者的决策策略。

受试者决策。受试者收到主持者的开始实验指令后,根据实验规则进行实验决策。

计算实验结果。每轮实验完成后,系统根据实验参数、受试者决策行为等数据参照特定的模型算法完成计算。

根据角色和每个角色受试者决策次数、决策顺序及决策影响关系,可以对实验进行如下分类,见表1。其中:并发决策是指受试者在实验过程中同时提交决策;顺序决策是指受试者在实验过程中先后提交决策;实时决策是指实验过程中,只要当前轮次未结束,受试者可以随时、反复、多次提交决策。

表1 实验/行为经济学实验模型的分类

2.2 BeTools的架构设计

BeTools的设计理念是分层设计,服务是模块化的。在Betools中,根据提供功能的公共、共用属性,将功能细分为基础层、平台层和应用层。基础层提供基本功能需求支撑,如通信服务、逻辑服务、数据服务等功能需求;平台层提供共用函数及公共服务;应用层给出模型开发功能,并将模型设计后部署、开展实验的部分(在线实验系统)独立出来,一体化解决“实验模型设计—部署—开展”所有环节,总体架构如图2所示。

图2 实验开发工具(BeTools)系统架构

基础层各类组件采用第三方公司提供,它们需要被合理地选型、部署。

MySQL数据库提供数据存储和管理服务。

RabbitMQ提供消息队列服务,用于保证实验过程少掉线、少断线。此外,因为它具备集群方式部署模式,可以实现各微服务之间的消息异步,系统可以将实验过程中数据的持久化存储操作提取出来进行异步处理,这将大大节省服务器的请求响应时间,最终保证在相同数量的受试者参与实验时能提供更高的数据交换稳定性。

通信技术SingalR集成了数种常见的消息传输方式,如long polling、WebScoket,并提供相应的Api供开发人员选择如何调用,帮助其快速地实现客户端与服务器端相互间的实时通信。它使得实验进行中主持者和受试者可以及时交换信息,保障在线实验的流畅性。

选择Redis与KV存储(RocksDB)相融合,以取代常用的关系型数据库。由于每个实验在参数数据、决策数据、结果数据等方面差异明显,相比关系型数据库,这样组合可以提高Betools组件的灵活性以及提高实验过程数据高频读写的速度。

逻辑服务提供用户自定义模型算法。采用以Python为脚本语言进行研发设计,为研究者提供“傻瓜式”用户自定义计算逻辑入口。

平台层及应用层功能则根据本文所描述的功能需求进行设计。

2.3 功能设计与实现

基于云模式的经济学实验开发工具的主要目的是满足研究者能方便、快捷地构建实验模型程序,快速部署开展实验,收集实验数据。完成的实验模型能方便地被重复使用。在功能设计上,其具备如下特点:

1)模板化。提供“模板”方式构建实验模型。即根据实验角色、受试者决策特征,选择一类模板,可自动生成完成该类实验的整体流程和框架,实验设计者只需要对模板中各环节进行微调、修改,即可完成实验模型构建。如图3。

图3 BeTools提供的设计模板

2)界面设计“所见即所得”。摒弃界面设计采用数值定位、屏幕区块分隔的控制形式,在实验者、受试者使用的用户交互界面,采用“组件库”+“拖曳”的方式完成。

3)流程控制图形化。对于实验过程中受试者的决策行为、实验过程控制、结果计算采用流程的方式进行显示和控制,实验设计者通过定义流程节点、流程走向,而不是代码方式来控制实验流程,以解决不同实验流程的多样性及受试者决策行为多样性的实验设计需求。

4)计算逻辑图形化。实验过程中计算逻辑的实现,结合流程控制、图形控制的方式进行。从工具实现角度看,计算逻辑的实现形式包括编程语言、伪代码、自然语言、流程图等。编程语言计算机可以识别,但是对于最终用户而言难度大,表述困难。伪代码和自然语言容易解读,但是难以形成规范化表述,容易形成歧义,无法满足算法定义的要求。流程图是以图形的形式表述算法,一方面清晰明了容易解读,另一方面在实现上容易规范,且实验开发工具本身需要提供流程定义和控制,因此计算逻辑部分可借助流程图的形式来完成。在控制过程中,将数据、运算符号、控制语句等以标签的形式进行显示,采用标签形式代表程序中一个语法或控制。用户通过标签组合形成计算逻辑的算法流程,各类变量以“标签”的方式提供使用,计算过程通过“拖曳”计算符、变量标签、流程控制标签,组合成“计算式”,完成计算逻辑。系统根据标签将计算逻辑转换成对应的编程语言控制,形成计算机可以识别的算法。

5)云模式。提供实验数据的Excel格式导出以及在线发布、使用。使得研究者设计的实验模型可以一键式在线“共享”模型和实验过程数据,以便于其他研究者复用、验证。

同现有的实验模型开发工具相比,BeTools具备如下功能特点,BeTools在α测试阶段的使用情况表明:在模型设计及实验开展效率上,较zTree、oTree有明显提高,在模型、实验数据的重复使用和共享方面,优势明显:

1)开发工具的学习掌握。时间从zTree、oTree需要的约2~4周缩减到1~3 d(有一定编程基础),或从1~3个月缩减到3~5 d(无编程基础)。

2)模型设计。周期从zTree、oTree所需的2~3周缩减到1~3 d。

3)模型部署、开展实验。周期从zTree、oTree所需的2~3 d变为设计完成即可实验。

4)模型复用及实验共享。从每次复用均需在新环境中重新调试,变为一键设定即可生效。

主要实验模型开发工具功能对比见表2。

表2 主要实验模型开发工具功能对比

3 结束语

在行为经济学及实验方法可能成为现有经济学研究替代范式的今天,“趁手”的实验模型设计、实验工具是在这一研究领域快速发展的必需品。在BeTools的设计、开发与实现中坚持“云模式、模块化、图形化”的需求导向,通过“云模式”,解决了模型升级、部署、共享、复用的需求,通过“模块化、图形化”,降低使用者设计开发模型的计算机能力门槛,提高设计效率,能极大提高研究者开展实验研究的工作成效。当然,在系统的易用性、可操作性方面,还有很多值得改进和提升的空间。

猜你喜欢
研究者经济学受试者
涉及人的生物医学研究应遵循的伦理原则
涉及人的生物医学研究应遵循的伦理原则
移民与健康经济学
高等教育中的学生成为研究者及其启示
简明经济学
涉及人的生物医学研究应遵循的伦理原则
送餐的巫术经济学 精读
研究者称,经CRISPR技术编辑过的双胞胎已出生。科学将如何回应?
涉及人的生物医学研究应遵循的伦理原则
研究者调查数据统计