我正在研究一个特定的分布,其逆 cdf 不以封闭形式存在。分布的 cdf 由下式给出
为严格正和.
我的问题是我是这个R
包的新手,我需要使用R
.
我正在研究一个特定的分布,其逆 cdf 不以封闭形式存在。分布的 cdf 由下式给出
为严格正和.
我的问题是我是这个R
包的新手,我需要使用R
.
这里有两种计算 cdf 倒数的数值近似值的方法,假设您已经选择了 m,d,α,β 和 p。这两种方法都要求您可以计算给定 x 的 F(x),所以...
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))
要计算 InvF(a),请求解方程 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
为一系列 x 计算 y = F(x),然后将曲线拟合到 x 作为 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
您可以InvF2
通过使用更密集的 x 采样来提高准确度,特别是对于 x 的小值。