给定随机变量X的概率分布——在R语言中模拟此随机变量
Posted Z.Q.Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给定随机变量X的概率分布——在R语言中模拟此随机变量相关的知识,希望对你有一定的参考价值。
文章目录
一、问题重述
设随机变量 X X X 的分布为
P [ X = i ] = ( 1 2 ) i + 1 + 2 i − 2 3 i , i = 1 , 2 , … (P) P[X = i] = (\\dfrac12)^i+1 + \\dfrac2^i-23^i, i = 1, 2, \\dots \\tagP P[X=i]=(21)i+1+3i2i−2,i=1,2,…(P)
给出模拟此随机变量的方法。
二、问题求解
首先变量
X
X
X 的分布不符合我们常见的均匀分布、二项分布等常见分布,因此我们无法在R语言中直接模拟它,需要做出对应的变换。假定一个服从 [0, 1]
区间的均匀分布的随机数
U
U
U,即
U
∼
U
(
0
,
1
)
U \\sim U(0, 1)
U∼U(0,1),接着若我们定义
p i = ( 1 2 ) i + 1 + 2 i − 2 3 i p_i = (\\dfrac12)^i+1 + \\dfrac2^i-23^i pi=(21)i+1+3i2i−2
则问题 P P P 改写为如下形式:
P [ X = i ] = p i , i = 1 , 2 , … P[X = i] = p_i,\\ i = 1, 2, \\dots P[X=i]=pi, i=1,2,…
接着我们定义如下分布:
X = 1 , U < p 1 ; 2 , p 1 ≤ U < p 1 + p 2 ; 3 , p 1 + p 2 ≤ U < p 1 + p 2 + p 3 ; … i , ∑ j = 1 i − 1 p j ≤ U < ∑ j = 1 i p j . (Q) X = \\left\\\\beginaligned &1\\ ,\\ U < p_1;\\\\ &2\\ ,\\ p_1 \\le U < p_1 + p_2;\\\\ &3\\ ,\\ p_1+p_2 \\le U < p_1 + p_2 + p_3;\\\\ &\\dots\\\\ &i\\ ,\\ \\sum_j=1^i-1p_j \\le U < \\sum_j=1^ip_j. \\endaligned\\right. \\tagQ X=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧1 , U<p1;2 , p1≤U<p1+p2;3 , p1+p2≤U<p1+p2+p3;…i , j=1∑i−1pj≤U<j=1∑ipj.(Q)
可以证明分布 Q Q Q 和分布 P P P 是等价的。
三、证明
因为
U
U
U 服从 [0, 1]
区间的均匀分布,所以我们有如下结论:
∀ 0 < a < b < 1 , P a ≤ U < b = b − a . \\forall\\ 0 < a < b < 1,\\ P\\a \\le U < b\\ = b - a. ∀ 0<a<b<1, Pa≤U<b=b−a.
所以对于分布 Q Q Q,有
P X = i = P ∑ j = 1 i − 1 p j ≤ U < ∑ j = 1 i p j = ∑ j = 1 i p j − ∑ j = 1 i − 1 p j = p i \\beginaligned P\\X=i\\&=P\\ \\sum_j=1^i-1p_j \\le U < \\sum_j=1^ip_j\\\\\\ &=\\sum_j=1^ip_j-\\sum_j=1^i-1p_j \\\\ &=p_i \\endaligned PX=i=Pj=1∑i−1pj≤U<j=1∑ipj=j=1∑ipj−j=1∑i−1pj=pi
和原分布 P P P 等价。
四、R语言代码
定义分布
Q
Q
Q 的函数如下,其原理即为产生一个 [0, 1]
区间的均匀分布,利用该均匀分布概率值处在那个概率区间来确定
X
X
X,其代码如下:
Probability <- f以上是关于给定随机变量X的概率分布——在R语言中模拟此随机变量的主要内容,如果未能解决你的问题,请参考以下文章