确定对数逻辑分布的最大似然估计 (MLE)

机器算法验证 物流 最大似然 可能性
2022-04-05 07:25:00

我得到了两个包含日期和损失的数据集(以某种货币表示)。我必须确定对数逻辑分布参数的最大似然估计。

我用谷歌搜索并找到了一篇论文,它在(2.4)中为我提供了 sigma 的“MMLE”。

1 这足以替代 MLE 吗?它似乎遵循我从介绍性统计中回忆的获取 MLE 的相同程序。

2 要估计 sigma,看来我必须从样本中审查 s 值。如何确定 s 的值?

确切说明:

“方向:

  1. 对于每个损失数据集 [在别处给出],
    确定以下每个模型的参数的最大似然估计
    物流配送

...

  1. 对于没有的每个模型。1、执行以下拟合优度检验
    Kolmogorov-Smirnov 检验 b. Anderson-Darling 检验 C. 卡方拟合优度检验

  2. 您的报告中必须包含以下内容:
    a) Word 文件(硬拷贝):完整的解决方案:讨论每个模型的似然性(或对数似然)函数,讨论每个模型的拟合优度检验 VaR 和TVaR b) Excel 文件(通过电子邮件):实施 3.a 中获得的公式“

2个回答

如果您希望将对数逻辑分布拟合到数据中,这样做相当简单。在下面的示例中,我使用该函数dllog来获取给定的一组形状和比例参数值的对数逻辑密度,但自己编写 PDF 代码也没有问题。


(对数-)似然和 MLE

对数逻辑分布的随机变量的密度具有概率密度函数 [PDF]:

f(Xi;α,β)=(βα)(Xiα)β1(1+(Xiα)β)2
在哪里αβ分别是尺度和形状参数。

对于给定的数据样本X1,,XN,这意味着样本的对数似然为:

N(α,βX1,,XN)=i=1Nlogf(Xi;α,β)

给定数据样本的参数的 MLE 由对数似然的最大化器给出:

α^MLE,β^MLE=argmaxα,βN(α,βX1,,XN)


计算和优化对数似然

在下面的代码中:
0. 我使用该函数rllog从具有参数的对数逻辑分布中生成随机样本c(5, 6)
1. 该函数fnLLLL计算数据的(负)对数似然。
2. 该函数fnLLLL使用包中的函数dllogFAdist计算对数逻辑分布的 PDF 。 3.计算使负对数似然最小化的的值,这些值是优化器的初始值。这些优化值是f
optimαβc(2, 3)5.1327585.654340, 负对数似然函数的优化值为9239.179

# simulate some log-logistic data
library(FAdist)
vY = rllog(n = 1000, shape = 5, scale = 6)

# log-likelihood function
fnLLLL = function(vParams, vData) {
  # uses the density function of the log-logistic function from FAdist
  return(-sum(log(dllog(vData, shape = vParams[1], scale = vParams[2]))))
}

# optimize it
optim(c(2, 3), fnLLLL, vData = vY)

这给出了:

> optim(c(2, 3), fnLLLL, vData = vY)
$par
[1] 5.132758 5.654340

$value
[1] 9239.179

$counts
function gradient 
      57       NA 

$convergence
[1] 0

$message
NULL

我在上面询问了参数化,因为在精算科学(至少在美国)中,对数逻辑(Fisk)通常是参数化的:

f(x)=γ(xθ)γx+[1+(xθ)γ]2F(x)=(xθ)γ1+(xθ)γ

因此:

LL(x)=lnγ+γ(lnxlnθ)lnx2ln(1+(xθ)γ)

如上所述,为此(嗯,负对数似然)创建一个错误函数,类似于:

NLL_LGLG <- function(pars, X) {
  gamma <- pars[[1]]
  theta <- pars[[2]]
  LL <- log(gamma) + gamma * (log(X) - log(theta)) - log(X) -
        2 * log(1 + (X / theta) ^ gamma)
  return(-sum(LL))
}

deriv3如果您想使用 L_BFGS 等基于梯度的方法(或者如果速度至关重要,则可以手动计算),但将上述内容和您的数据插入optim应该nloptr是您想要的。如果你不想滚动你自己的对数,而这个参数化是你想要的,你可以在 CRAN 上dllogisactuar包中找到。