使用逆累积分布生成帕累托观测

时间:2018-03-26 13:43:10

标签: distribution inverse uniform-distribution

我目前正在进行一项任务,你必须使用帕累托分布的逆累积函数生成帕累托观测。我之前从未设法实际反转过统计函数,而且我似乎无法将其弄清楚。我理解公式X = F ^ 1(U),其中X是Pareto分布随机变量,U是标准的均匀随机变量对于生成观测值很重要,但我无法弄清楚如何计算逆功能。

我希望对如何解决这个问题有所了解。

1 个答案:

答案 0 :(得分:0)

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

得到的方程是反演公式。现在通过插入一些U:0来获得最小值,1来获得最大值,然后输入0.5来获得中位数,进行“健全性检查”。

示例:对于≤x≤b,制服(a,b)具有CDF F(x) = (x - a) / (b - a),并且具有最小值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