R语言:逆变换法生成密度函数的随机变量
Posted fxalll
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言:逆变换法生成密度函数的随机变量相关的知识,希望对你有一定的参考价值。
在我的文章中,有关于逆变换法生成随机变量的。但是,关于逆变量法还有一种应用,就是根据密度函数生成随机变量。
我们以下面的密度函数为例子:
f ( x ) = 5 2 ∗ e [ − 5 2 ( x − 2 ) ] , x ≥ 2 f(x)=\\frac{5}{2}*e[-\\frac{5}{2}(x-2)] , x\\geq 2 f(x)=25∗e[−25(x−2)],x≥2
我们根据概率论知识,将之积分获得其累积分布函数,并设为U:
U = − e ∗ ( − 5 2 ( x − 2 ) ) U=-e*(-\\frac{5}{2}(x-2)) U=−e∗(−25(x−2))
进而逆变换为:
x = 2 − 2 5 ∗ l o g ( − U ) x=2-\\frac{2}{5}*log(-U) x=2−52∗log(−U)
由于U的取值范围为[-1,0),由此,我们只需要在r语言程序中随机生成一个在-1到0的数,另其为U,就可以获得x的值。
代码:
q = function(n) {
u = runif(n,min=-1,max=0)
x = 2 - (2/5)*log(-u)
x
}
以上是关于R语言:逆变换法生成密度函数的随机变量的主要内容,如果未能解决你的问题,请参考以下文章