概述
Multivariate Discrete Arbitrary
有
k
k
k个离散的随机变量:
(
x
1
,
.
.
.
,
x
k
)
(x_1, ...,x_k)
(x1,...,xk),联合概率分布为:
P
(
x
1
,
.
.
.
,
x
k
)
P(x_1, ...,x_k)
P(x1,...,xk),
k
k
k个变量所有可能值的概率和为:1。
∑
x
1
∼
x
k
P
(
x
1
.
.
.
x
k
)
=
1.0
sum_{x_1 sim x_k} P(x_1...x_k) = 1.0
x1∼xk∑P(x1...xk)=1.0
边际概率, k k k个变量中的一个,记为: x j x_j xj
P ( x j . . . ) = ∑ a l l x b u t x j P ( x 1 , x 2 , . . . , x k ) P(x_j...) = sum_{all_x but_{x_j}} P(x_1, x_2, ...,x_k) P(xj...)=allxbutxj∑P(x1,x2,...,xk)
边际期望:
E ( x j . . . ) = ∑ x j x j P ( x j . . . ) E(x_j...) = sum_{x_j} x_j P(x_j...) E(xj...)=xj∑xjP(xj...)
边际方差:
V ( x j . . . ) = E ( x j 2 . . . ) − E ( x j . . . ) 2 V(x_j...) = E(x_j^2...) - E(x_j...)^2 V(xj...)=E(xj2...)−E(xj...)2
E ( x j 2 . . . ) = ∑ x j x j 2 P ( x j . . . ) E(x_j^2...) = sum_{x_j} x_j^2 P(x_j...) E(xj2...)=xj∑xj2P(xj...)
生成随机变量
生成 k k k个离散变量的随机变量: ( x 1 , x 2 , . . . , x k ) (x_1, x_2, ...,x_k) (x1,x2,...,xk)
- 得到
x
1
x_1
x1的边际概率和累积分布:
P
(
x
1
.
.
.
)
、
F
(
x
1
.
.
.
)
P(x_1...)、F(x_1...)
P(x1...)、F(x1...)
- 生成一个随机连续均匀变量: u ∼ U ( 0 , 1 ) u sim U(0, 1) u∼U(0,1)
- 找到大于随机变量 u u u的 F ( x 1 . . . ) F(x_1...) F(x1...)对应 x 1 x_1 x1的最小值,记为: x 10 x_{10} x10
- 得到
x
2
x_2
x2边际条件概率和累积分布:
P
(
x
2
∣
x
10
.
.
.
)
、
F
(
x
2
∣
x
10
.
.
.
)
P(x_2|x_{10}...)、F(x_2|x_{10}...)
P(x2∣x10...)、F(x2∣x10...)
- 生成一个随机连续均匀变量: u ∼ U ( 0 , 1 ) u sim U(0, 1) u∼U(0,1)
- 找到大于随机变量 u u u的 F ( x 2 ∣ x 10 . . . ) F(x_2|x_{10}...) F(x2∣x10...)对应 x 2 x_2 x2的最小值,记为: x 20 x_{20} x20
- 得到
x
3
x_3
x3边际条件概率和累积分布:
P
(
x
3
∣
x
10
x
20
.
.
.
)
、
F
(
x
3
∣
x
10
x
20
.
.
.
)
P(x_3|x_{10}x_{20}...)、F(x_3|x_{10}x_{20}...)
P(x3∣x10x20...)、F(x3∣x10x20...)
- 生成一个随机连续均匀变量: u ∼ U ( 0 , 1 ) u sim U(0, 1) u∼U(0,1)
- 找到大于随机变量 u u u的 F ( x 3 ∣ x 10 x 2 0 . . . ) F(x_3|x_{10}{x_20}...) F(x3∣x10x20...)对应 x 3 x_3 x3的最小值,记为: x 30 x_{30} x30
- 重复直到得到: x k 0 x_{k0} xk0
- ( x 1 0 , . . . x k 0 ) (x_10, ... x_{k0}) (x10,...xk0)
例:假设一个多元离散随机变量:
(
x
1
,
x
2
,
x
3
)
(x_1, x_2, x_3)
(x1,x2,x3),
x
1
x_1
x1可能的取值为:
{
0
,
1
,
2
}
{0,1,2}
{0,1,2},
x
2
x_2
x2可能的取值为:
{
0
,
1
}
{0, 1}
{0,1},
x
3
x_3
x3可能的取值为:
{
1
,
2
,
3
}
{1,2,3}
{1,2,3},概率分布如下:
P
(
x
1
,
x
2
,
x
3
)
P(x_1, x_2, x_3)
P(x1,x2,x3)
x 3 x_3 x3 | 1 | 2 | 3 | 1 | 2 | 3 |
---|---|---|---|---|---|---|
x 2 x_2 x2 | 0 | 1 | ||||
x 1 x_1 x1 | ||||||
0 | 0.12 | 0.10 | 0.08 | 0.08 | 0.06 | 0.05 |
1 | 0.08 | 0.06 | 0.04 | 0.05 | 0.04 | 0.03 |
2 | 0.06 | 0.04 | 0.02 | 0.04 | 0.03 | 0.02 |
根据概率分布生成多元离散随机变量:
-
x
1
x_1
x1的边际概率和累积分布:
- P ( x 1 = 0... ) = 0.12 + 0.10 + 0.08 + 0.08 + 0.06 + 0.05 = 0.49 、 F ( 0... ) = 0.49 P(x_1 = 0...) = 0.12 + 0.10 + 0.08 + 0.08 + 0.06 + 0.05 = 0.49、F(0...) = 0.49 P(x1=0...)=0.12+0.10+0.08+0.08+0.06+0.05=0.49、F(0...)=0.49
- P ( x 1 = 1... ) = 0.08 + 0.06 + 0.04 + 0.05 + 0.04 + 0.03 = 0.30 、 F ( 1... ) = 0.79 P(x_1 = 1...) = 0.08 + 0.06 + 0.04 + 0.05 + 0.04 + 0.03 = 0.30、F(1...) = 0.79 P(x1=1...)=0.08+0.06+0.04+0.05+0.04+0.03=0.30、F(1...)=0.79
- P ( x 1 = 2... ) = 0.06 + 0.04 + 0.02 + 0.04 + 0.03 + 0.02 = 0.21 、 F ( 2... ) = 1.00 P(x_1 = 2...) = 0.06 + 0.04 + 0.02 + 0.04 + 0.03 + 0.02 = 0.21、F(2...) = 1.00 P(x1=2...)=0.06+0.04+0.02+0.04+0.03+0.02=0.21、F(2...)=1.00
- u ∼ U ( 0 , 1 ) , u = 0.37 , u < F ( 0 ) u sim U(0, 1),u = 0.37,u < F(0) u∼U(0,1),u=0.37,u<F(0)令: x 10 = 0 x_{10} = 0 x10=0
-
x
2
x_2
x2的(条件)边际概率和累积分布:
- P ( x 2 = 0 ∣ x 10 = 0... ) = ( 0.12 + 0.10 + 0.08 ) / 0.49 = 0.612 、 F ( 0 ∣ 0... ) = 0.612 P(x_2 = 0|x_{10} = 0...) = (0.12 + 0.10 + 0.08)/0.49 = 0.612、F(0|0...) = 0.612 P(x2=0∣x10=0...)=(0.12+0.10+0.08)/0.49=0.612、F(0∣0...)=0.612
- P ( x 2 = 1 ∣ x 10 = 0... ) = ( 0.08 + 0.06 + 0.05 ) / 0.49 = 0.388 、 F ( 1 ∣ 0... ) = 1.000 P(x_2 = 1|x_{10} = 0...) = (0.08 + 0.06 + 0.05)/0.49 = 0.388、F(1|0...) = 1.000 P(x2=1∣x10=0...)=(0.08+0.06+0.05)/0.49=0.388、F(1∣0...)=1.000
- u ∼ U ( 0 , 1 ) , u = 0.65 , u < F ( 1 ∣ 0... ) u sim U(0, 1),u = 0.65,u < F(1|0...) u∼U(0,1),u=0.65,u<F(1∣0...)令: x 20 = 1 x_{20} = 1 x20=1
-
x
3
x_3
x3的(条件)边际概率和累积分布:
- P ( x 3 = 1 ∣ x 10 x 20 . . . ) = 0.08 / 0.19 = 0.421 、 F ( 1 ∣ 0 , 1... ) = 0.421 P(x_3 = 1|x_{10}x_{20}...) = 0.08/0.19 = 0.421、F(1|0,1...) = 0.421 P(x3=1∣x10x20...)=0.08/0.19=0.421、F(1∣0,1...)=0.421
- P ( x 3 = 2 ∣ x 10 x 20 . . . ) = 0.06 / 0.19 = 0.316 、 F ( 2 ∣ 0 , 1... ) = 0.737 P(x_3 = 2|x_{10}x_{20}...) = 0.06/0.19 = 0.316、F(2|0,1...) = 0.737 P(x3=2∣x10x20...)=0.06/0.19=0.316、F(2∣0,1...)=0.737
- P ( x 3 = 3 ∣ x 10 x 20 . . . ) = 0.05 / 0.19 = 0.263 、 F ( 3 ∣ 0 , 1... ) = 1.000 P(x_3 = 3|x_{10}x_{20}...) = 0.05/0.19 = 0.263、F(3|0,1...) = 1.000 P(x3=3∣x10x20...)=0.05/0.19=0.263、F(3∣0,1...)=1.000
- u ∼ U ( 0 , 1 ) , u = 0.55 , u < F ( 1 ∣ 0 , 1... ) u sim U(0, 1),u = 0.55,u < F(1|0,1...) u∼U(0,1),u=0.55,u<F(1∣0,1...)令: x 30 = 2 x_{30} = 2 x30=2
- ( x 10 , x 20 , x 30 ) = ( 0 , 1 , 2 ) (x_{10},x_{20},x_{30}) = (0, 1, 2) (x10,x20,x30)=(0,1,2)
模拟生成多元随机变量
import numpy as np
import matplotlib.pyplot as plt
def multivariateDiscrete(num=10):
x1, x2, x3 = [], [], []
for i in range(10000):
u = np.random.uniform(0, 1)
temp = []
for k, v in {0:0.49,1:0.79,2:1.0}.items():
if v > u:
temp.append(k)
x1.append(np.min(temp))
u = np.random.uniform(0, 1)
temp = []
for k, v in {0: 0.612, 1:1.0}.items():
if v > u:
temp.append(k)
x2.append(np.min(temp))
u = np.random.uniform(0, 1)
temp = []
for k, v in {1:0.412, 2:0.737, 3:1.00}.items():
if v > u:
temp.append(k)
x3.append(np.min(temp))
return x1, x2, x3
最后
以上就是幸福大碗为你收集整理的MCS:多元随机变量——离散随机变量的全部内容,希望文章能够帮你解决MCS:多元随机变量——离散随机变量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复