首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二项式数据的最大似然估计

二项式数据的最大似然估计
EN

Stack Overflow用户
提问于 2018-12-04 23:02:20
回答 1查看 847关注 0票数 1

我需要找到二项式数据向量的最大似然估计。

像这样的人:

代码语言:javascript
复制
binvec <- rbinom(1000, 1, 0.5)

我尝试首先创建这个函数,然后使用optim()优化它。

代码语言:javascript
复制
llbinom <- function(theta, x) {return(sum(dbinom(x=x,
               size = theta[1],
               prob = theta[2],log=TRUE)))}
mybin <- optim(c(0.5,0.5),fn=llbinom,x=binvec)
mybin

我确实得到了一些结果,但也得到了一些错误消息,即NaN正在生成,函数不能在初始参数中进行评估。我根据一个适用于正态分布数据的示例构建了它,并认为我在转换它时犯了错误。

这里,我得到的原始代码:

代码语言:javascript
复制
ll <- function(theta,x) {return(-sum(dnorm(x=x,
   mean=theta[1],sd=theta[2],log=TRUE)))}
mle <- optim(c(5,3),fn=ll,x=binvec)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 23:31:56

这里有几个问题。

  • 看起来您缺少了一个负号(除非您设置了控制参数fnscale=-1,否则默认情况下fnscale=-1会最小化,因此需要定义一个负日志似然函数)。
  • size参数必须是整数
  • 从数据中估计size参数是不寻常的,也是技术上的挑战(如果您想要阅读这项技术,通常使用N-混合模型来完成:例如,参见unmarked包);通常假设试验的次数是已知的。所以我会尝试
代码语言:javascript
复制
llbinom <- function(theta, x) {return(
   -sum(dbinom(x=x,
               size = 1,
               prob = theta[1],log=TRUE)))}
mybin <- optim(c(0.5),fn=llbinom,x=binvec)

要做到这一点有很多理由(数值);如果你真的只需要找到单个二项分布样本x (独立观测,在s试验中成功的概率相同)的概率,那么解析解就是sum(x)/sum(s) .

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53622728

复制
相关文章

相似问题

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