R语言中知道分布函数怎样产生随机变量;如果还知道cdf呢
提供一个思路,不知道是不是符合你这个问题的要求。Simulation里有两种简单的方法产生随机数。第一种是acceptance-rejection method,第二种是inverse transformation method。两种方法都要先从pdf求出cdf(之后记为
)第一种方法的算法是:1.产生两个uniform random variable u1,u2.2.检查是否有 【R语言中知道分布函数怎样产生随机变量;如果还知道cdf呢】
, 其中g(x)是自选的instrumental distribution, M是f(x)/g(x)的最大值。3.如果 (2) 成立,产生f(u2); 不成立则返回 (1).第二种的思路是(懒得写了,直接抄了书上原话):Let U be a uniform (0, 1) random variable. For any continuous distribution function F the random variable X defined by
has distribution F. 具体的细节刚才查了下在wiki的Rejection sampling和Inverse transform sampling的词条下都有详细解释,可以参考一下。
■网友
谢邀,为啥邀请我...我很懒的,而且不喜欢重复劳动,可不可以把我上课的讲义放上,并且加了自己的备注。如果你能看得了的话...
逆变换方法极其主观解释上图最后的直观解释,可以在一篇CSDN博客上找到。
■网友
如果是一维的话,而且pdf属于容易计算数值,但不方便sampling的分布函数的那种,可以采用rejection sampling。基本思路就是选取一个容易sample的pdf——g(x)。先根据g(x) sample,再根据f(x)/g(x)来从得到的点中进行筛选,保留下的点就符合f(x)对应的分布,一般要选取比f(x)更长尾的分布作为g(x)。
另外还有一些技巧,适用于一些特定的f(x)。比如引入一个新的随机变量y,两个conditional distribution y|x,x|y比较好sample, 根据conditional distribution不断sample {x,y}组合,这样得到的x的边缘分布就是想要的分布。我觉得还是rejection sampling更general一点。
如果是高维的话,可以采用Gibbs Sampler或者Metropolis Hasting等诸多MCMC方法。
具体可参考Computational Statistics,Chapter 6,7
Computational Statistics, by G. H. Givens and J. A. Hoeting
■网友
谢邀。不懂R,但是懂一点概率论。有这样一个命题,如果X服从上的均匀分布,给定一个满足某些条件的函数F,那么一定存在Borel可测函数f,使得f(X)的分布函数是F.这个命题的证明是构造性的,应该可以直接用程序实现.
推荐阅读
- |艾滋病“后悔药”你知道吗?高危性行为后,这样做能救你一命
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 部位|妈妈要知道宝宝身体这4个部位很怕冷
- 五年级儿子莫名有了部手机!爸爸知道真相后如五雷轰顶……
- 江苏省|不能带食品 信号屏蔽……南京这些剧场的观剧礼仪你知道吗?
- 网关地址为10.28.23.254 怎样知道它的子网掩码与ip地址
- 还有人不知道会过不知道会过VIP?
- 今日汽车|这些汽车品牌:“虽然你知道我造车,但却不知道我还能做小零食!”
- 车祸违驾|为什么交警在查车时,会用手摸一下车尾,你知道是什么意思吗?
- 汽车知识|长安闷声干大事!长安CS15大家买账吗?还有胎压报警、定速巡航 你知道吗?
