null
实验经济学的仿真研究
实验经济学的仿真研究
华侨大学 经济与金融学院 实验经济学的形成与发展实验经济学的形成与发展(一)产生实验经济学的时代背景
早期的实验
1、1738年,伯努利提出的“彼得堡悖论”
2、1931年,Thurstone的实验
3、1952年,阿莱悖论(allais paradox)
对100人测试所设计的赌局:
赌局A:100%的机会得到100万元。
赌局B:10%的机会得到500万元,89%的机会得到100万元,1%的机会什么也得不到。
赌局C:11%的机会得到100万元,89%的机会什么也得不到。
赌局D:10%的机会得到500万元,90%的机会什么也得不到。 (二)实验
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
的发展(二)实验方法的发展张伯伦1948年的实验 :在一次研究班上,把学生们分为两组——买方与卖方。每位同学,或以现金,或以实物,参与模拟的“市场”竞争过程。
他的学生,弗农•史密斯在哈佛大学读研究生时从张伯伦的一次课堂实验,领悟了实验经济学的基本思想。史密斯将经济实验方法发展为如今经济学研究中不可或缺的方法体系。
史密斯在亚利桑那大学坚持进行实验经济学研究,终于建立了实验经济学的“亚利桑那学派”。 1962年史密斯将六年来的成果总结,发表了奠基之作《竞争市场行为的实验研究》。
Siegel和L. Fouraker的工作。他们的结论是:传统经济学无法对双头垄断情况达到的价格作出解释。Siegel和 Fouraker说:“我们根据研究的目的来观察和搜集数据,我们没有利用以前存在的数据。在双头垄断的特 定情况下搜集到的自然数据是根本不能用来检验模型的。” 1990年代 1990年代 1980代后,主流派经济学已事实上承认了实验经济学方法在经济学研究中的妥当性。
到了1990年代,实验经济学研究队伍迅速扩大,经济学家们意识到在经济学研究中,在实验方法具有其独特的优点 。
史密斯把亚利桑那大学建成“实验经济学的麦加” 。泽尔腾最初正是从史密斯那里借鉴实验方法的。
芝加哥大学和哈佛大学同时向Roth发出邀请
1998年《实验经济学》杂志创刊
“本刊对任何经济实验的研究以及与之相关的领域开放,其中包括会计学、金融学、政策科学以及心理研究等学科。” 实验经济学在世界范围内的传播 实验经济学在世界范围内的传播 早在1950年代德国学者就开始了实验经济学的研究。1994年诺贝尔经济学奖得主Reinhard Selten是最早的一批研究者之一
波恩大学的“实验经济学实验室”已是世界知名的实验室之一,他们的成果也为全世界同行所注目
约克大学Joth Hey教授(曾任英国“经济学杂志”主编),阿姆斯特丹大学的A.Schram教授(《实验经济学》杂志创刊时和佛吉尼亚大学的C. Holt同任主编),巴塞罗那大学的 Branolts教授等人所领导的实验经济学研究群体在欧州均负盛名
1998年9月召开了日本第一次实验经济学会议。在这次会议上宣告成立了日本实验经济学学会,并商定每年举行一次学术会议 实验经济学向仿真发展实验经济学向仿真发展
由于数学计算的局限,越来越多的仿真不断出现,系统仿真已经成为经济学发展的最具活力的方向。
系统仿真是在计算机上模拟,再现真实系统的运行过程,从而求解系统特性的一套方法。
多主体仿真是近年来出现的一种较新的仿真方法,利用分布式人工智能的最新研究成果,依靠计算机强大的计算能力,采用自下而上的思路,对复杂系统建立模型,其中微观个体可以具有丰富的属性和接近真实的决策逻辑和行为特征,通过个体之间以及个体与环境之间的相互作用,涌现出系统的宏观特性,从而在微观和宏观之间建立起联系的桥梁。
多主体仿真是研究经济问题的适宜方法,用这种方法研究经济问题已经形成了一个经济学分支:基于主体计算的经济学(ACE)。Aspen是美国研究的一个比较典型的多主体仿真模型。
仿真工具:Swarm,Netlogo,Matlab,Mason,Z-tree等。多主体仿真平台:NetLogo多主体仿真平台:NetLogo一、NetLogo简介
1.基本情况
NetLogo是一个多主体建模仿真集成环境
由美国西北大学连接学习与计算机建模中心(Center for Connected Learning and Computer-Based Modeling,CCL)开发。
2002年发布了1.0版本,最新4.4
多主体建模多个移动Agent分布在二维空间中,每个Agent自主行动,所有主体并行异步更新,整个系统随着时间推进而动态变化。一、主要功能一、主要功能多主体建模
多个移动Agent分布在二维空间中,每个Agent自主行动,所有主体并行异步更新,整个系统随着时间推进而动态变化。
运行控制
仿真输出
提供了多种手段实现仿真运行监视和结果输出
实验管理
BahaviorSpace,自动管理仿真运行,并
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
结果。
系统动力学仿真
参与式仿真: HubNet
模型库二、NetLogo仿真框架二、NetLogo仿真框架1. NetLogo软件
界面:分Interface/Information/Procedures三个TabPage。
命令行窗口 2.模型的抽象
总体:大量的可移动主体在二维空间中交互作用,随着时间推进,微观个体的属性不断发生变化,系统的宏观特征也因此而变化。
从三个方面理解:
主体;空间表达;仿真推进 。(1)主体(1)主体虚拟世界由主体构成,主体能够接受命令,进行活动,所有主体的行为并行发生。
NetLogo中共有四类主体(见下页图)
turtles(小海龟);patches(瓦片);observer(观察者);Links(联系) turtles指能够在世界中移动的主体。
世界是二维的,划分为由patches组成的网格,每个patch占据一个矩形小块;patch不能移动。
patch和turtle一样可以有自己的属性和行为
observer是一个全局主体,它观察着由turtles和patches构成的世界,能够执行指令获取世界全部或部分的状态,或实现对世界的控制。
Links是指turtles之间的关系。虚拟世界虚拟世界主体之间的关系(2)空间表达(2)空间表达每个patch有二维坐标(pxcor,pycor)坐标值为整数。
默认情况下,二维世界的水平、垂直坐标范围为(-16,16)
每个turtle也有坐标(xcor,ycor)
turtle坐标不必是整数,因此turtle不一定正好位于某个patch的中心。
一个patch上也可以同时有多个turtles。
实际上对turtle而言,NetLogo的空间是连续的。 (3)仿真推进(3)仿真推进仿真推进是通过不断重复执行某个例程实现的
模型中至少要有初始化例程和仿真执行例程
初始化例程实现对模型初始状态的设置,生成所需的turtles,设置其状态,以及其它工作。
仿真的执行通过例程go实现,在go例程中编写所需执行的各种指令,完成一个仿真步的工作。
需要在Interface页中建立一个按钮与go例程相联系,该按钮是一个永久(forever)按钮,点击后将不断重复执行go例程,直到遇到stop指令或用户再次点击该按钮则仿真终止。2.建模基本过程2.建模基本过程NetLogo模型包括可视化部件和例程两部分,二者具有紧密联系。
先在Interface中创建可视化控件,然后在Procedures中实现相应的代码,通过设置控件的属性将二者联系起来。Interface中主要有三类部件
运行控制、参数控制、仿真显示
Procedure中的例程分为两类:
命令(command)例程
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
(reporter)例程基本过程
初始化;确定活动顺序;定义主体属性与行为;仿真过程监视;图形输出;仿真参数控制。三、生态系统建模示例三、生态系统建模示例假设要模拟一个简单的生态系统,
该系统中有一种生物以青草为食,通过吃草获取能量、
该类生物经历成长、繁殖、死亡过程。 1. 初始化
创建生物群体,并将它们随机分布在空间中。
例程(demo1)2.仿真执行例程2.仿真执行例程实现turtle随机移动
实现go例程,与forever按钮联系
go 调用move-turtles例程
增加代码: (demo2)3.青草的模拟3.青草的模拟为模拟青草的存在设置patches为绿色
改写setup 例程,其中调用了两个新的例程setup-turtles和setup-patches,分别设置turtle和patch的初始状态
Demo3:4.主体行为:自定义turtle变量,修改go4.主体行为:自定义turtle变量,修改go现在增加一些行为,假设turtle以青草为食,通过吃草获得能量,移动时要消耗能量。
patch代表青草,绿色表示有,黑色表示无。
为实现这样的模型,需要重新定义turtles的属性和行为,然后重写go例程。
首先给turtle增加变量energy以存储当前能量值,
另外添加吃草获取能量的例程,
还要修改移动例程以反映能量消耗。定义eatgrass定义eatgrassturtle吃草获取能量
修改patch颜色表示草的有无修改原来的move-turtles例程,添加能量消耗指令。修改原来的move-turtles例程,添加能量消耗指令。假设turtle能量小于等于0就死亡,当能量大于50就繁殖;青草以一定的恢复率再生。由于主体行为发生了改变,需重新定义go例程, null5.监视仿真运行
监视器控件(monitor)
显示turtle数量,monitor表达式“count turtles”
主体标签
每个主体有一个变量lable绘制turtles数量和青草数量曲线绘制turtles数量和青草数量曲线添加Plot控件
创建两个画笔,分别指定颜色
添加do-plots例程
修改 setup和go例程6.图形输出在Interface中创建Plot控件,在Procedures中编制绘图例程。
绘图概念
每个Plot控件必须指定一个唯一名,在绘图时通过Plot名指定在哪个Plot上绘图
绘图时必须使用某个画笔,画笔默认是黑色实线,也可以创建自定义画笔 null7.仿真参数控制7.仿真参数控制参数控件
开关(switch)、滑动条(slider)、选择器(chooser)
这些控件都对应一个全局变量,在Procedures中将这些全局变量作为参数使用在程序中,就能实现仿真参数的控制。 例如:选择仿真时长用滑动条设置仿真时长,对应变量名terminate-time
添加全局变量ticks
修改go例程,
随着仿真修改ticks
当ticks=terminate-time时停止代码代码四、建模技术四、建模技术1. 访问邻域原语
Neighbors ,Moore邻域
neighbors4 ,von Neumann邻域
in-radius
at-points
演示2.主体交互2.主体交互T-P交互
turtle能够直接访问所在之处的patch,对该patch的属性进行读写
ask turtles [set pcolor blue]
turtle还可以利用空间相关操作获取所需的patches,然后对这些patches的属性进行读写
ask turtles [set pcolor-of patch-at 1 0 blue] patch可以通过一些操作获取相关的turtle
例如turtles-here就返回当前patch处的turtle集合。
也可以通过空间相关操作获取相应patch上的turtles。
例如”turtles at dx dy”返回与当前patch相对距离(dx,dy)处的turtles集合。 T-T交互T-T交互实现T-T交互的第一步是得到目标turtle的句柄,然后进行操作。
获取目标turtle句柄的常用方式有三种:随机选取、根据特定条件、空间相关。
随机选取是指在特定agent集合中以随机方式选取一个或n个agent。选取一个agent的原语为one-of
例如“set color-of one-of turtles red”在所有turtles中随机选择一个turtle,将其颜色设为红色。 null获得目标agent或agentset的第二种方式是根据特定条件。
方法是使用with原语,语法为agentset with [condition],返回满足条件condition的agent集合。
例如“turtles with [color = red]”返回红色的turtle集合; null获取目标agent或agent集合的第三种方式是运用空间相关操作。
比较直接的一种是获取当前patch上的turtle集合,原语有turtles-here和other-turtles-here,二者的区别仅在于是否包含调用者自身。
例如“ask turtle 0 [ask other-turtles-here [fd 10]]”表示ID=0的turtle令处于同一patch上的其他turtle前进10。
另一种方式是获取特定patch上的所有turtles。原语有-at dx dy,-on agentset等。
例如“turtles-at 1 0”返回右侧紧邻patch上的所有turtle,“turtles-on patch-ahead”返回前方patch上的所有turtle。 3.持久关系的建立3.持久关系的建立基本方法是在个体中相互保持对方的引用,这样可以随时对对方进行操作。
例如在个体之间建立简单的伙伴关系。
假设还没有找到伙伴的个体随机移动,直到与另一个尚没有伙伴的个体建立伙伴关系,一旦建立伙伴关系后将长期保持。
为实现这一模型,首先为turtle增加变量partner,用于保持对伙伴的引用,然后在移动时从相遇的一些无伙伴的turtle中选择一个,相互建立伙伴关系。 4.多类异质主体4.多类异质主体NetLogo可以定义不同类别(称为breeds)的turtles,各类turtle可以拥有特有的属性和例程。
定义关键词为breed,例如:
breed [wolves wolf]
breed [sheep a-sheep]
一旦定义了一类turtle,系统自动创建该类所有turtle的集合,一些相关的原语也马上可以使用了,
例如对于sheep类就有create-sheep、hatch-sheep、is-a-sheep?等。
也可以指定该类具有的变量,例如对于sheep,“sheep-own [grabbed?]”就为sheep增加了一个变量。 五、NetLogo高级特性五、NetLogo高级特性1.实验管理
实验管理工具BehaviorSpace,能够自动对参数空间进行扫描,也能进行较简单的统计计算,记录并输出仿真结果。 2.参与式仿真
参与式仿真工具HubNet,使得人们可以参与到仿真过程之中,每个参与者控制一个仿真主体,与计算机一起完成仿真实验。
进行参与式仿真的基本过程是:
首先在一台计算机上运行HubNet模型,作为服务器,建立HubNet活动,模型启动时指定HubNet会话(session)名作为该活动的标识。
会话启动后出现HubNet控制中心,管理者通过控制中心实现用户管理
HubNet服务器启动后,参与者可以在其它计算机上启动HubNet客户程序,用户选择要参与的会话进行登录。
登录后会出现客户端界面,用户通过控件实现对主体行为的控制。3. 使用扩展包3. 使用扩展包除了使用NetLogo内建的原语外,还可以在模型中引入扩展包,
使用扩展包中提供的命令和报告器就象使用内建原语一样。
NetLogo可以使用第三方扩展包,当然也可以根据需要自行编写扩展包实现特定功能 Matlab的Simulink仿真 Matlab的Simulink仿真 MATLAB:具有强大的数值计算能力,包含各种工具箱,其程序不能脱离MATLAB环境而运行,MATLAB是一种高级的科学
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
与计算软件。
Simulink:是MATLAB附带的基于模型化图形组态的动态仿真环境。
1990年,Math Works软件公司为Matlab提供了新的控制系统模型图输入与仿真工具, 1992年正式将该软件更名为Simulink。该工具很快就在控制
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。顾名思义,该软件的名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用Simulink提供的功能来对系统进行仿真和分析。