如何解决我想用伽马函数替换指数函数来计算 R 中基于 95% 似然的置信区间
我想替换指数对数似然
explik <- function(x) {
sum( dexp(data,1/x,log=TRUE))
}
伽马负对数似然
gammalike <- function(x) {
-sum(dgamma(data,shape=x,scale=2,log=TRUE))
}
在下面的函数和脚本中
likeqn <- function(mu) {
muhat <- mean(data)
maxlik <- explik(muhat)
explik(mu) - maxlik + 0.5 * 3.841
}
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 函数,但结果似乎不合理。
解决方法
具有比率 lambda 的分布 Expo(lambda) 是 Gamma(1,1/lambda)(形状尺度)。
gammalike <- function(x) {
sum(dgamma(data,shape=1,scale=x,log=TRUE))
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。