Wie @whuber betonte, funktionieren statistische Methoden hier nicht genau. Sie müssen die Verteilung aus anderen Quellen ableiten. Wenn Sie die Verteilung kennen, haben Sie eine nichtlineare Gleichungslösungsübung. Mit f die Quantilfunktion Ihrer gewählten Wahrscheinlichkeitsverteilung mit dem Parametervektor . Was Sie haben, ist das folgende nichtlineare Gleichungssystem:θ
q0,05q0,5q0,95= f( 0,05 , θ )= f( 0,5 , & thgr ; )= f( 0,95 , θ )
wo sind deine Quantile. Sie müssen dieses System lösen, um zu findenqθ
( q0,05- f( 0,05 , θ ) )2+ ( q0,5- f( 0,5 , & thgr ; ) )2+ ( q0,95- f( 0,95 , & thgr ; ) )2
Hier habe ich die quadratische Funktion gewählt, aber Sie können wählen, was Sie wollen. Laut @whuber-Kommentaren können Sie Gewichte zuweisen, damit wichtigere Quantile genauer angepasst werden können.
Für vier und mehr Parameter ist das System unterbestimmt, so dass unendlich viele Lösungen existieren.
Hier ist ein Beispiel für einen R-Code, der diesen Ansatz veranschaulicht. Zu Demonstrationszwecken generiere ich die Quantile aus der Singh-Maddala-Verteilung von VGAM Paket. Diese Verteilung hat 3 Parameter und wird in der Einkommensverteilungsmodellierung verwendet.
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))
Bilden Sie nun die Funktion, die das nichtlineare Gleichungssystem auswertet:
fn <- function(x,q) q-qsinmad(c(0.05, 0.5, 0.95), x[1], x[2], x[3])
Überprüfen Sie, ob die wahren Werte der Gleichung entsprechen:
> fn(c(2,1,4),q)
[1] 0 0 0
Zur Lösung des nichtlinearen Gleichungssystems verwende ich die Funktion nleqslv
aus dem Paket nlqeslv .
> sol <- nleqslv(c(2.4,1.5,4.3),fn,q=q)
> sol$x
[1] 2.000000 1.000000 4.000001
Wie wir sehen, erhalten wir die genaue Lösung. Versuchen wir nun, diese Quantile auf die logarithmische Normalverteilung abzustimmen. Dafür verwenden wir die optim
Funktion.
> 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
Zeichnen Sie nun das Ergebnis
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))
Daran sehen wir sofort, dass die quadratische Funktion nicht so gut ist.
Hoffe das hilft.