以下のサンプルのように、間隔として表される応答の変数セットがあります。
> head(left)
[1] 860 516 430 1118 860 602
> head(right)
[1] 946 602 516 1204 946 688
ここで、左は応答の下限、右は応答の上限です。対数正規分布に従ってパラメーターを推定したい。
しばらくの間、可能性を直接計算しようとしたとき、2つの境界が異なるパラメーターのセットに沿って分布しているため、以下のようないくつかの負の値が得られるという事実に苦労していました。
> 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
私は実際にそれを解決する方法を理解できず、代わりに間隔の中間点を使用することに決めました。これは、間隔応答の対数尤度を抽出するmledist関数を見つけるまで、良い妥協です。これは私が得る要約です:
> 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
パラメータ値は理にかなっているようで、対数尤度は、私が使用した他のどの方法よりも大きくなっています(中点分布または境界のいずれか1つの分布)。
わからない警告メッセージがあります。私が正しいことをしているのかどうか、またこのメッセージの意味を誰かに教えてもらえますか?
ヘルプに感謝します!
fitdistrplus
。