You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行MLE遇逻辑值缺失错误,需保留fixed参数求解决

解决MLE中fixed参数导致的逻辑值缺失错误

错误原因

使用stats4::mle时,若fixed参数包含非待估计变量(如你的y),同时lower/upper是对应待估计参数(mu、sigma)的向量,函数会尝试检查所有固定参数是否在上下界范围内,但y没有对应的上下界值,导致检查时出现NA,触发missing value where TRUE/FALSE needed错误。

解决方案

将lower和upper改为列表形式,与待估计参数(start中的变量)一一对应,避免函数对固定参数进行不必要的上下界检查:

修正后的MLE执行代码

library(stats4)
# 按待估计参数分别设置上下界,用列表绑定参数名与对应值
bound.lower <- list(mu = est$mean * 0.5, sigma = est$sd * 0.5)
bound.upper <- list(mu = est$mean * 2.0, sigma = est$sd * 2.0)

est.mle <- mle(
  minuslogl = likelihood.normal,
  start = list(mu = est$mean, sigma = est$sd),
  method = "L-BFGS-B",
  fixed = list(y = return.log),
  lower = bound.lower,
  upper = bound.upper
)

补充说明

你的负似然函数无需修改,因为它的参数定义是正确的:mu、sigma是待估计参数,y是固定的观测值。通过列表形式指定上下界,函数只会检查待估计的mu和sigma是否在范围内,不会处理fixed中的y,从而规避错误。

内容的提问来源于stack exchange,提问作者Kevin Wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:16:21