我是靠谱客的博主 幸福大碗,最近开发中收集的这篇文章主要介绍MCS:多元随机变量——离散随机变量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 x1xkP(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...)=allxbutxjP(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...)=xjxjP(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...)=xjxj2P(xj...)

生成随机变量

生成 k k k个离散变量的随机变量: ( x 1 , x 2 , . . . , x k ) (x_1, x_2, ...,x_k) (x1,x2,...,xk)

  1. 得到 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) uU(0,1)
    • 找到大于随机变量 u u u F ( x 1 . . . ) F(x_1...) F(x1...)对应 x 1 x_1 x1的最小值,记为: x 10 x_{10} x10
  2. 得到 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(x2x10...)F(x2x10...)
    • 生成一个随机连续均匀变量: u ∼ U ( 0 , 1 ) u sim U(0, 1) uU(0,1)
    • 找到大于随机变量 u u u F ( x 2 ∣ x 10 . . . ) F(x_2|x_{10}...) F(x2x10...)对应 x 2 x_2 x2的最小值,记为: x 20 x_{20} x20
  3. 得到 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(x3x10x20...)F(x3x10x20...)
    • 生成一个随机连续均匀变量: u ∼ U ( 0 , 1 ) u sim U(0, 1) uU(0,1)
    • 找到大于随机变量 u u u F ( x 3 ∣ x 10 x 2 0 . . . ) F(x_3|x_{10}{x_20}...) F(x3x10x20...)对应 x 3 x_3 x3的最小值,记为: x 30 x_{30} x30
  4. 重复直到得到: x k 0 x_{k0} xk0
  5. ( 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 x3123123
x 2 x_2 x201
x 1 x_1 x1
00.120.100.080.080.060.05
10.080.060.040.050.040.03
20.060.040.020.040.030.02

根据概率分布生成多元离散随机变量:

  1. 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.49F(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.30F(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.21F(2...)=1.00
    • u ∼ U ( 0 , 1 ) , u = 0.37 , u < F ( 0 ) u sim U(0, 1),u = 0.37,u < F(0) uU(0,1)u=0.37u<F(0)令: x 10 = 0 x_{10} = 0 x10=0
  2. 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=0x10=0...)=(0.12+0.10+0.08)/0.49=0.612F(00...)=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=1x10=0...)=(0.08+0.06+0.05)/0.49=0.388F(10...)=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...) uU(0,1)u=0.65u<F(10...)令: x 20 = 1 x_{20} = 1 x20=1
  3. 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=1x10x20...)=0.08/0.19=0.421F(10,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=2x10x20...)=0.06/0.19=0.316F(20,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=3x10x20...)=0.05/0.19=0.263F(30,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...) uU(0,1)u=0.55u<F(10,1...)令: x 30 = 2 x_{30} = 2 x30=2
  4. ( 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:多元随机变量——离散随机变量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部