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

R中为拒绝抽样优化拉普拉斯分布尺度参数的方法验证

拉普拉斯包络函数最优b值的求解疑问

我打算用位置参数为0、尺度参数为b的拉普拉斯分布作为包络函数,对取值范围在[-1,2]的标准正态分布进行拒绝抽样。由于必须指定b才能完成绘图,我尝试通过从正态分布采样的观测值,求解包络函数的*极大似然估计(MLE)*来寻找b的最优取值。

我的R代码如下:

# Define the log-likelihood function
log_likelihood <- function(b, x) {
  n <- length(x)
  -n*log(2*b) - sum(abs(x))/b
}

# Generate the data
set.seed(123)
x <- rnorm(1000, mean = 0, sd = 1)
x <- x[x >= -1 & x <= 2]  # Restrict the range to [-1, 2]

# Find the maximum likelihood estimate of b
fit <- optim(par = 1, fn = log_likelihood, x = x, lower = 0)
b <- fit$par

# Plot the Laplace envelope function
curve((1/(2*b))*exp(-abs(x)/b), from = -5, to = 5, ylim = c(0, 0.4), ylab = "Density", xlab = "x")

这段代码先生成1000个标准正态样本,将其范围限制在[-1,2]内,再通过optim()函数找到使对数似然函数最大化的b值,最后绘制对应的拉普拉斯包络函数。

后续我又写了绘制[-1,2]区间标准正态分布密度曲线的代码:

y <- seq(-1, 2, length = 1000)
z <- dnorm(y)
par(new=TRUE)
plot(y, z, type = "l", xlab = "X", ylab = "Density", main = "Standard Normal Distribution")

最终我得到b=1,但不确定这个方法是否正确——修改代码后会得到不同的图像和b值,希望得到相关反馈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:30:23