Tengo un conjunto variable de respuestas que se expresan como un intervalo, como la muestra a continuación.
> head(left)
[1] 860 516 430 1118 860 602
> head(right)
[1] 946 602 516 1204 946 688
donde izquierda es el límite inferior y derecha es el límite superior de la respuesta. Quiero estimar los parámetros de acuerdo con la distribución lognormal.
Durante un tiempo, cuando estaba tratando de calcular las probabilidades directamente, estaba luchando con el hecho de que, dado que los dos límites se distribuyen a lo largo de diferentes conjuntos de parámetros, obtuve algunos valores negativos como a continuación:
> 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
Realmente no pude averiguar cómo resolverlo y decidí usar el punto medio del intervalo, lo cual es un buen compromiso hasta que encontré la función mledist que extrae la probabilidad de una respuesta de intervalo, este es el resumen que obtengo:
> 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
Los valores de los parámetros parecen tener sentido y la probabilidad de logl es mayor que cualquier otro método que haya utilizado (distribución de punto medio o distribución de cualquiera de los límites).
Hay un mensaje de advertencia que no entiendo, ¿alguien podría decirme si estoy haciendo lo correcto y qué significa este mensaje?
Agradezco la ayuda!
fitdistrplus
.