23(蒙特卡罗模拟)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专题5 蒙特卡罗模拟的有关问题
大家知道,只有当经典回归模型满足所有的假定条件时,参数的估计量才具有最佳线性无偏特性,即有限样本特性,同时也具有渐近特性。当假定条件不成立时(比如存在异方差、自相关等),所采用的广义最小二乘法,以及对联立方程模型的估计,动态分布滞后模型的估计,向量自回归模型的估计所得参数的估计量只具有渐近特性。也就是说,只有当样本容量相当大时,渐近特性才起作用。而当样本容量不是很大,甚至很小时,仍然不知道估计量的有限样本分布特征。
另外通过对非平稳过程的研究知单位根检验式和非平稳变量之间回归参数和t统计量不服从正态分布。他们都是渐近地服从Wiener过程函数的分布。参数估计量和统计量的有限样本特性不能用解析的方法求解。
对于上述两种情形,若要研究这些估计量和统计量的有限样本分布特征,通常采用两种方法。一种为数值计算法。也称为有限样本近似法(finite-sample approximation)。这种方法要用到许多数学知识,专业性很强,使没有受过专门训练的人员运用此方法受到限制。(2)蒙特卡罗模拟方法。又称随机模拟法。Boot strap
1.蒙特卡罗(Monte Carlo)模拟和自举(Boost trap)发展过程
这是一种通过设定随机过程(数据生成系统),反复生成时间序列,并计算参数估计量和统计量,进而研究其分布特征的方法。蒙特卡罗在欧洲的摩那哥,以著名赌城而得名。据说这个术语是Metropolis 在1949年提出的。若再晚些时候,蒙特卡罗模拟也许就称作Las Vegas(在美国的Nevada州,著名赌城)模拟方法了。
自举模拟与蒙特卡罗模拟既有联系,又不相同。自举(Boost trap,亦称靴襻)这个名词是Efron在1979年提出的。“自举”一词来源于儿童故事。指一个人落水时,试图用自提鞋扣儿的方法自救。20世纪80,90年代发展很快。自举,即采用从总体中反复抽取样本的方法计算参数估计量的值,置信区间或相应统计量的值并估计这些量的分布。这里介绍的远不是自举模拟的全貌,而是参数估计方面的应用。
因为这些方法的实现是以高容量和高速度的计算机为前提条件,所以只是在近年才得到广泛推广。
2.蒙特卡罗模拟和自举模拟原理
进行蒙特卡罗模拟和自举模拟首先要设定数据生成系统。而设定数据生成系统的关键是要产生大量的随机数。例如模拟样本为100的随机趋势过程的DF统计量的分布,若试验1万次,则需要生成200万个随机数。
计算机所生成的随机数并不是“纯随机数”,而是具有某种相同统计性质的随机数。计量经济学中蒙特卡罗模拟和自举模拟所用到的随机数一般是服从N(0,1)分布的随机数。计算机生成的随机数称作“伪随机数”(pseudo-random number)。生成的随机数的程序称作“伪随机数生成系统”。实际上计算机不可能生成纯随机数。
在进行蒙特卡罗模拟时一般要给定多种条件。例如样本容量要选择50,100,200等多种。有时模型形式也要选择多种。从而研究参数估计量和统计量在各种条件下的分布特征。当只需要这几个特定条件下的模拟结果时,把结果纪录下来就可以了。当需要很多条件下的模拟结果时,一般采用估计响应面函数(response surface function)的方法研究之。例如Dicky-Fuller的DF检验表中只给出了样本容量为25,50,100,250,500几个点的DF分布特征。显然对25至500间每个样本容量都进行DF分布模拟是不实际的,也是无必要的。
可以把上述几个条件下得到的DF 分布百分位数看作样本点,然后采用回归的方法从而得到每个样本容量所对应的DF 分布百分位数。这条回归直线称为响应面函数。麦金农的协整检验临界值表就是用这种方法得到的。
一个简单的估计回归参数估计量分布的蒙特卡罗模拟流程图见图1。
图1 蒙特卡罗模拟过程示意图
自举方法的原理是从独立同分布(IID )总体X 中确定T 个随机变量{x 1, x 2, …, x T }。则第一个自举样本是
X 1* = {x 11, x 12, …, x 1T }
现在随机得到N 个自举样本,
X 2* = {x 11, x 12, …, x 1T } X 3* = {x 11, x 12, …, x 1T } ...
X N * = {x N1, x N2, …, x N T } 假设关心的是统计量θˆ(X),那么用N 个自举样本可以得到一个容量为N 的θˆ(X)的估计值序列,
{θˆ(X 1*), θˆ(X 2*), …, θˆ(X N *)}
通过这个序列,可以研究θˆ(X)的分布特征,θˆ(X)的特征数,百分位数,θˆ(X)的平均数与真值θ 的差以及用θˆ(X)的第α/2、(1-α/2)百分位数构造θ 的(1-α)的置信区间。
一个简单的分析t(1
ˆβ)分布特征的自举模拟流程图见图2。
图2 自举模拟过程示意图
3.计算机高级语言(Mathematica 和EViews 介绍)
蒙特卡罗模拟和自举模拟的实现要通过计算机编程来实现。常用的软件有Mathematica ,Gauss ,Ox ,EViews 等。其原理基本一样。
下面主要介绍EViews 和Mathematica 。Mathematica 由Wolfram Research 公司1991年推出。是一种计算机高级语言。具有计算与画图等多种功能。若干例子见图。
图3 随机游走序列图4 带趋势项的随机游走序列
图5 三维图圆环图6 空间曲面
图7 投币1000次的概率值模拟图8 生长曲线
4.蒙特卡罗模拟框图与Mathematica、EViews程序。
(1)两个I(1)变量相关系数分布的蒙特卡罗模拟。
图11 蒙特卡罗模拟过程示意图Mathematica程序如下:
corre2[t_,f_]:=
Module[{x,y,xx,yy,Exx,Eyy,Sxxyy,Sxx,Syy,rr},
Table[
x=Table[Random[NormalDistribution[0,1]],{t}]; y=Table[Random[NormalDistribution[0,1]],{t}]; xx=FoldList[Plus,0,x];xx=Rest[xx];
yy=FoldList[Plus,0,y];yy=Rest[yy];
Exx=Apply[Plus,xx]/t;
Eyy=Apply[Plus,yy]/t;
Sxxyy=(xx-Exx).(yy-Eyy);
Sxx=Sqrt[(xx-Exx).(xx-Exx)];
Syy=Sqrt[(yy-Eyy).(yy-Eyy)];
rr=Sxxyy/(Sxx Syy), {f} ]
]
r2=corre2[100,10000];
histg4[r2,0,1,0.1]
图12 两个非相关I(1) 序列的相关系数的分布