J'ai un ensemble variable de réponses qui sont exprimées sous forme d'intervalle tel que l'exemple ci-dessous.
> head(left)
[1] 860 516 430 1118 860 602
> head(right)
[1] 946 602 516 1204 946 688
où gauche est la limite inférieure et droite est la limite supérieure de la réponse. Je veux estimer les paramètres en fonction de la distribution log-normale.
Pendant un moment, lorsque j'essayais de calculer directement les probabilités, je me débattais avec le fait que, comme les deux bornes sont réparties le long d'un ensemble de paramètres différent, j'obtenais des valeurs négatives comme ci-dessous:
> 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
Je ne pouvais pas vraiment comprendre comment le résoudre et j'ai décidé d'utiliser le point médian de l'intervalle à la place, ce qui est un bon compromis jusqu'à ce que je trouve la fonction mledist qui extrait la probabilité de log d'une réponse d'intervalle, voici le résumé que j'obtiens:
> 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
Les valeurs des paramètres semblent avoir un sens et la probabilité de log est plus grande que toute autre méthode que j'ai utilisée (distribution à mi-chemin ou distribution de l'une ou l'autre des bornes).
Il y a un message d'avertissement que je ne comprends pas. Quelqu'un pourrait-il me dire si je fais la bonne chose et que signifie ce message?
Appréciez l'aide!
fitdistrplus
.Réponses:
Il semble que vous ne calculiez pas correctement la probabilité.
Quand tout ce que vous savez sur une valeur est quex
Il est obtenu indépendamment d'une distribution etFθ
Il se situe entre et inclus (où et sont indépendants de ),a b>a b a x
alors (par définition) sa probabilité est La probabilité d'un ensemble d'observations indépendantes est donc le produit de telles expressions, une par observation. La log-vraisemblance, comme d'habitude, sera la somme des logarithmes de ces expressions.
À titre d'exemple, voici unea b Fθ b>a b≠a
R
implémentation où les valeurs de sont dans le vecteur , les valeurs de dans le vecteur et est Lognormal. (Il ne s'agit pas d'une solution polyvalente; en particulier, elle suppose que et pour toutes les données.)left
right
Pour trouver la probabilité logarithmique maximale, nous avons besoin d'un ensemble raisonnable de valeurs de départ pour la moyenne logarithmique et l'écart type logarithmique . Cette estimation remplace chaque intervalle par la moyenne géométrique de ses paramètres:μ σ
Générons des données distribuées de façon aléatoire et lognormale et regroupons-les en intervalles:
L'ajustement peut être effectué par un optimiseur multivarié à usage général. (Celui-ci est un minimiseur par défaut, il doit donc être appliqué au négatif de la log-vraisemblance.)
L'estimation de est de , non loin de la valeur prévue de , et l'estimation de est de , non loin de la valeur prévue de : pas mal pour seulement valeurs. Pour voir à quel point l'ajustement est bon, traçons la fonction de distribution cumulative empirique et la fonction de distribution ajustée. Pour construire l'ECDF, je viens d'interpoler linéairement à travers chaque intervalle:μ 6.12 6 σ 0.40 0.5 12
Étant donné que les écarts verticaux sont constamment faibles et varient à la fois de haut en bas, cela ressemble à un bon ajustement.
la source