全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
797 0
2017-05-27
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这里,第一个参数就是我设置的最小值,也就意味着第一个参数没有估出来。
请教大神如何解决?
下面是这个编程的函数。



二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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