0

我目前正在处理一项任务,您必须使用帕累托分布的逆累积函数生成帕累托观察值。我以前从未设法真正反转统计函数,而且我似乎无法正确地做到这一点。我理解公式 X=F^1(U),其中 X 是帕累托分布随机变量,U 是标准均匀随机变量,对于生成观察很重要,但我不知道如何计算反函数。

我希望对如何解决这个问题有一些见解。

4

1 回答 1

0
  • 写下 F(X) 的公式。
  • 在公式的右边写上“= U”。
  • 使用代数在方程左侧隔离单个值 X,即,将 X 作为 U 的函数求解。

得到的方程是反演公式。现在通过插入几个 U 值进行“健全性检查”:0 获得最小值,1 获得最大值,0.5 获得中值。

示例:A Uniform(a, b)F(x) = (x - a) / (b - a)对于 a ≤ x ≤ b 具有 CDF,并且具有最小值 a、最大值 b 和中值 (a + b) / 2。

  • F(X) = (X - a) / (b - a)
  • (X - a) / (b - a) = U
  • X - a = (b - a) U
  • X = a + (b - a) U

测试用例:

  • U = 0 => a + (b - a) 0 = a
  • U = 1 => a + (b - a) 1 = a + b - a = b
  • U = 0.5 => a + (b - a) / 2 = (2a + b - a) / 2 = (a + b) / 2

实现(在 Ruby 中,因为您没有指定语言):

def uniform(a, b)
  return a + (b - a) * rand        # rand with no arguments returns a U(0,1)
end
于 2018-03-26T14:59:09.660 回答