Ошибка при использовании fitdist с усеченными дистрибутивами

Я пытаюсь подогнать определенное усеченное распределение к набору данных. Например, для логнормального распределения я определяю функцию плотности усеченного распределения как:

dtlnorm <- function(x, meanlog, sdlog,low) 
  dlnorm(x,meanlog,sdlog)/(1-plnorm(low,meanlog,sdlog))* (x >= low)

где low - точка усечения.

Мои данные - это следующий вектор

Data <- c(1068295.00589834, 1406446.49289834, 1540330.78489834, 1152321.94489834, 
3108649.66189834, 3718417.97089834, 2981945.18089834, 4552923.31989834, 
5747260.98289834, 2105461.57989834, 1044515.95889834, 1133641.75289834, 
3847920.72789834, 2536441.02989834, 3073854.15789834, 1591039.28389834, 
2592446.73289834, 4989152.55189834, 2426457.45489834, 120265066.499898, 
6888222046.1999, 1092811.87089834, 3440123.51689834, 74684298.1398983, 
1475038.27689834, 1124226.39489834, 11739544.5798983, 1187688.74489834, 
1023193.88789834, 18784663.9698983)

Чтобы подогнать под раздачу, пишу:

fitdist(Data,distr="tlnorm",method="mle",start = list(meanlog=0,sdlog=0),fix.arg = list(low=100))

Но появляется следующая ошибка:

Error in fitdist(Data, distr = "tlnorm", method = "mle", start = list(meanlog = 0,  : 
the function mle failed to estimate the parameters, 
            with the error code 100

Я не знаю, что происходит. Кто-нибудь может мне помочь? Спасибо!


person JN_2605    schedule 27.11.2019    source источник
comment
На страницах справки говорится, что вам нужны функции ptlnorm и qtlnorm, то есть распределение и квантиль. Говорится имя символьной строки, обозначающее распределение, для которого должны быть определены соответствующая функция плотности dname, соответствующая функция распределения pname и соответствующая функция квантиля qname, или непосредственно функция плотности. Похоже, вы можете отправить dtlnorm без кавычек, возможно, это сработает, например. distr=dtlnorm. Возможно, все еще понадобятся другие функции, хотя   -  person Jonny Phelps    schedule 27.11.2019
comment
Я пробовал определять функции p и q и писать dist = dtlnorm, но возникает та же ошибка.   -  person JN_2605    schedule 27.11.2019
comment
Актуально ли это?   -  person Jonny Phelps    schedule 27.11.2019
comment
Я прочитал его, и это не решает моей проблемы. Такая же ошибка появляется   -  person JN_2605    schedule 27.11.2019
comment
Можете ли вы добавить свои данные, запустив dput функцию, пожалуйста?   -  person Jonny Phelps    schedule 27.11.2019
comment
Взгляните на stackoverflow.com/questions/15003362/   -  person Tony Ladson    schedule 27.11.2019