Hier sind zwei Möglichkeiten, um numerische Näherungen an die Umkehrung des cdf zu berechnen, vorausgesetzt, Sie haben Entscheidungen für m, d, α, β und p getroffen. Beide Methoden erfordern, dass Sie F (x) für ein gegebenes x berechnen können, also ...
m = 1
d = 2
a = 1
b = 2
p = 0.5
F = function(x) (1 - ((1+x^m)^-d) * exp(-b*x^a)) /
(1 - (p*(1+x^m)^-d) * exp(-b*x^a))
Methode 1
Um InvF (a) zu berechnen, lösen Sie die Gleichung F (x) = a
InvF1 = function(a) uniroot(function(x) F(x) - a, c(0,10))$root
InvF1(0.5)
[1] 0.1038906
F(InvF1(0.5))
[1] 0.4999983
Methode 2
Bewerten Sie y = F (x) für einen Bereich von x und passen Sie dann eine Kurve als Funktion von y an x an.
x = c(seq(0,3, 0.001), seq(3.1,10,0.1))
y = F(x)
InvF2 = approxfun(y, x)
InvF2(0.5)
[1] 0.1038916
F(InvF2(0.5))
[1] 0.5000011
Sie können die Genauigkeit erhöhen, InvF2
indem Sie eine dichtere Abtastung von x verwenden, insbesondere für kleine Werte von x.