楼主: 了空不了色
1055 1

[问答] 请教高人,下面的这个函数求最大似然哪里出错了 [推广有奖]

  • 0关注
  • 0粉丝

已卖:324份资源

本科生

60%

还不是VIP/贵宾

-

威望
0
论坛币
3235 个
通用积分
8.4202
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1087 点
帖子
65
精华
0
在线时间
105 小时
注册时间
2017-1-13
最后登录
2023-9-13

楼主
了空不了色 发表于 2017-5-27 09:59:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
sigma<-1e-02 #1.93e-04   1.039685e+01 5.994720e-07
mu<-.01 #5.94e-06
eta<-1e-03
T<-1#外循环
############## #############################
t<-c(0,100,400,1000,2000) #seq(0,1500,by=50)
lt<-length(t) ##
lamda<-rep(0,lt-1)
for(i in 2:length(t)){
  lamda[i-1]<-t[i]-t[i-1]
}
sn<-5#######总共的样本数,i=5
sN<-sn*(lt-1)  ##样本点数,j=4
###对数似然函数
logl1<-function(params){###eta,mu,sigma,####
logf<--sN*log(2*pi)/2-sN*log(params[3])-
  1/2*sum(log(params[1]+lamda))*sn-
  (sum(y1^2/(2*(params[1]+lamda)))-params[2]*sum(y1*lamda/(params[1]+lamda))+
params[2]^2*sum(lamda^2/(2*(params[1]+lamda)))*sn)/params[3]^2
return(-logf)                     
}
paramsmle<-matrix(0,nrow = T,ncol = 3)
for(k in 1:T){
y1<-matrix(0,ncol = sn[1],nrow = lt-1)
for(j in 1:sn){
  for (i in 1:(lt-1)) {
    y1[i,j]<-rnorm(1, mu*lamda[i], sigma*sqrt(eta+lamda[i]))
  }
}
##sampling delta y2
geyser.res<-nlminb(c(0.0001,0.0001,0.0001),logl1,hessian=TURE,
                   lower=c(1e-20,1e-10,1e-10),
                   upper=c(Inf,Inf,Inf))
paramsmle[k,]<-c(geyser.res$par)
}
这是我写的函数,在做似然估计的时候nlminb函数运行的结果是下面这个
$par
[1] 1.000000e-20 9.985313e-03 5.000256e-01
$objective
[1] 63.55516
$convergence
[1] 0
$iterations
[1] 5
$evaluations
function gradient
       9       25
$message
[1] "relative convergence (4)"
$par这里,第一个参数就是我设置的最小值,也就意味着第一个参数没有估出来。
请教大神如何解决?
下面是这个编程的函数。



二维码

扫码加我 拉你入群

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

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

关键词:哪里出错了 最大似然 请教高人 Sigma GMA

沙发
了空不了色 发表于 2017-5-27 10:03:43
刚刚图片好像没有成功啊。
y{ij}是服从正态分布的从里面抽样,lamda{ij}是事先我设定好的

哎哎哎.jpg (1.62 MB)

哎哎哎.jpg

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 16:04