全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4178 6
2009-08-21
论坛里面的各位高手,菜鸟请教个问题:
用极大似然估计,如何设定估计参数的上下界?  下面是写的程序,我想设定要估计的参数param为[-1,1],可是R里面的极大似然估计包里面的函数好像都没有设置参数的上下界!在这里请赐教啦!
f=read.table("f:/data1.txt",header=TRUE)   #导入数据
cdf1=ecdf(f$x)
cdf2=ecdf(f$y)
u1=cdf1(f$x)
u2=cdf2(f$y)  #得出经验分布函数值
n=length(u1)
  #对u1,u2的数据进行处理,防止出现求逆的时候出现无穷大,这里把1约等于0.99
     for(i in 1:n)
      { if(u1[i]==1)  u1[i]=0.99
        if(u2[i]==1)  u2[i]=0.99
       }      
y1=qnorm(u1)
y2=qnorm(u2)
# 进行极大似然估计
library('maxLik')
loglik=function(param){
ll=-n*log(1-param^2)/2-(1/(2*(1-param^2)))*(sum(y1^2)-2*param*sum(y1*y2)+sum(y2^2))
  ll
}
res=maxLik(loglik,start=0,method="BFGS")

运行后出现:
Warning messages:
1: In log(1 - param^2) : 产生了NaNs
2: In log(1 - param^2) : 产生了NaNs
3: In log(1 - param^2) : 产生了NaNs
4: In log(1 - param^2) : 产生了NaNs
5: In log(1 - param^2) : 产生了NaNs
6: In log(1 - param^2) : 产生了NaNs
7: In log(1 - param^2) : 产生了NaNs
8: In log(1 - param^2) : 产生了NaNs
9: In log(1 - param^2) : 产生了NaNs
所以这里肯定是参数的界限出了问题!
二维码

扫码加我 拉你入群

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

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

全部回复
2009-8-21 21:51:45
难道没有人知道么?看来得用其他函数啦!
二维码

扫码加我 拉你入群

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

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

2010-12-3 18:07:32
同问这个问题
二维码

扫码加我 拉你入群

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

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

2010-12-4 07:39:56
让我想想......
二维码

扫码加我 拉你入群

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

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

2014-11-24 11:12:14
楼主,这个问题解决了吗,同求!
二维码

扫码加我 拉你入群

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

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

2016-2-9 23:06:28
qinglingxuanfen 发表于 2014-11-24 11:12
楼主,这个问题解决了吗,同求!
亲,你这个问题解决了吗?我也想问!!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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