Aqui estão duas maneiras de calcular aproximações numéricas ao inverso do cdf, supondo que você tenha feito escolhas para m, d, α, β e p. Ambos os métodos exigem que você possa calcular F (x) para um determinado x, então ...
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))
Método 1
Para calcular InvF (a), resolva a equação 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
Método 2
Avalie y = F (x) para um intervalo de x e, em seguida, ajuste uma curva a x em função de y.
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
Você pode aumentar a precisão InvF2
usando uma amostragem mais densa de x, particularmente para pequenos valores de x.