nullnull EViews包含了一些常用方法,如最小二乘法、非线性最小二乘法、加权最小二乘法、TSLS、GMM、ARIMA、ARCH、GARCH等方法,这些方法可以解决可能遇到的大多数估计问题。但是,我们在研究中也可能会碰到一些不在上述之列的特殊的模型,这些模型可能是现存方法的一个扩展,也可能是一类全新的问题。
为了能解决这些特殊的问题,EViews提供了对数极大似然估计对象这一工具来估计各种不同类型的模型。对数极大似然估计对象提供了一个一般的,开放的工具,可以通过这个工具极大化相关
参数
转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应
的似然函数对一大类模型进行估计。 第八章 对数极大似然估计 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 而言达到最大值,
就被称为极大似然估计量。
在 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 的似然函数。
对似然函数求极大值和对数似然函数求极大值是等价
的,式(8.1.6)的对数似然函数形式为:
(8.1.7) null 注意,可以将对数似然函数写成 t 时刻所有观测值的对数似然贡献和的形式,
(8.1.8)
这里对数似然的单个贡献(用小写字母
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示)由下面的式子给出:
(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 的对数似然贡献和的形式,
这里单个贡献由下面的式子给出:
以只含一个解释变量的一元线性回归方程为例
, t =1, 2 , … , Tnull 假定知道模型参数的真实值,并且想用EViews产生一个包含每个观测值的贡献的序列。可以将已知的参数赋值给系数向量的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 EViews中的标准正态分布的对数似然函数为
,
将对数似然函数写成所有观测值 t 的对数似然贡献的和的形式:
这里每个观测值的贡献由下面的式子给出:
null 要创建一个似然对象,选择Objects/New Object... /LogL或者在命令窗口输入“logL”。似然窗口将打开一个空白说明视图。说明视图是一个文本窗口,在这个窗口里可以输入描述统计模型的说明语句,还可以设置控制估计程序各个方面的选项。
1.似然的定义
正如上节中所描述的那样,似然说明的主线是一系列赋值语句,在计算时,这些赋值语句将产生一个包含样本中每个观测值的对数似然贡献的序列。赋值语句的多少可以由自己决定。 §8.1.3 似然说明null 每个似然说明都必须包含一个控制语句,该语句命名了保存似然贡献的序列。语句的格式为:
@logL series_name
这里@logL是关键字,series_name是保存似然贡献的序列的名字,可以写在似然说明的任何位置。
如果想在估计完成后删除说明中的一个或多个序列,可以使用@temp语句:
@temp series_name1 sereis_name2 ...
这个语句告诉EViews在对说明的计算完成后,删除列表中的序列。null 2.参数名
在上面的例子中,我们使用了系数c(1) 到c(5) 作为未知参数的名称。更一般的,出现在说明中一个已命名的系数向量中的每一个元素都将被视为待估参数。例如创建2个命名的系数向量:
coef(2) beta
coef(1) sigma
于是可以写出下面的似然说明:
@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 一元线性回归方程的极大似然估计
以消费函数为例,分析普通回归方程的极大似然估计方法。样本区间为1978~2002年。消费函数的方程形式
(8.2.5)
其中:ut 服从标准正态分布,cs = CS/P,inc = (1- t)GDP/P,GDP是当年价格的国内生产总值,CS代表当年价格的居民消费值,P代表1978年为1的价格指数,t =TAX/GDP代表宏观税率,TAX是税收总额, 代表自发消费, 代表边际消费倾向,则参数向量为 = (, , 2) ,我们可以写出这个方程的对数极大似然函数
式中zt = (cst- -×inct) / u (8.2.6)null 利用极大似然方法求解,作为@byobs语句的一个例子,考虑下面的说明:
EViews用观测值顺序来计算模型,此种方式是先用第一个观测值来计算所有的赋值语句,接下来是用第二个观测值来计算所有的赋值语句,如此往复,直到估计样本中所有观测值都使用过。本例将方差作为未知参数c(3),一起求解。 null 进行极大似然求解之后,得到 和 的估计值:
c(3)是方差的估计结果。这个结果与第3章的例3.1的结果相同,说明对于该线性方程,利用极大似然估计得到的结果与利用普通最小二乘估计得到的结果完全相同。 null例8.4 具有异方差的一元线性回归模型的极大似然估计 根据第4章例4.1,各省人均家庭交通及通讯支出(cum)和可支配收入(in)的关系,样本个数为30,考虑如下具有异方差性的方程:
(8.2.40)
为消除方程中的异方差,利用加权最小二乘法求解,设
êt = cumt – 0 – 1 – int ,可以写出式(8.2.40)的对数极大似然函数
(8.2.41)
它的未知参数向量为 = (0, 1)。 null 也可用同样的处理方法利用极大似然方法求解,作为@byeqn语句的一个例子,考虑下面的说明:
这个说明通过利用残差res建立加权向量weight=1/abs(res)来完成一个加权最小二乘回归。res的赋值语句计算了在每次计算时的残差,而这被用做构造权重序列。@byeqn语句指示EViews在一个给定的迭代过程中,必须先算出所有的残差res,然后再计算残差的加权向量weight。本例方差用样本方差替代,也可将方差作为未知参数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)
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 是似然函数。双侧导数更加精确,但它要对似然函数进行的计算量大概是单侧导数的两倍,运行时间上也是如此。
@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语句,那么就用语句指定的值来代替。
在前述的例子中,为均值方程系数赋初值的一个方法是简单的OLS法,这是因为即使在异方差性(有界)存在的条件下,OLS也提供了一致的点估计。为了用OLS估计值作为初值,首先要用下面的命令来估计OLS方程:
equation eq1.1s y c x z
在对这个方程进行估计后,C系数向量中的元素c(1),c(2),c(3)将包含OLS估计的结果。null 要设置c(4)表示OLS估计的残差方差,可以在命令窗口中输入下面的赋值语句:c(4)=eq1.@se^2。
可选择地,可以利用简单的赋值语句任意设置参数值:
c(4) = 0.005
如果在执行了OLS估计及其后面的命令后马上估计logl模型的话,那么将用设置在C向量里的值作为初值。
象上面提到的那样,将参数初始值赋值为已知值的另一种方法是在似然模型说明中加入@param语句。例如,如果在logl的说明中加入了下面的行:
@param c(1) 0.1 c(2) 0.1 c(3) 0.1 c(4) 0.005
那么EViews会将初值设置为: c(1) = c(2 )= c(3) = 0.1,c(4) = 0.005。
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的梯度视图。
(6) Check Derivatives : 如果使用了@param语句,显示在初值下数值微分和解析微分(如果可获得)的值,如果没有使用@param语句,则给出在当前值下数值微分和解析微分的值,以及用模型中所有样本计算的每个系数数值微分的和 。
null§8.1.7 LogL过程 (1) Estimate : 弹出一个设置估计选项的对话框,并估计对数似然函数的参数。
(2) Make Model : 建立一个估计对数似然函数说明的未命名的模型对象。
(3) Make Gradient Group : 在参数估计值下创建一个未命名的对数似然函数的梯度组(一阶导数)。这些梯度常用来构造拉格朗日乘数检验。
(4) Update Coefs from LogL : 用似然函数对象得出的估计值来更新系数向量。
大多数这些过程和EViews的其他估计对象相似。下面我们将着重介绍LogL对象所独有的特征。 null 1.估计输出
LogL对象的标准输出除了包含系数和标准差估计外,还描述了估计的方法,估计使用的样本,估计的日期和时间,计算顺序以及估计过程收敛的信息, EViews还提供了对数似然函数值,平均对数似然函数值,系数个数以及三个信息标准。 null 2.梯度
梯度表格视图可以检查似然函数的梯度。如果模型迭代尚未收敛,那么就在当前参数值下计算梯度,若模型已经估计出来了,就在收敛的参数值下计算。 视图在处理收敛性或奇异点问题时是一个有用的鉴别工具。一个常见的问题是,由于错误的定义似然过程,不恰当的初值,或是模型不可识别等导致某个参数的导数为零可能产生奇异矩阵。 null 3.检查导数
可以用Check Derivatives视图来检查数值微分或是解析微分表达式的是否有效。如果在对数似然函数说明中包含了@param语句,那么将用指定的值来计算导数,否则将用当前系数值来计算导数。
该视图的第一部分列出了用户提供的导数的名称,步长参数和计算导数时使用的系数值。本例中列出的相对步长和最小步长都是默认设置。第二部分用模型中所有样本计算了每个系数的数值微分的和,如果可能的话,还要计算解析微分的和。null§8.1.8 问题解答 由于logL对象的极大的灵活性,在使用对数似然方法进行估计时比使用其他EViews的内部估计方法更容易出错。如果在估计时遇到了困难,下面的建议将帮助解决这些问题。
(1) 检查似然说明
一个简单错误包括错误符号就可以使估计过程停止工作。必须检查模型的每个参数是否确实定义了(在某些说明中可能不得不将参数标准化)。另外,模型中出现的每个参数必须直接的或间接的影响似然贡献。Check Derivatives视图可以部分的解决后者的问题。 null (2) 选择初值
如果由于缺失值或数学运算域错误(对负数取对数或取平方根,除数为零等等)导致样本中似然贡献无法评价,那么将立刻停止估计并给出错误信息:“Cannot compute @logl due to missing values (由于缺失值无法计算@logL)”。另外,选择的初值不恰当也可能使似然函数效果不理想。应该给参数一个合理的初值。如果有一个近似求解该问题的简单的估计技术,可以把由该方法得到的估计值作为极大似然估计的初值。
(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 附例:
下面的附例程序可在EViews目录的“Example Files\Logl”子目录中找到。
· 条件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.prg)
· 具有t-分布误差的GARCH(1,1)模型(arch_t1.prg)
· 具有一般误差分布误差的EGARCH模型(egarch1.prg)
· 多元GARCH模型(bv_garch.prg)