施於人,楊 曉,楊慧潔
(重慶理工大學 工程訓練與經管實驗中心,重慶 400054)
2017年塞勒因其在行為經濟學領域的貢獻獲得諾貝爾經濟學獎,標志著開啟了經濟學研究全新的詮釋范式。行為經濟學和實驗經濟學是密切相關的經濟學分支。行為經濟學研究往往需要采用實驗方法研究經濟社會問題,實驗的設計、開展是研究者們在研究過程中的必要環節和手段。
過去的三四十年中,史密斯(Vernon Smith)、澤爾騰(Reinhard Selten)、普洛特(Charles Plott)等在經濟學實驗的開展、規范等領域做了大量的研究工作,其研究成果告訴人們采用實驗來研究問題所應遵循的基本原則、范式,應用方面的研究成果也不斷涌現。國內對于實驗方法在社會科學領域的應用也有討論和研究[1-3]。
實驗方法已經開始被廣泛應用于社會科學的研究,如會計[4]、市場營銷[5]、公共物品[6]等領域。大部分的研究,實驗的參與者都是來自高校的大學生,如連洪泉等[7-8]開展的公共品供給研究,汪思綺、陳穎等[9-10]進行的信任博弈研究。它們也常常被用于課堂教學,如H.Holm、P.Nystedt[11]在瑞典Linkoping大學進行的信任博弈實驗,劉文燕等[12]開展完全競爭市場和完全壟斷市場的實驗。但目前國內外研究者在開展研究、教學的過程中,所使用的實驗平臺或工具并不能完全滿足研究中“便捷、快速、高效”構建模型以及方便地滿足其他研究者復現、共享這些實驗的需求。
最早期開展的實驗研究,不論是張伯倫(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]。
云模式是目前許多軟件使用的新型開發、運行、使用模式,其應用領域日益廣泛,如政務[16]、教育[17]等。在云模式的含義主要在3個層面,即:
IaaS(基礎架構即服務)。任何一個系統使用都需要安裝到一定的硬件設備中,使用必須的操作系統、磁盤存儲和訪問帶寬。對Iaas服務模式也有要求[18],目前這部分服務,可通過付費給提供云服務的服務商,如阿里、華為等即可獲得。
PaaS(平臺即服務)。PaaS提供了基礎架構,開發者可以在這個基礎架構之上建設新的應用或者擴展已有的應用,同時卻不必購買開發質量控制或生產服務器。例如微軟的Azure(主要用途為計算服務、數據存儲服務)、Amazon、Google。PaaS的架構[19]、運作模式[20]也有討論,不過仍不是本文所關注的,工具開發者可以通過采用提供類似功能的開源軟件或付費獲得所需的功能服務。
SaaS(軟件即服務)。SaaS是一種通過互聯網絡提供軟件的模式,最終用戶無需購買軟件,而是直接使用提供商基于Web的軟件來完成所需的各項工作和功能。可以將它理解為一種軟件分布模式,在這種模式下,應用軟件安裝在云端,用戶可以通過網絡來使用這些軟件。在這種模式下,提供商在軟件開發過程中需采用符合這種運行模式的軟件架構和部署方式進行開發和部署。
BeTools工具屬于這一模式中的SaaS,工具的使用、運行,除了BeTools應該具備提供的各項功能外,還必須包括IaaS、PaaS服務商的選擇、維護等必須的基礎設施和架構。同時,SaaS方在提供最終應用時,為獲得完整的云運行模式,工具的開發設計需要采用符合“云”模式的架構和部署方式。
實驗/行為經濟學實驗是經濟學研究者(主持者)在挑選的受試者對象參與下,按照一定的實際規則并給以一定的物質報酬,以仿真方法創造與實際經濟相似的一種實驗環境,不斷改變實驗參數,對得到的實驗數據分析整理加工,用以檢驗已有的經濟理論及其前提假設或者發現新的理論,又或者為一些決策提供理論分析的研究性實驗。實驗均為回合制,在一個回合決策過程中,部分實驗會采用“實時”方式進行決策,基本流程見圖1。

圖1 實驗/行為經濟學實驗的基本流程
設定角色和實驗參數。用來規定實驗環境,即受試者在什么樣的環境下完成決策。角色是指參與實驗的受試者是具備相同的實驗屬性還是具備不同的實驗屬性。
受試者分組/匹配。主持者將所有參與實驗的受試者根據隨機或者固定匹配的方式分成若干組,分組和匹配方式會影響受試者的決策策略。
受試者決策。受試者收到主持者的開始實驗指令后,根據實驗規則進行實驗決策。
計算實驗結果。每輪實驗完成后,系統根據實驗參數、受試者決策行為等數據參照特定的模型算法完成計算。
根據角色和每個角色受試者決策次數、決策順序及決策影響關系,可以對實驗進行如下分類,見表1。其中:并發決策是指受試者在實驗過程中同時提交決策;順序決策是指受試者在實驗過程中先后提交決策;實時決策是指實驗過程中,只要當前輪次未結束,受試者可以隨時、反復、多次提交決策。

表1 實驗/行為經濟學實驗模型的分類
BeTools的設計理念是分層設計,服務是模塊化的。在Betools中,根據提供功能的公共、共用屬性,將功能細分為基礎層、平臺層和應用層?;A層提供基本功能需求支撐,如通信服務、邏輯服務、數據服務等功能需求;平臺層提供共用函數及公共服務;應用層給出模型開發功能,并將模型設計后部署、開展實驗的部分(在線實驗系統)獨立出來,一體化解決“實驗模型設計—部署—開展”所有環節,總體架構如圖2所示。

圖2 實驗開發工具(BeTools)系統架構
基礎層各類組件采用第三方公司提供,它們需要被合理地選型、部署。
MySQL數據庫提供數據存儲和管理服務。
RabbitMQ提供消息隊列服務,用于保證實驗過程少掉線、少斷線。此外,因為它具備集群方式部署模式,可以實現各微服務之間的消息異步,系統可以將實驗過程中數據的持久化存儲操作提取出來進行異步處理,這將大大節省服務器的請求響應時間,最終保證在相同數量的受試者參與實驗時能提供更高的數據交換穩定性。
通信技術SingalR集成了數種常見的消息傳輸方式,如long polling、WebScoket,并提供相應的Api供開發人員選擇如何調用,幫助其快速地實現客戶端與服務器端相互間的實時通信。它使得實驗進行中主持者和受試者可以及時交換信息,保障在線實驗的流暢性。
選擇Redis與KV存儲(RocksDB)相融合,以取代常用的關系型數據庫。由于每個實驗在參數數據、決策數據、結果數據等方面差異明顯,相比關系型數據庫,這樣組合可以提高Betools組件的靈活性以及提高實驗過程數據高頻讀寫的速度。
邏輯服務提供用戶自定義模型算法。采用以Python為腳本語言進行研發設計,為研究者提供“傻瓜式”用戶自定義計算邏輯入口。
平臺層及應用層功能則根據本文所描述的功能需求進行設計。
基于云模式的經濟學實驗開發工具的主要目的是滿足研究者能方便、快捷地構建實驗模型程序,快速部署開展實驗,收集實驗數據。完成的實驗模型能方便地被重復使用。在功能設計上,其具備如下特點:
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 主要實驗模型開發工具功能對比
在行為經濟學及實驗方法可能成為現有經濟學研究替代范式的今天,“趁手”的實驗模型設計、實驗工具是在這一研究領域快速發展的必需品。在BeTools的設計、開發與實現中堅持“云模式、模塊化、圖形化”的需求導向,通過“云模式”,解決了模型升級、部署、共享、復用的需求,通過“模塊化、圖形化”,降低使用者設計開發模型的計算機能力門檻,提高設計效率,能極大提高研究者開展實驗研究的工作成效。當然,在系統的易用性、可操作性方面,還有很多值得改進和提升的空間。