首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用mle函数时消除错误

如何在使用mle函数时消除错误
EN

Stack Overflow用户
提问于 2021-07-27 03:13:51
回答 1查看 215关注 0票数 0

我尝试使用MLE函数在r中运行mle。它工作得很好,但我突然遇到了下面的错误。有人能帮忙吗?

代码语言:javascript
复制
Error in if (!all(lower[isfixed] <= fixed[isfixed] & fixed[isfixed] <=  : 
  missing value where TRUE/FALSE needed

为了给您提供更多的背景,下面是我的代码:

  1. 负似然函数

代码语言:javascript
复制
likelihood.func <- function(theta, kappa, sigma, rt){

  n <- NROW(rt)  
  y <- rt[2:n,]
  dt <- 1/12  
  mu <- rt[1:(n-1),]* exp(-kappa*dt) + theta* (1- exp(-kappa*dt))  
  sd <- sqrt((sigma^2)*(1 - exp(-2*kappa*dt))/(2*kappa))  
  pdf_yt <- dnorm(y, mu, sd, log=FALSE)  
  
  -sum(log(pdf_yt))  
}

MLE命令

代码语言:javascript
复制
theta.est <- 0.04
kappa.est <- 0.5
sigma.est <- 0.02

library(stats4)
bound.lower <- parameters.est * 0.1
bound.upper <- parameters.est * 2

est.mle<-mle(likelihood.func, start= list(theta=theta.est, kappa=kappa.est, sigma=sigma.est),
method="L-BFGS-B", lower = bound.lower, upper = bound.upper, fixed=list(rt = rt))

summary(est.mle)
EN

回答 1

Stack Overflow用户

发布于 2022-04-20 15:08:23

如果将rt作为固定参数移除,它是否有效?

代码语言:javascript
复制
#Here I make a function that uses the likelihood function's first three parameters

LL2 = function(theta, kappa, sigma){
  likelihood.func(theta,kappa,sigma,rt)
}

#Then I use it in my mle
est.mle <- mle(minuslogl = LL2, 
               start = list(theta=theta.est, kappa=kappa.est, sigma=sigma.est), 
               method = "L-BFGS-B", 
#               fixed = list(rt = rt2),
               lower = bound.lower, 
               upper = bound.upper
               ) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68538509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档