全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SPSS论坛
9760 1
2011-06-04
求教各位:如何用spss做泊松分布的最大似然估计?

我现在想做一个泊松分布的最大似然估计,请问用spss怎么做呢?

如果spss实现不了,那么用什么软件可以呢?

谢谢各位回答!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-4-25 09:26:09
用eviews可以实现下面是对数极大似然的举例

用 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 包含了每个观测值的对数似然贡献的集合。EViews 将对不同参
数值重复执行说明中的赋值语句,使用迭代法来求使得对数似然贡献最大的一组参数值。当 EViews 再不
能提高全部的似然贡献时,它将停止迭代并在估计输出中报告最终参数值和估计标准差。
要创建一个似然对象,选择 Objects/New Object.../LogL 或者在命令窗口输入“logL”。似然窗口将打
开一个空白说明视图。说明视图是一个文本窗口,在这个窗口里可以输入描述统计模型的说明语句,还可
以设置控制估计程序各个方面的选项。
一.似然的定义
正如概述中所描述的那样,似然说明的主线是一系列赋值语句,在计算时,这些赋值语句将产生一个
包含样本中每个观测值的对数似然贡献的序列。赋值语句的多少可以由自己决定。
每个似然说明都必须包含一个控制语句,该语句命名了保存似然贡献的序列。语句的格式为:
@logL series_name
这里 series_name 是保存似然贡献的序列的名字,可以写在似然说明的任何位置。
如果想在估计完成后删除说明中的一个或多个序列,可以使用@temp 语句:
@temp series_name1 sereis_name2 ...
这个语句告诉 EViews 在对说明的计算完成后,删除列表中的序列。
二.参数名
在上面的例子中,我们使用了系数 c(1) 到 c(3) 作为未知参数的名称。更一般的,出现在说明中一个
已命名的系数向量中的每一个元素都将被视为待估参数。可以使用不同的系数向量,用命令创建命名的系
数向量,如 coef(4) beta,则定义了 beta(1),beta(2),beta(3),beta(4),4 个待估计系数。例如似然
说明可写为:
@logL logL1
res=y-beta(1)-beta(2)*x-beta(3)*z
var= beta(4)
logL1=log(@dnorm(res/@sqrt(var)))-log(var)/2
由于说明中的已命名的系数向量的所有元素都将被视为待估参数,必须确定所有的系数确实影响了一

个或多个似然贡献的值。如果一个参数对似然没有影响,那么在试图进行参数估计时,将遇到一个奇异错
误。注意到除了系数元素外所有的对象在估计过程中都将被视为固定的,不可改变的。例如,假定 omega
是工作文件中一个已命名的标量,如果将子表达式var定义如下:var=omega,EViews将不会估计omega,
omega 的值将被固定在估计的开始值上。
三.估计的顺序
logL 说明包含了一个或多个能够产生包含似然贡献的序列的赋值语句。在执行这些赋值语句的时候,
EViews 总是从顶部到底部执行,所以后面计算要用到的表达式应放在前面

EViews 对整个样本重复的计算每个表达式。EViews 将对模型进行重复计算时采用方程顺序和样本观
测值顺序两种不同方式,要用方程顺序来计算,仅加一行关键字“@byeqn”,则 EViews 将先用所有的观
测值来计算第一个赋值语句,然后用所有的观测值计算第二个赋值语句,……。要用样本顺序来计算,可
以用关键字“@byobs”,EViews 用观测值顺序来计算模型,此种方式是先用第一个观测值来计算所有的赋
值语句,接下来是用第二个观测值来计算所有的赋值语句,如此往复,直到估计样本中所有观测值都使用
过。如果没有给出计算顺序关键字,那么系统默认为“@byobs”。
四.解析导数
默认情形下,当极大化似然函数和形成标准差的的估计时,EViews 计算似然函数关于参数的数值微
分。可以用@deriv 语句为一个或多个导数指定解析表达式,该语句格式为:
@deriv pname1 sname1 pname2 sname2 ...
这里 pname 是模型中的一个参数名称,而 sname 是由模型产生的对应的导数序列的名称。

@derivstep可以用来控制步长和在每次迭代时计算导数的方法。关键字@derivstep后面必须设置三项:
被设置的参数名(或用关键字@all代替);相对步长;最小步长。默认的最小步长被设置为机器ε 的平方根
(1.49e-8)而最小步长为m=1010。

定义了一个似然对象后,可以在似然窗口工具栏中单击 Estimate,打开估计对话框。
一.初值
默认情况下,EViews使用储存在系数向量或已估计的其它系数向量中的值。如果在说明中用了@param
语句,那么就使用该语句指定的值来代替。
二.估计样本
在估计对数似然函数的参数时,Eviews 将在 Estimation Option 对话框里指定了当前工作文件的观测值
样本,需根据滞后次数。重新确定样本区间。

·likelihood Specification: 显示定义和编辑似然说明的窗口。
·Estimation Output: 显示通过最大化似然函数得到的估计结果。
·Covariance Matrix: 显示参数估计的协方差矩阵。这是通过计算在最优参数值下一阶导数的外积的
和的逆求得的。可以用@cov 这个函数将其保存为(SYM)矩阵。
·Wald Coefficient Test: 执行 Wald 系数限制检验。参看第 14章,系数检验,关于 Wald 检验的讨论。
·Gradients: 如果模型没有被估计,显示当前参数值下 logL 的梯度(一阶导数)视图,若模型已经
被估计,则显示收敛的参数值下 logL 的梯度视图。当你处理收敛问题时,这些图将成为有用的鉴别工具。
·Check Derivatives : 如果使用了@param语句,显示在初值下数值微分和解析微分(如果可获得)
的值,如果没有使用@param语句,则给出在当前值下数值微分和解析微分的值。


【论坛广邀专家,每日专人回答经管问题!遇到重要紧急的经管难题欢迎@“论坛答疑”客服专号站内ID,小二帮你快找专家+秒找答案。】

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群