请教各位大神,下面的极大似然估计可以估计出三个参数u、k和w。为了解决新的问题,u不再是一个具体数值,而是一个数列,optim函数下只能求具体值,就需要对每一步求一个u。总共需要运行262次,每次返回一个结果,最后形成包含262个u的序列。现在的问题是,在极大似然函数LL外加循环时,到return这一步就中断了,在循环内则会报错。请教各位,这个问题该如何解决,谢谢大家了!
- LL<- function(x,data)
- {
- u<- x[1]
- w<- x[2]
- k<- x[3]
- extra.sum<-0
- for (a in 2:262) {
- inner.sum<-0
- outer.sum<-0
- for (b in 1:261) {
- if (data[b] >= data[a]) {
- next
- } else {
- inner.sum <- inner.sum + w * exp(w * (data[b] - data[a]))
- extra.sum <- extra.sum + exp(w * data[b])-exp(w * (data[b] - 4350))
- }
- }
- k0_inner.sum <- k * inner.sum
- log_inner.sum <- log(u + k0_inner.sum)
- outer.sum <- outer.sum + log_inner.sum
- k0_extra.sum <- k * extra.sum
- }
- c<- outer.sum-u*4350-k0_extra.sum
- return(-c)
- }
- Data.res<- optim(c(0.036,0.06,0.048) , LL , data = dday )
- Data.res$par
复制代码