【发布时间】:2020-06-28 09:15:24
【问题描述】:
我正在尝试在 R 中拟合截断的对数正态分布。下面的 x 是整数列表。我相信函数 Optim() 可能是最好的方法,如下所示。
log.lklh.lnorm <- function(x, mu, sd, input_min, input_max){-sum(log(dlnorm(x, meanlog = mu, sdlog = sd, log = FALSE)/((plnorm(input_max, meanlog = mu, sdlog = sd, lower.tail = TRUE, log.p = FALSE)) - (plnorm(input_min, meanlog = mu, sdlog = sd, lower.tail = TRUE, log.p = FALSE)))))}
optim(par = c(0,1,1,100000), log.lklh.lnorm)
我使用 excel 求解器来求解 mu 和 sd(取决于输入的 max 和 min)(即找到这个总和的最大值)。但是,我似乎无法在 R 中复制这一点。我尝试了上述代码的各种版本,包括:
- 将输入最小值和输入最大值设置为特定值,例如分别为 1 和 100,000。
- Optim() 调用的顺序,即输入 x、par 和 fn 顺序)
非常感谢任何帮助,谢谢!
戴夫
【问题讨论】:
标签: r function statistics mathematical-optimization mle