【问题标题】:How to use fitdist when the paramters are already known (Pareto distribution)当参数已知时如何使用 fitdist(帕累托分布)
【发布时间】:2021-02-03 06:05:01
【问题描述】:

我正在对一些数据进行帕累托分布拟合,并且已经估计了数据的最大似然估计值。现在我需要从中创建一个 fitdist(fitdistrplus 库)对象,但我不知道该怎么做。我需要一个 fitdist 对象,因为我想使用 denscomp 等函数创建 qq、密度等图。有人可以帮忙吗?

我首先计算 MLE 的原因是 fitdist 没有正确执行此操作 - 即使我将正确的 MLE 作为起始值(见下文),估计值总是会膨胀到无穷大。如果之前手动给 fitdist 我的参数的选项是不可能的,fitdist 中是否有优化方法可以正确估计帕累托参数?

我无权发布原始数据,但这是使用 MLE 估计原始数据的伽马分布/帕累托分布的模拟。

library(fitdistrplus)
library(actuar)

sim <- rgamma(1000, shape = 4.69, rate = 0.482)
fit.pareto <- fit.dist(sim, distr = "pareto", method = "mle", 
                       start = list(scale = 0.862, shape = 0.00665))
#Estimates blow up to infinity
fit.pareto$estimate

【问题讨论】:

    标签: r statistics fitdistrplus


    【解决方案1】:

    如果您查看?fitdist 帮助主题,它会描述fitdist 对象的外观:它们是包含许多组件的列表。如果您可以计算所有这些组件的替代品,您应该能够使用类似的代码创建一个伪造的fitdist 对象

    fake <- structure(list(estimate = ..., method = ..., ...),
                      class = "fitdist")
    

    对于问题的第二部分,您需要发布一些代码和数据以供人们改进。

    编辑添加:

    我在您模拟随机数据之前添加了set.seed(123)。然后我从fitdist 得到 MLE 是

       scale    shape 
    87220272  9244012
    

    如果我在附近绘制对数似然函数,我会得到:

    loglik <- Vectorize(function(shape, scale) sum(dpareto(sim, shape, scale, log = TRUE)))
    shape <- seq(1000000, 10000000, len=30)
    scale <- seq(10000000, 100000000, len=30)
    surface <- outer(shape, scale, loglik)
    contour(shape, scale, surface)
    points(9244012, 87220272, pch=16)
    

    看起来fitdist 做出了一些合理的选择,尽管实际上可能没有有限的 MLE。您如何发现 MLE 的值如此之小?您确定您使用的参数与dpareto 使用的参数相同吗?

    【讨论】:

    • 我没有发布数据的权限,但我已经编辑了问题以包括拟合接近原始数据的模拟数据。你介意看看吗?
    • 非常感谢您的努力。我使用 $\text{scale} = \min_{i=1,2,...n} x_{i}$ 和 $\text{shape} = n/(\sum_{i=1} ^{n}\ln(x_{i}) - n\ln(\text{scale}))$。重新检查后,与 $\texttt{dpareto}$ 相比,这似乎是帕累托分布的不同参数化。然而,这种参数化只是通过改变比例而有所不同——我觉得我仍然应该得到比 fitdist 给出的更合理的参数。
    • 根据 Rytgaard (1990, ASTIN Bulletin) 中的符号,MLE 代表“欧洲帕累托”。 dpareto 密度适用于“美国帕累托”。他们没有给出美国帕累托的 MLE。您可能需要转到 ?dpareto 帮助页面上的参考资料之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多