R语言计算最大似然估计
时间: 2024-10-13 14:16:07 浏览: 33
在R语言中,计算最大似然估计(Maximum Likelihood Estimation,MLE)通常用于估计模型参数,使得数据的概率分布达到最大化。这个过程基于贝叶斯定理,假设已知概率密度函数(Probability Density Function,PDF),目标是最优化参数值以最大化给定观测数据的联合概率。
以下是一个简单的例子,假设我们有一个正态分布模型,其中我们需要估计均值(mu)和标准差(sigma):
```R
# 导入所需库
library(stats)
# 假设我们有数据x
data <- rnorm(100, mean = 5, sd = 2) # 生成一组随机数据
# 定义一个函数,接受参数并返回对数似然
loglik <- function(par, x){
mu <- par[1]
sigma <- par[2]
log_dens <- dnorm(x, mean = mu, sd = sigma, log = TRUE)
return(sum(log_dens))
}
# 初始猜测参数值
start <- c(mean(data), sd(data))
# 使用optim()函数找到最大似然估计
MLE <- optim(start, loglik, method = "BFGS", hessian = TRUE, data = data)
# 输出结果,包括估计值和误差
cat("Estimated parameters: ", MLE$par, "\n")
cat("Standard errors: ", sqrt(diag(solve(MLE$hessian))), "\n")
#
阅读全文