You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中计算极大似然估计量的蒙特卡罗均方误差?

R语言实现Gumbel分布MLE的蒙特卡罗均方误差计算

核心思路

要计算极大似然估计量(MLE)的蒙特卡罗均方误差,核心逻辑是重复生成样本→拟合模型得到MLE→计算估计值与真实参数的平方误差均值。以下是针对Gumbel分布(真实参数mu=0,sigma=1,样本量n=20,重复次数N=30)的具体实现方案:


1. 依赖包与基础设置

首先加载VGAM包(用于生成Gumbel样本和拟合分布),并设置随机种子保证结果可复现:

library(VGAM)
set.seed(101) # 对应首次重复的种子要求

2. 定义单次MLE计算函数

封装单次实验的逻辑:生成样本→拟合Gumbel分布→提取MLE参数:

get_gumbel_mle <- function(n = 20, mu_true = 0, sigma_true = 1) {
  # 从真实分布抽取样本
  x <- rgumbel(n, loc = mu_true, scale = sigma_true)
  # 拟合Gumbel分布,关闭拟合过程输出
  fit <- vglm(x ~ 1, gumbelff, trace = FALSE)
  # 提取位置参数(mu)和尺度参数(sigma)的MLE
  mu_hat <- coef(fit)[1]
  sigma_hat <- Coef(fit)[2] # 注意用Coef()提取尺度参数
  return(c(mu_hat = mu_hat, sigma_hat = sigma_hat))
}

如果需要自定义似然函数(不依赖VGAM的拟合工具),可以用optim优化实现:

# 自定义Gumbel负对数似然函数(供optim最小化)
gumbel_neg_loglik <- function(params, x) {
  mu <- params[1]
  sigma <- params[2]
  ll <- sum( -log(sigma) - (x - mu)/sigma - exp( -(x - mu)/sigma ) )
  return(-ll)
}

get_gumbel_mle_custom <- function(n = 20, mu_true = 0, sigma_true = 1) {
  x <- rgumbel(n, loc = mu_true, scale = sigma_true)
  # 设置初始参数值(用样本均值和标准差初始化)
  start_params <- c(mu = mean(x), sigma = sd(x))
  # 约束sigma为正,用L-BFGS-B方法优化
  fit <- optim(start_params, gumbel_neg_loglik, x = x, method = "L-BFGS-B", lower = c(-Inf, 1e-6))
  return(c(mu_hat = fit$par[1], sigma_hat = fit$par[2]))
}

3. 执行蒙特卡罗重复实验

用replicate函数批量执行N次实验,结果会返回一个每行对应单次实验的参数估计矩阵:

N <- 30
# 使用VGAM拟合的版本
mle_results <- replicate(N, get_gumbel_mle())
# 转置为数据框,方便后续计算
mle_df <- as.data.frame(t(mle_results))

# 如果用自定义似然版本,替换为:
# mle_results <- replicate(N, get_gumbel_mle_custom())
# mle_df <- as.data.frame(t(mle_results))

4. 计算蒙特卡罗均方误差

均方误差(MSE)的计算公式为:MSE = E[(估计值 - 真实值)^2],用样本均值近似期望:

# 计算位置参数mu的MSE
mu_mse <- mean( (mle_df$mu_hat - 0)^2 )
# 计算尺度参数sigma的MSE
sigma_mse <- mean( (mle_df$sigma_hat - 1)^2 )

# 输出结果
cat("位置参数mu的蒙特卡罗均方误差:", round(mu_mse, 4), "\n")
cat("尺度参数sigma的蒙特卡罗均方误差:", round(sigma_mse, 4), "\n")

内容的提问来源于stack exchange,提问作者oliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:30:18