0

我使用 library(fitdistrplus) 包来拟合数据,如下所示:

set.seed(100)
x1<-rlnorm(500,1,3)
f.x1<-fitdist(x1,distr = "lnorm",method = "mme")
plot(f.x1)

以下是绘图结果: 在此处输入图像描述

我的问题是:x1数据实际上是用rlnorm生成的,但是拟合后,pp图不是那么完美,如何解释?

谢谢。光明

4

1 回答 1

0

我强烈怀疑这是因为矩匹配不是估计参数的好方法。我使用矩匹配重复了您的示例:

set.seed(100)
x = rlnorm(500, 1, 3)

library(fitdistrplus)
f.x<-fitdist(x,distr = "lnorm",method = "mme")

参数估计为:

> f.x
Fitting of the distribution ' lnorm ' by matching moments 
Parameters:
        estimate
meanlog 3.012574
sdlog   2.199019

如果我使用最大似然进行拟合:

ll = function(meanlog, sdlog){
  sum(dlnorm(x, meanlog, sdlog, log = TRUE))
}

objFun = function(params){
  -ll(params[1], params[2])
}

optim(c(0, 1), objFun)

然后我得到参数估计

> optim(c(0, 1), objFun)
$par
[1] 0.8861808 3.0118166

这更接近您从中采样的值,我认为您会同意。所以分位数(和百分点)将更接近经验值。

于 2020-04-30T04:45:07.337 回答