Comme l'a souligné @whuber, les méthodes statistiques ne fonctionnent pas exactement ici. Vous devez déduire la distribution à partir d'autres sources. Lorsque vous connaissez la distribution, vous avez un exercice de résolution d'équations non linéaire. Notons la fonction quantile de la distribution de probabilité choisie avec le vecteur de paramètre θFθ . Ce que vous avez est le système d'équations non linéaire suivant:
q0,05q0,5q0,95= f( 0,05 , θ )= f( 0,5 , θ )= f( 0,95 , θ )
où sont vos quantiles. Vous devez résoudre ce système pour trouver θqθ . Maintenant, pour pratiquement n'importe quelle distribution à 3 paramètres, vous trouverez des valeurs de paramètres satisfaisant cette équation. Pour les distributions à 2 paramètres et à 1 paramètre, ce système est surdéterminé, il n'y a donc pas de solutions exactes. Dans ce cas, vous pouvez rechercher un ensemble de paramètres qui minimise l'écart:
( q0,05- f( 0,05 , θ ) )2+ ( q0,5-f( 0,5 , θ ) )2+ ( q0,95-f( 0,95 , θ ) )2
Ici, j'ai choisi la fonction quadratique, mais vous pouvez choisir ce que vous voulez. Selon les commentaires @whuber, vous pouvez attribuer des poids, de sorte que des quantiles plus importants puissent être ajustés avec plus de précision.
Pour quatre paramètres et plus, le système est sous-déterminé, il existe donc un nombre infini de solutions.
Voici un exemple de code R illustrant cette approche. À des fins de démonstration, je génère les quantiles à partir de la distribution Singh-Maddala à partir du package VGAM . Cette distribution a 3 paramètres et est utilisée dans la modélisation de la distribution des revenus.
q <- qsinmad(c(0.05,0.5,0.95),2,1,4)
plot(x<-seq(0,2,by=0.01), dsinmad(x, 2, 1, 4),type="l")
points(p<-c(0.05, 0.5, 0.95), dsinmad(p, 2, 1, 4))
Formez maintenant la fonction qui évalue le système non linéaire d'équations:
fn <- function(x,q) q-qsinmad(c(0.05, 0.5, 0.95), x[1], x[2], x[3])
Vérifiez si les vraies valeurs satisfont à l'équation:
> fn(c(2,1,4),q)
[1] 0 0 0
Pour résoudre le système d'équation non linéaire, j'utilise la fonction nleqslv
du package nlqeslv .
> sol <- nleqslv(c(2.4,1.5,4.3),fn,q=q)
> sol$x
[1] 2.000000 1.000000 4.000001
Comme nous le voyons, nous obtenons la solution exacte. Essayons maintenant d'adapter la distribution log-normale à ces quantiles. Pour cela, nous utiliserons la optim
fonction.
> ofn <- function(x,q)sum(abs(q-qlnorm(c(0.05,0.5,0.95),x[1],x[2]))^2)
> osol <- optim(c(1,1),ofn)
> osol$par
[1] -0.905049 0.586334
Tracer maintenant le résultat
plot(x,dlnorm(x,osol$par[1],osol$par[2]),type="l",col=2)
lines(x,dsinmad(x,2,1,4))
points(p,dsinmad(p,2,1,4))
De cela, nous voyons immédiatement que la fonction quadratique n'est pas si bonne.
J'espère que cela t'aides.