极大似然估计通常用于估计概率分布的参数。因此,具体的极大似然估计方法会依赖于你所假设的概率分布类型。下面我将为你提供一个通用的示例,用于估计一个简单的参数,假设数据服从正态分布。
假设你有一组数据,想要估计这些数据的均值和标准差的极大似然估计值。以下是一个示例:
# 创建一个示例数据集
data <- c(2.5, 3.0, 2.7, 3.2, 2.8, 3.5, 3.0, 3.8, 3.2, 2.9)
# 定义似然函数,假设数据服从正态分布
likelihood_function <- function(parameters, data) {
mu <- parameters[1] # 均值
sigma <- parameters[2] # 标准差
# 计算似然值,使用正态分布的概率密度函数
likelihood <- sum(dnorm(data, mean = mu, sd = sigma, log = TRUE))
return(-likelihood) # 返回似然值的负数,因为optim()函数通常用于最小化目标函数
}
# 使用optim()函数来估计均值和标准差的极大似然估计值
initial_guess <- c(mean(data), sd(data)) # 初始猜测值,可以使用样本均值和样本标准差
result <- optim(initial_guess, likelihood_function, data = data)
estimated_mu <- result$par[1] # 估计的均值
estimated_sigma <- result$par[2] # 估计的标准差
# 输出估计值
print(paste("估计的均值:", estimated_mu))
print(paste("估计的标准差:", estimated_sigma))
在这个示例中,我们假设数据服从正态分布,然后定义了正态分布的似然函数。然后,我们使用optim()
函数来最大化这个似然函数,从而估计均值和标准差的极大似然估计值。