nullnull第八章 对数极大似然估计 极大似然估计法(maximum likelihood, ML),是不同于最小二乘法的另一种参数估计方法,是从极大似然原理发展起来的其他估计方法的基础。虽然其应用没有最小二乘法普遍,但在计量经济学理论上占据很重要的地位,因为极大似然原理比最小二乘原理更本质地揭示了通过样本估计母体参数的内在机理,计量经济学理论的发展更多的是以极大似然估计原理为基础的,对于一些特殊的计量经济学模型,只有极大似然方法才是很成功的估计方法。 null EViews包含了一些常用方法,如最小二乘法、非线性最小二乘法、加权最小二乘法、TSLS、GMM、ARIMA、ARCH、GARCH等方法,这些方法可以解决可能遇到的大多数估计问题。但是,我们在研究中也可能会碰到一些不在上述之列的特殊的模型,这些模型可能是现存方法的一个扩展,也可能是一类全新的问题。
为了能解决这些特殊的问题,EViews提供了对数极大似然估计对象这一工具来估计各种不同类型的模型。对数极大似然估计对象提供了一个一般的,开放的工具,可以通过这个工具极大化相关参数的似然函数对一大类模型进行估计。 null 使用对数极大似然估计对象估计时,我们用EViews的序列生成器,将样本中各个观测值的对数似然贡献描述为一个未知参数的函数。可以给出似然函数中一个或多个参数的解析微分,也可以让EViews自动计算数值微分。EViews将寻找使得指定的似然函数最大化的参数值,并给出这些参数估计的估计
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
差。
在本章,我们将详细论述对数极大似然估计对象,说明其一般特征。并给出了一些可以使用该方法的具体的例子。
null§8.1 对数极大似然估计的基本原理 §8.1.1 极大似然估计的基本原理
设总体的概率密度函数为P,其类型是已知的,但含有未知参数(向量)。我们的目的就是依据从该总体抽得的随机样本 y1, y2, … , yT ,寻求对 的估计。
观测值 y1, y2, … , yT 的联合密度函数被给定为
(8.1.1)
其中:y = ( y1, y2, … , yT )。将这一联合密度函数视为参数 的函数,称为样本的似然函数(likelihood function)。null 极大似然原理就是寻求参数的估计值 ,使得所给样本值的概率密度(即似然函数)的值在这个参数值之下,达到最大。在当前的情形下,就是寻求 的估计值,使得似然函数 L(y ; ) 相对于给定的观测值 y1, y2, … , yT 而言达到最大值, 就被称为极大似然估计量。
null 在 L(y ; ) 关于i(i =1, 2, …, n,n是未知参数的个数)的偏导数存在时,要使 L(y ; ) 取最大值, 必须满足
, i =1, 2, …, n (8.1.2)
由上式可解得 n1 向量 的极大似然估计值 ,而式(8.1.2)也被称为似然函数。 null 因为 L(y ; ) 与 ln[L(y ; ))] 在同一点处取极值,所以也可以由
, i =1, 2, …, n (8.1.3)
求得,因为对数可将乘积变成求和,所以,式(8.1.3)往往比直接使用式(8.1.2)来得方便。式(8.1.3)也被称为对数似然函数。 null 考虑多元线性回归模型的一般形式
, t =1, 2 , … , T (8.1.4)
其中 k 是解释变量个数,T 是观测值个数,随机扰动项
~ ,
那么 yt 服从如下的正态分布:
~
其中
(8.1.5) null y 的随机抽取的 T 个样本观测值的联合概率函数为
(8.1.6)
这就是变量y的似然函数,未知参数向量 ={1, 2,… k, 2}。
对似然函数求极大值和对数似然函数求极大值是等价
的,式(8.1.6)的对数似然函数形式为:
(8.1.7) null 注意,可以将对数似然函数写成 t 时刻所有观测值的对数似然贡献和的形式,
(8.1.8)
这里对数似然的单个贡献(用小写字母表示)由下面的式子给出:
(8.1.9) null 式(8.1.7)也可用标准正态分布的密度函数 表示
(8.1.10)
式中标准正态分布的对数似然函数 为
(8.1.11)
这里对数似然函数每个观测值的贡献式(8.1.9)又可以由下面的式子给出:
(8.1.12)
null §8.1.2 EViews极大似然对象概述
用对数极大似然估计来估计一个模型,主要的工作是建立用来求解似然函数的说明文本。用EViews指定对数极大似然函数的说明是很容易的,因为似然函数的说明只是一系列对序列的赋值语句,这些赋值语句在极大化的过程中被反复的计算。我们所要做的只是写下一组语句,在计算时,这些语句将描述一个包含每个观测值对似然函数贡献的序列。null 注意到,我们能将对数似然函数写成所有观测值 t 的对数似然贡献和的形式,
这里单个贡献由下面的式子给出:
null 以只含一个解释变量的一元线性回归方程为例
, t =1, 2 , … , T
假定知道模型参数的真实值,并且想用EViews产生一个包含每个观测值的贡献的序列。
null 未知参数向量 ={0, 1, 2}, 可以将参数初值赋给系数向量的c(1)到c(3)元素,然后把下面的赋值语句作为EViews的命令或程序来执行。
Series res = y-c(1)-c(2)*x
Series var = c(3)
Series logL1 = -log(2*3.14159*var)/2- (res^2/var)/2
前面两行语句描述了用来存储计算时的中间结果的序列。第一个语句创建了残差序列:res,而第二个语句创建了方差序列:var。而序列logL1包含了每个观测值的对数似然贡献的集合。null 下面考虑2个变量的例子:
这里,y, x, w 是观测序列,而 ={1, 2, 3, 2}是模型的参数。有T个观测值的样本的对数似然函数可以写成:
这里, 是标准正态分布的密度函数。null 将这一例子的对数极大似然函数过程写成下面的赋值语句:
Series res=y-c(1)-c(2)*x-c(3)*w
Series var=c(4)
Series logL1=log(@dnorm(res/@sqrt(var)))-log(var)/2
前面两行语句创建了残差序列res和方差序列var,参数c(1), c(2), c(3)代表了回归系数1, 2, 3,c(4)代表了 2,序列logL1包含了每个观测值的对数似然贡献的集合。 null 下面考虑稍复杂的例子,假设数据是由条件异方差回归模型生成的:
这里,x, y, w 是观测序列,而 ={1, 2, 3, 2, }是模型的参数。有T个观测值的样本的对数似然函数可以写成:
这里, 是标准正态分布的密度函数。null 将这一例子的对数极大似然函数过程写成下面的赋值语句:
Series res=y-c(1)-c(2)*x-c(3)*w
Series var=c(4)*w^c(5)
Series logL1=log(@dnorm(res/@sqrt(var)))-log(var)/2
前面两行语句创建了残差序列res和方差序列var,参数c(1), c(2), c(3)代表回归系数1, 2, 3,c(4)代表 2,c(5)代表 ,序列logL1包含了每个观测值的对数似然贡献的集合。 null 现在假定不知道模型参数的真实值,而想使用数据来估计它。参数的极大似然估计被定义为:使得样本中所有随机抽取的一组观测值的联合概率密度,即似然函数取最大值的那组参数值。
而对数极大似然方法使得寻找这些极大似然估计变得容易了。只需创建一个对数似然对象,把上面的赋值语句输入到logL的说明窗口,然后让EViews来估计这个模型。
null 在输入赋值语句时,只需对上面的文本做两处微小的改动就可以了。首先,把每行开头的关键字series删掉(因为似然说明暗含了假定序列是当前的)。第二,必须在说明中加入额外的一行(关键字@logL为包含似然贡献的序列命名)。
这样,要在logL说明窗口输入下面的内容:
@logL logl
res = y-c(1)-c(2)*x-c(3)*w
var = c(4)*w^c(5)
logl = log(@dnorm(res/@sqrt(var)))-log(var)/2
对数似然函数的第一行,@logL logl,告诉EViews用logl序列来存储似然贡献。余下的行定义了中间结果的计算和实际的似然贡献的计算。null 当用EViews估计模型参数时,它将对不同参数值重复执行说明中的赋值语句,使用迭代法来求使得对数似然贡献最大的一组参数值。当EViews再不能提高全部似然贡献时,它将停止迭代并在估计输出中报告最终参数值和估计标准差。
本章下面的部分将更详细地讨论使用似然方法说明,估计和检验时要遵循的规则。 null 要创建一个似然对象,选择Objects/New Object.../ LogL或者在命令窗口输入“logL”。似然窗口将打开一个空白说明视图。说明视图是一个文本窗口,在这个窗口里可以输入描述统计模型的说明语句,还可以设置控制估计程序各个方面的选项。
§8.1.3 似然说明null 1.似然的定义
正如上节中所描述的那样,似然说明的主线是一系列赋值语句,在计算时,这些赋值语句将产生一个包含样本中每个观测值的对数似然贡献的序列。赋值语句的多少可以自己决定。 null 每个似然说明都必须包含一个控制语句,该语句命名了保存似然贡献的序列。语句的格式为:
@logL series_name
这里@logL是关键字,series_name是保存似然贡献的序列的名字,可以写在似然说明的任何位置。
例如,对于一元线性回归方程的似然说明来说,第一行:@logL logl是似然贡献的序列的说明。当对模型进行计算时,EViews将在现有参数值下执行每个赋值语句,并将结果保存到指定名称的序列里。如果序列不存在,系统将自动创建,如果已经存在,系统将使用现有的序列,并覆盖序列原来的内容。 null 例8.1 一元线性回归方程的极大似然估计
以例3.1的消费函数作为例子,
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
普通回归方程的极大似然估计方法。消费函数的被解释变量cs为实际居民消费,解释变量为实际可支配收入inc,变量均为剔除了价格因素的实际年度数据,样本区间为1978~2006年。那么凯恩斯消费函数的方程形式就可以写成:
(8.2.5)
其中:ut服从标准正态分布,cs = CS/CPI,inc = YD / CPI , CPI 代表1978年为1的居民消费价格指数, 代表自发消费, 代表边际消费倾向,则参数向量为=(,,u2)',观测值个数T =29。 null 我们可以写出这个方程的对数极大似然函数
(8.2.6)
(8.2.6)式中zt = (cst- -×inct) / u。 null 利用极大似然方法求解,考虑下面的说明:
EViews用观测值顺序来计算模型,先用第一个观测值来计算所有的赋值语句,接下来是用第二个观测值来计算所有的赋值语句,如此往复,直到估计样本中所有观测值都使用过。本例将方差作为未知参数c(3),一起求解。 null 如果想在估计完成后删除说明中的一个或多个序列,可以使用@temp语句:
@temp series_name1 sereis_name2 ...
这个语句告诉EViews在对说明的计算完成后,删除列表中的序列。如果在logL中创建了许多中间结果,又不愿意工作文件因包含这些结果的序列而弄得混乱的话,删除这些序列将是很有用的。例如,例8.1中的语句
@temp res var logl
就是命令EViews在估计结束后,删除估计产生的中间序列res、var和logl。
这里需要强调一点,在似然说明的文本中可以加入说明语句,说明语句的前面加上撇号“”,则这个语句将不被执行。null 2.参数名
在上面的例子中,我们使用了系数c(1) 到c(5) 作为未知参数的名称。更一般的,出现在说明中一个已命名的系数向量中的每一个元素都将被视为待估参数。例如创建2个命名的系数向量:
beta(2) sigma(1)
于是可以写出下面的似然说明:
@logL logL1
res=cs- beta(1)- beta(2)*inc
var=sigma(1)
logl1=log(@dnorm(res/@sqrt(var)))-log(var)/2null 由于说明中的已命名的系数向量的所有元素都将被视为待估参数,必须确定所有的系数确实影响了一个或多个似然贡献的值。如果一个参数对似然没有影响,那么在试图进行参数估计时,将遇到一个奇异错误。
应该注意到除了系数元素外所有的对象在估计过程中都将被视为固定的,不可改变的。例如,假定omega是工作文件中一个已命名的标量(scalar omega),如果将子表达式var定义如下:
var = omega
EViews将不会估计omega 。omega的值将被固定在估计的开始值上。 null 3.估计的顺序
logL说明包含了一个或多个能够产生包含似然贡献的序列的赋值语句。在执行这些赋值语句的时候,EViews总是从顶部到底部执行,所以后面计算要用到的表达式应放在前面。
EViews对整个样本重复地计算每个表达式。EViews对模型进行重复计算时采用方程顺序和样本观测值顺序两种不同方式,这样就必须指定采用那种方式,即观测值和方程的执行顺序。 null (1)观测值顺序( @byobs )
默认情形下,EViews用观测值顺序来计算模型,此种方式是先用第一个观测值来计算所有的赋值语句,接下来是用第二个观测值来计算所有的赋值语句,如此往复,直到估计样本中所有观测值都使用过。这是用观测值顺序来计算递归模型的正确顺序,递归模型中每一个观测值的似然贡献依赖于前面的观测值,例如AR模型或ARCH模型。null (2)方程顺序( @byeqn )
可以改变计算的顺序,这样EViews就可以用方程顺序来计算模型,先用所有的观测值来计算第一个赋值语句,然后用所有的观测值计算第二个赋值语句,如此往复,对说明中每一个赋值语句都用同样方式进行计算。这是用中间序列的总量统计作为后面计算的输入的模型的正确顺序。
可以通过在说明中加入一条语句来声明所选择的计算方法。要用方程顺序来计算,仅加一行关键字“@byeqn”。要用样本顺序来计算,可以用关键字“@byobs”。如果没有给出关键字,那么系统默认为“@byobs”。null 前面例8.1是观测值顺序, 进行极大似然求解之后,得到 和 的估计值:
c(3)是方差的估计结果。这个结果与最小二乘法得到的结果完全相同。 null 作为@byeqn语句的一个例子,考虑下面的说明:
进行极大似然求解之后,得到 和 的估计值:
null例8.4 具有异方差的一元线性回归模型的极大似然估计 根据第4章例4.1,各省人均家庭交通及通讯支出(cum)和可支配收入(in)的关系,样本个数为30,考虑如下具有异方差性的方程:
(8.2.40)
为消除方程中的异方差,利用加权最小二乘法求解,设
êt = cumt – 0 – 1 int ,w=1/|ê| ,可以写出式(8.2.40)的对数极大似然函数
(8.2.41)
它的未知参数向量为 = (0, 1)。 null 也可用同样的处理方法利用极大似然方法求解,作为@byeqn语句的一个例子,考虑下面的说明:
这个说明通过利用残差res建立加权向量w=1/abs(res)来完成一个加权最小二乘回归。res的赋值语句计算了在每次计算时的残差,而这被用做构造权重序列。@byeqn语句指示EViews在一个给定的迭代过程中,必须先算出所有的残差res,然后再计算残差的加权向量w。本例方差用样本方差替代,也可将方差作为未知参数c(3),一起求解。 null利用极大似然方法估计出未知参数 后,写出方程为:
(-392.6) (225.5)null §8.1.4 极大似然估计量的计算方法
极大似然估计量的计算方法有许多种,有解析方法,也有数值解法。设 = (1, 2, …, n )是待求的未知参数向量,如例8.1中 = (, , 2) , 异方差例子中 = ( , 2, )。首先求极大似然估计的迭代公式。为求极大似然估计,需要求解
(8.1.13)
设 是未知参数向量的精确值,采用Taylor展开式,取一次近似,并设 表示参数空间上的任意一点,则可将 lnL(y;)/ 表示成
(8.1.14)null令其为0,可得
(8.1.15)
于是得到迭代公式
(8.1.16)
l = 1, 2, …null 求(l) ( l = 1, 2, …) ,它的收敛值
(8.1.17)
即对于充分小的正数,有 , 为所求的未知参数向量的估计值。
式(8.1.16)中对数似然函数的二阶导数矩阵 2lnL/ 被称为海塞(Hessian)矩阵,而对数似然函数的一阶导数 lnL/ 被称为得分向量或Jacobian向量。计算式(8.1.16)中的海塞(Hessian)矩阵的逆矩阵,计算量是很大的。计算式(8.1.16)的方法有多种,近似的方法可节省时间但缺少严密性,而严密的方法又有计算时间长的缺点。实际应用中要根据所用计算机的功能选择适当的方法。null 1. 解析导数
默认情形下,当极大化似然函数和形成标准差的估计时,EViews计算似然函数关于参数的数值微分。也可以用@deriv语句为一个或多个导数指定解析表达式,该语句格式为:
@deriv pname1 sname1 pname2 sname2 ...
这里pname是模型中的一个参数名称,而sname是由模型产生的对应的导数序列的名称。
例如 @deriv c(1) grad1 c(2) grad2 c(3) grad3
grad1=xa/d
grad2=grad1*x1
grad3=grad2*x2 null 2. 导数步长
如果模型的参数没有指定解析微分,EViews将用数值方法来计算似然函数关于这些参数的导数。在计算导数时的步长由两个参数控制:r (相对步长)和 m(最小步长)。用(i) 表示参数 在第 i 次迭代时的值,那么在第 i +1 次迭代时的步长由下式定义:
双侧数值微分被定义为:
null而单侧数值微分则由下式计算:
(8.19)
这里 logL 是似然函数。双侧导数更加精确,但它要对似然函数进行的计算量大概是单侧导数的两倍,运行时间上也是如此。
null
@derivstep可以用来控制步长和在每次迭代时计算导数的方法。关键字@derivstep后面必须设置三项:参数名(或用关键字@all代替);相对步长;最小步长。默认设置(近似的)为:
@derivstep(1) @all 1.49e-8 1e-10
这里括弧里的“1”表示用的是单侧导数,而@all关键字表示设置的步长适用于所有参数。@all后面第一个数值是相对步长,第二个数值是最小步长。默认的相对步长为r=1.4910-8 ,而最小步长为 m=10-10。 null§8.1.5 估 计 一旦定义了一个似然对象,可以用EViews来寻找使得似然函数取极大值的参数值。只需在似然窗口工具栏中单击Estimate就可以打开估计对话框。
在这个对话框里有许多用来控制估计过程不同方面的选项。大多数问题使用默认设置就可以。单击OK,EViews将用当前的设置开始估计。 null 1.初值
由于EViews使用迭代法来求极大似然估计,初值的选择就显得非常重要了。对于似然函数只有一个极大值的问题,只是经过多少次迭代使估计收敛的问题。对于那些多个极大值的似然函数所面临的问题是决定选择极大值中哪一个。在某些情况下,如果不给出合理的初值,EViews将无法作出估计。
默认情况下,EViews使用存储在系数向量的值。如果在说明中用了@param语句,那么就用语句指定的值来代替。
null
在前述的例子中,为均值方程系数赋初值的一个方法是简单的OLS法,这是因为即使在异方差性(有界)存在的条件下,OLS也提供了一致的点估计。为了用OLS估计值作为初值,首先要估计OLS方程:
y c x z
在对这个方程进行估计后,C系数向量中的元素c(1),c(2),c(3)将包含OLS估计的结果。null 要设置c(4)表示OLS估计的残差方差,可以在命令窗口中输入下面的赋值语句:c(4)=eq1.@se^2或c(4)=eq1.@ssr/(T-2)。
可选择地,可以利用简单的赋值语句任意设置参数值:
c(4) = 0.005
如果在执行了OLS估计及其后面的命令后马上估计logl模型的话,那么将用设置在C向量里的值作为初值。
象上面提到的那样,将参数初始值赋值为已知值的另一种方法是在似然模型说明中加入@param语句。例如,如果例8.1中的logl说明中加入了下面的行:
@param c(1) 449.07 c(2) 0.73 c(3) 24205
那么EViews会将初值设置为: c(1) = 449.07,c(2)= 0.73,c(3) = 24205 。null 2.估计样本
在估计对数似然函数的参数时,EViews就在Estimation对话框里指定了将使用的观测值的样本。EViews在当前参数值下,将使用观测值顺序或方程顺序用样本中的每一个观测值来对logl中每个表达式进行计算。所有这些计算都服从于EViews中关于序列表达式计算的规则。
如果在对数似然序列的初始参数值中有缺少值,EViews将发出错误信息而估计过程也将终止。相对于其他的EViews内部过程的处理方式,在估计模型参数时logl估计不能进行终点调整或是去掉那些欠缺值的观测值。 null§8.1.6 LogL视图 (1) likelihood Specification : 显示定义和编辑似然说明的窗口。
(2) Estimation Output : 显示通过最大化似然函数得到的估计结果。
(3) Covariance Matrix : 显示参数估计的协方差矩阵。这是通过计算在最优参数值下一阶导数的外积的和的逆求得的。可以用@cov这个函数将其保存为(SYM)矩阵。
(4) Wald Coefficient Test : 执行Wald系数限制检验。参看系数检验,关于Wald检验的讨论。 null (5) Gradients : 如果模型没有被估计,显示当前参数值下logL的梯度(一阶导数)视图,若模型已经被估计,则显示收敛的参数值下logL的梯度视图。当处理收敛问题时,这些图将成为有用的鉴别工具。
梯度
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
视图可以检查似然函数的梯度。如果模型迭代尚未收敛,那么就在当前参数值下计算梯度,若模型已经估计出来了,就在收敛的参数值下计算。
null 视图在处理收敛性或奇异点问题时是一个有用的鉴别工具。一个常见的问题是,由于错误的定义似然过程,不恰当的初值,或是模型不可识别等导致某个参数的导数为零可能产生奇异矩阵。 null (6) Check Derivatives (检查导数)
可以用Check Derivatives视图来检查数值微分或是解析微分表达式的是否有效。如果使用了@param语句,显示在初值下数值微分和解析微分(如果可获得)的值,如果没有使用@param语句,则给出在当前值下数值微分和解析微分的值,以及用模型中所有样本计算的每个系数数值微分的和 。
null 该视图的第一部分列出了用户提供的导数的名称,步长参数和计算导数时使用的系数值。本例中列出的相对步长和最小步长都是默认设置。第二部分用模型中所有样本计算了每个系数的数值微分的和,如果可能的话,还要计算解析微分的和。null§8.1.7 LogL过程 (1) Estimate : 弹出一个设置估计选项的对话框,并估计对数似然函数的参数。
(2) Make Model : 建立一个估计对数似然函数说明的未命名的模型对象。
(3) Make Gradient Group : 在参数估计值下创建一个未命名的对数似然函数的梯度组(一阶导数)。这些梯度常用来构造拉格朗日乘数检验。
(4) Update Coefs from LogL : 用似然函数对象得出的估计值来更新系数向量。该过程可以将极大似然估计结果作为其他估计问题的初始值。
大多数这些过程和EViews的其他估计对象相似。下面我们将着重介绍LogL对象所独有的特征。 null LogL对象的标准输出除了包含系数和标准差估计外,还描述了估计的方法,估计使用的样本,估计的日期和时间,计算顺序以及估计过程收敛的信息, EViews还提供了对数似然函数值,平均对数似然函数值,系数个数以及三个信息标准。 null§8.1.8 问题解答 由于logL对象的极大的灵活性,在使用对数似然方法进行估计时比使用其他EViews的内部估计方法更容易出错。如果在估计时遇到了困难,下面的建议将帮助解决这些问题。
(1) 检查似然说明
一个简单错误包括错误符号就可以使估计过程停止工作。必须检查模型的每个参数是否确实定义了(在某些说明中可能不得不将参数标准化)。另外,模型中出现的每个参数必须直接的或间接的影响似然贡献。Check Derivatives视图可以部分的解决后者的问题。 null (2) 选择初值
如果由于缺失值或数学运算域错误(对负数取对数或取平方根,除数为零等等)导致样本中似然贡献无法评价,那么将立刻停止估计并给出错误信息:“Cannot compute @logl due to missing values”。另外,选择的初值不恰当也可能使似然函数效果不理想。应该给参数一个合理的初值。如果有一个近似求解该问题的简单的估计技术,可以把由该方法得到的估计值作为极大似然估计的初值。
(3) 检查导数
如果使用解析微分,使用Check Derivatives视图来确认是否已经正确的标记了导数。如果使用的是数值微分,就要考虑指定解析微分或是调整导数方法或步长选项。 null (4) 估计前正确地处理滞后值问题
和其他EViews估计程序相比,在估计一个对数似然模型时,logL估计程序不会用NA或滞后形式从样本中自动去掉某个观测值。如果似然说明包含滞后值,必须从估计样本的开始值中去掉一些观测值,或者必须对说明作出标记从而使前面样本中的错误值不会影响到整个样本(参见AR(1)和GARCH模型的示例)。
既然用来评价似然函数的序列包含在工作文件中(除非使用了@temp语句删除它们),那么可以利用这些中间结果序列来检验对数似然和中间序列的值,以发现滞后和缺值的问题。 null (5) 修正模型参数
如果有导致数学错误的参数值的问题,可以考虑修正模型参数以将之限制在其有效域内。
我们看到的大多数估计过程中的错误信息本身具有解释。而错误信息“near singular matrix (近似奇异矩阵)”却不是很明确的。当EViews不能求由导数外积的和构成的矩阵的逆以致不能决定最优化过程下一步的方向时,就给出这个错误信息。这个错误可能意味着各种类型的错误,其中包括不适当的初值,但是当在理论上或对有效数据,模型不可识别时,几乎总是出现这种错误。 null§8.1.9 限 制 必须注意对数似然中估计参数使用的算法并不是对任意的问题都适用的。在似然贡献的导数的外积的和的基础上,该算法给出了对数似然函数的Hessian矩阵的近似值。该近似值是建立在极大似然目标函数的函数形式和统计特性的基础之上的。此外,只有当描述似然贡献的序列,其单个贡献都被正确的设定并具有好的理论时,对数似然定义的参数值的标准差才有意义。
null 用来描述似然贡献的表达式必须遵守EViews关于序列表达式的规则。这些限制暗示我们不能在似然说明中使用矩阵运算。为了写出联立方程模型的似然函数,必须写出行列式和二次型的表达式。对于那些多于三个方程的模型而言,这样做尽管是可能的,但会很繁琐。这种情况的例子参见多元GARCH程序。
另外,对数似然方法不能直接处理一般的不等式约束的最优化问题。 null§8.2 实 例 一、AR(1)模型的极大似然函数
一阶自回归过程有如下形式,记作AR(1):
(8.2.8)
~
在此情形下,总体参数向量为 =(c, , 2)。 当| | <1 时,存在一个满足(8.2.8)的协方差平稳过程, (8.2.8)可写成MA()过程:
null 上式取期望:
所以平稳AR(1)过程的均值为
其方差为 null 首先考察样本中第一个观察值 y1 的概率分布。由于在 | | <1 时,存在一个满足(8.2.8)的协方差平稳过程,此时,
,
所以,第一个观察值的密度函数形如
(8.2.9)
null 接下来考虑第二个观察值 Y2 在观察到的 Y1 = y1 条件下的分布。由(8.2.8)
(8.2.10)
可以将随机变量 Y1 视做确定性常数 y1 。在此情形下,(8.2.10) 给出Y2作为常数(c + y1) 和随机变量 u2 的和。因此
~ ,
(8.2.11)
null 一般地,Y1 , Y2 , 。。。, Yt-1 只通过 Yt-1 对 Yt 起作用,第 t 个观察值以前 t - 1个观察值为条件的分布为:
(8.2.12)
null 完全样本的似然函数为
(8.2.13)
其对数似然函数可由(8.2.13)取对数求得:
(8.2.14)
将(8.2.11)和(8.2.12)代入(8.2.14) ,由AR(1)过程得到一个样本量为T 的样本的对数似然为
(8.2.15)
null 例8.2 AR (1 )模型的极大似然估计
我们用数据生成过程
生成Y ,其中ut 是一个白噪声过程,即ut ~i.i.d.N(0,2) 。根据AR(1)过程
的样本量为T 的对数似然函数为(8.1.15)式。null 可以写出式(8.2.16)的对数似然函数,总体参数向量为 。利用最小二乘估计给出初值:c=-0.5, =0.85, 2 = eq1.@se^2 = 0.89。null
利用极大似然估计方法估计的AR(1)模型:
@LOGL LOGL1
@PARAM C(1) -0.5 PHI(1) 0.85 S2(1) 0.87
RES = @RECODE( D1=1,Y- C(1)/(1- PHI(1)),Y- C(1)- PHI(1)*Y(-1) )
VAR = @RECODE( D1=1, S2(1)/(1- PHI(1)^2),S2(1) )
SRES = RES/@SQRT(VAR)
LOGL1 = LOG(@DNORM(SRES)) - LOG(VAR)/2
@TEMP RES VAR SRES LOGL1
在这个说明文本中,参数C(1)和PHI(1)分别代表了式(8.3.5)中的未知参数 c 和 ;S2就是对数似然函数(8.3.6)中的待估参数2;D1是一个序列,它的第一个值为1,其余的值均为0;@RECODE函数的第一个参数是条件,如果满足,执行第一个表达式;否则执行第二个表达式。nullAR(1)模型的表达式为:
(-3.19) (17.34) null 二、GARCH (p, q)的极大似然函数
标准的 GARCH(p, q) 模型的形式为:
(8.2.19)
要想写出 GARCH(p, q) 模型的极大似然函数,首先要分析扰动项 ut 的密度函数。为了方便起见,我们对方程 (8.2.19)采用另外一种方法来表示,它对 ut 的序列相关施以更强的假定。假定:
(8.2.20)
这里,{vt}是一个i. i.d. 序列,其均值为0,方差为1:null 如果 ht 的变化服从
(8.2.21)
那么 (8.2.20) 意味着,
(8.2.22)
因此,如果 ut 是由 (8.2.20)和 (8.2.21)产生的话,那么 ut 服从GARCH(p, q)过程,并且线性投影 (8.2.22)是其条件期望。
如果 vt~N(0, 1),yt 的条件分布为正态分布,其均值为x ,方差为ht ,则其密度函数为:
(8.2.23)
式中 Yt-1 表示 t - 1时刻前的信息集合,null (8.2.24)
将待估计的未知参数列成一个向量:
则样本对数似然函数是
(8.2.25)
null 但是,很多金融时间序列的无条件分布不同于正态分布,它们具有更宽的尾部,大量事实表明,ut 的条件分布常常也是非正态的。
对于非正态分布可以使用原来的基本方法。例如,博勒斯莱文(1987)认为 (8.2.20)中的 vt 可以取自一个自由度为 k 的 t 分布,k 可视作由极大似然函数估计的参数。如果 ut 具有 k 个自由度,方差为 ht 的 t 分布,当 k > 2 时,其密度函数为
(8.2.26)null
该密度函数可用来取代 (8.2.23)中的正态设定,未知参数向量变为:
于是样本对数似然函数就变成:
(8.2.27)
这样对数似然函数(8.2.27)在 k > 2 的约束下关于 k , , , , 数值最大化。 null
(8.2.24)
(8.2.27)
例8.3 根据方程 (8.2.19)中描述的GARCH(p, q)模型和 (8.2.27)式的极大似然函数,利用极大似然估计方法重新估计例6.3的股票价格指数 sp 的GARCH(0,3)模型。在极大似然函数窗口写出似然说明:这里的@gamma是 函数。
null 首先利用极大似然方法估计GARCH(0,3)模型,得到未知参数向量 = ( , , , 1 , 2 , 3 , k) :
null 均值方程:
(1.08) (1358.52)
方差方程:
(8.67) (4.86) (5.26) (5.23)
对数似然值 = 8365 AIC = -5.82 SC = -5.81 null 然后利用极大似然方法估计GARCH (1, 1) 模型得到未知参数向量 = ( , , , , , k) :
null 均值方程:
(0.88) (1285.3)
方差方程:
(4.99) (6.23) (28.6)
对数似然值 = 8376 AIC = -5.83 SC = -5.82 null 附例:
下面的附例程序可在EViews目录的“Example Files”子目录中找到。
· 条件logit模型(clogit1.prg)
· Box-Cox变换(boxcox1.prg)
· 非对称迁移模型(diseq1.prg)
· 乘法异方差性(hetero1.prg)
· 具有异方差性的Probit模型(hprobit1.prg)
· 分组数据的Probit模型(gprobit1.prg)
· 嵌套logit模型(nlogit.prg)
· 零选择泊松模型(zpoiss.prg)
· 海克曼样本选择模型(heckman1.prg)
· 威布尔概率模型(weibull