причина пп сюжета нелинейная - PullRequest
0 голосов
/ 30 апреля 2020

Я использую пакет библиотеки (fitdistrplus) для подгонки данных следующим образом:

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

ниже приводится результат построения графика: введите описание изображения здесь

мой вопрос это: данные x1 на самом деле генерируются с помощью rlnorm, но после подгонки график pp не так совершенен, как это объяснить?

спасибо. Гуанмин

1 Ответ

0 голосов
/ 30 апреля 2020

Я сильно подозреваю, что это потому, что сопоставление моментов не является отличным способом оценки параметров. Я повторил ваш пример, используя сопоставление моментов:

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

, которые намного ближе к значениям, из которых вы выбирали, я думаю, вы согласитесь. Таким образом, квантили (и процентные точки) будут намного ближе к эмпирическим значениям.

...