Ich habe einen variablen Satz von Antworten, die als Intervall ausgedrückt werden, wie im folgenden Beispiel.
> head(left)
[1] 860 516 430 1118 860 602
> head(right)
[1] 946 602 516 1204 946 688
Dabei ist links die Untergrenze und rechts die Obergrenze der Antwort. Ich möchte die Parameter anhand der logarithmischen Normalverteilung schätzen.
Als ich eine Weile versuchte, die Wahrscheinlichkeiten direkt zu berechnen, hatte ich Probleme damit, dass ich einige negative Werte wie die folgenden erhielt, da die beiden Grenzen auf verschiedene Parametersätze verteilt sind:
> 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
Ich konnte nicht wirklich herausfinden, wie ich es lösen sollte, und entschied mich stattdessen für die Verwendung des Mittelpunkts des Intervalls, was ein guter Kompromiss ist, bis ich eine mledist-Funktion fand, die die Loglikelihood einer Intervallantwort extrahiert. Dies ist die Zusammenfassung, die ich erhalte:
> 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
Die Parameterwerte scheinen sinnvoll zu sein und die Loglikelihood ist größer als bei jeder anderen Methode, die ich verwendet habe (Mittelpunktverteilung oder Verteilung einer der Grenzen).
Es gibt eine Warnmeldung, die ich nicht verstehe. Kann mir jemand sagen, ob ich das Richtige tue und was diese Meldung bedeutet?
Schätzen Sie die Hilfe!
fitdistrplus
.