Eu tenho um conjunto variável de respostas que são expressas como um intervalo, como a amostra abaixo.
> head(left)
[1] 860 516 430 1118 860 602
> head(right)
[1] 946 602 516 1204 946 688
onde esquerda é o limite inferior e direita é o limite superior da resposta. Quero estimar os parâmetros de acordo com a distribuição lognormal.
Por um tempo, quando eu estava tentando calcular as probabilidades diretamente, estava lutando com o fato de que, como os dois limites são distribuídos por diferentes conjuntos de parâmetros, eu estava obtendo alguns valores negativos, como abaixo:
> Pr_high=plnorm(wta_high,meanlog_high,sdlog_high)
> Pr_low=plnorm(wta_low, meanlog_low,sdlog_low)
> Pr=Pr_high-Pr_low
>
> head(Pr)
[1] -0.0079951419 0.0001207749 0.0008002343 -0.0009705125 -0.0079951419 -0.0022395514
Eu realmente não conseguia descobrir como resolvê-lo e decidi usar o ponto médio do intervalo, o que é um bom compromisso até encontrar a função mledist que extrai a probabilidade de log de uma resposta de intervalo. Este é o resumo que recebo:
> mledist(int, distr="lnorm")
$estimate
meanlog sdlog
6.9092257 0.3120138
$convergence
[1] 0
$loglik
[1] -152.1236
$hessian
meanlog sdlog
meanlog 570.760358 7.183723
sdlog 7.183723 1112.098031
$optim.function
[1] "optim"
$fix.arg
NULL
Warning messages:
1: In plnorm(q = c(946L, 602L, 516L, 1204L, 946L, 688L, 1376L, 1376L, :
NaNs produced
2: In plnorm(q = c(860L, 516L, 430L, 1118L, 860L, 602L, 1290L, 1290L, :
NaNs produced
Os valores dos parâmetros parecem fazer sentido e a probabilidade de logaritmo é maior que qualquer outro método que eu usei (distribuição de ponto médio ou distribuição de qualquer um dos limites).
Há uma mensagem de aviso que eu não entendo, então alguém poderia me dizer se estou fazendo a coisa certa e o que essa mensagem significa?
Agradecemos a ajuda!
fitdistrplus
.