首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想用gamma函数代替指数函数来计算R中基于95%似然的置信区间

我想用gamma函数代替指数函数来计算R中基于95%似然的置信区间
EN

Stack Overflow用户
提问于 2021-03-24 09:11:02
回答 1查看 40关注 0票数 0

我想替换指数对数似然

代码语言:javascript
复制
explik <- function(x) {

  sum( dexp(data, 1/x, log=TRUE))
}

具有伽马负对数似然

代码语言:javascript
复制
gammalike <- function(x) {
  
  -sum(dgamma(data, shape=x, scale=2, log=TRUE))
}

在以下函数和脚本中

代码语言:javascript
复制
likeqn <- function(mu) {
  
  muhat <- mean(data)
  maxlik <- explik(muhat)
  explik(mu) - maxlik + 0.5 * 3.841
}
代码语言:javascript
复制
source("explik.R")
source("likeqn.R")


# Input data
data <- c(63, 130, 88, 120, 330, 188, 270, 222, 189, 116)

# Find the MLE of an exponential distribution
muhat <- mean(data)

# Solve likelihood equation numerically to find likelihood based CI
vlikeqn <- Vectorize(likeqn)
CIlower <- uniroot(vlikeqn, c(10,muhat) )$root
CIupper <- uniroot(vlikeqn, c(muhat,500) )$root
cbind(CIlower, muhat, CIupper)

# Plot log-likelihood function
x <- seq(80, 350)
vexplik <- Vectorize(explik)
plot(x, vexplik(x), type="l", xlab=expression(mu), ylab="log-likelihood")

我曾尝试替换log-lik函数,但结果似乎并不合理。

EN

回答 1

Stack Overflow用户

发布于 2021-03-24 11:27:09

具有速率λ的分布博览会( lambda )是Gamma(1,1/lambda) (形状-比例)。

代码语言:javascript
复制
gammalike <- function(x) {
  sum(dgamma(data, shape=1, scale=x, log=TRUE))
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66773408

复制
相关文章

相似问题

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