• MCS:离散随机变量——Poisson分布


    Poisson

    当事件在指定的时间间隔内(单位时间),以固定平均瞬时速率(平均发生次数) θ \theta θ发生,那么描述这个单位时间内事件发生次数的变量就是泊松变量。泊松分布适合于描述单位时间内随机事件发生的次数,例如:每分钟经过十字路口的车辆数量;没小时车站的候客人数;

    P ( x ) = θ x e − θ x ! , x = 0 , 1 , 2 , . . . P(x) = \frac{\theta^x e^{-\theta}}{x!},x = 0, 1, 2, ... P(x)=x!θxeθx=0,1,2,...

    期望和方差:

    E ( x ) = θ E(x) = \theta E(x)=θ
    V ( x ) = θ V(x) = \theta V(x)=θ

    泊松变量&指数变量: t t t

    E ( t ) = 1 θ E(t) = \frac{1}{\theta} E(t)=θ1

    生成随机泊松变量

    生成随机泊松变量 x x x,且 E ( x ) = V ( x ) = θ E(x) = V(x) = \theta E(x)=V(x)=θ

    1. x = 0 , i = 0 , S t = 0 x = 0, i = 0, S_t = 0 x=0,i=0,St=0
    2. i = i + 1 i = i + 1 i=i+1,生成随机指数变量: t t t,且 E ( t ) = 1 / θ E(t) = 1/\theta E(t)=1/θ S t = S t + t S_t = S_t + t St=St+t
    3. if S t > 1 S_t > 1 St>1 → s t e p 5 \to step5 step5
    4. if S t < = 1 , x = x + 1 S_t <= 1, x = x + 1 St<=1,x=x+1 → s t e p 2 \to step2 step2
    5. Return x x x

    例:假设 x x x为服从泊松分布的随机变量,单位时间内事件发生的期望次数为 θ = 2.4 \theta = 2.4 θ=2.4,下面通过指数变量 t t t,( E ( t ) = 1 / 2.4 E(t) = 1/2.4 E(t)=1/2.4)来生成泊松变量:

    1. x = 0 , S t = 0 x = 0, S_t = 0 x=0St=0
    2. i = 1 , t = 0.21 , S t = 0.21 , x = 1 i = 1,t = 0.21,S_t = 0.21,x = 1 i=1t=0.21St=0.21x=1
    3. i = 2 , t = 0.43 , S t = 0.64 , x = 2 i = 2,t = 0.43,S_t = 0.64,x = 2 i=2t=0.43St=0.64x=2
    4. i = 3 , t = 0.09 , S t = 0.73 , x = 3 i = 3,t = 0.09,S_t = 0.73,x = 3 i=3t=0.09St=0.73x=3
    5. i = 4 , t = 0.31 , S t = 1.04 , x = 4 i = 4,t = 0.31,S_t = 1.04,x = 4 i=4t=0.31St=1.04x=4
    6. x = 3 x = 3 x=3

    例:一个24小时营业的加油站,每天有200-300辆车来这里加油,其中80%是汽车,15%是卡车,5%是摩托车。每辆汽车消耗汽油最小是3加仑,平均是11加仑。卡车消耗汽油最少是8加仑,平均是20加仑。摩托车消耗的汽油最少是2加仑,平均是4加仑。分析员想弄清楚加油站一天之内消耗总量的分布情况。

    用随机数模拟未来1000天,加油站汽油消耗情况,车辆的类型和消耗的油量通过随机数生成。

    1. 记录模拟数据,每天的耗油总量 G G G
    2. 从小到大排序, G ( 1 ) < = G ( 2 ) < = G ( 3 ) < = . . . G ( 1000 ) G(1) <= G(2) <= G(3) <= ...G(1000) G(1)<=G(2)<=G(3)<=...G(1000)
    3. 估计分位数: G ( p × 1000 ) G(p \times 1000) G(p×1000) p = 0.01 , G ( 0.01 × 1000 ) = G ( 10 ) p = 0.01, G(0.01 \times 1000) = G(10) p=0.01,G(0.01×1000)=G(10)
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    • 1
    • 2
    • 3
    def gas_consum_oneday():
        num_vehicle = np.clip(np.random.poisson(300), 200, 500)
        num_cars = int(num_vehicle * 0.8)
        num_trucks = int(num_vehicle * 0.15)
        num_motos = num_vehicle - (num_cars + num_trucks)
        car_consume = [np.random.randint(3, 19) for i in range(num_cars)]
        truck_consume = [np.random.randint( 8, 32) for i in range(num_trucks)]
        moto_consume = [np.random.randint( 2, 6) for i in range(num_motos)]
        sum_gas = np.sum(car_consume + truck_consume + moto_consume)
        return num_vehicle, num_cars, num_trucks, num_motos, sum_gas
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    vehicle_recordcars_recordtrucks_recordmotos_recordgas_recordP
    9201160301123620.01
    49202161301124470.05
    99213170311224980.10
    199215172321126170.20
    299228182341227230.30
    399245196361328410.40
    499254203381329650.50
    599259207381430890.60
    699262209391431990.70
    799276220411533320.80
    899288230431534680.90
    949297237441635360.95
    989299239441636160.99

    模拟结果:

    • 日消耗油量超过3536加仑的概率为:5%
    • 日耗油量超过3616加仑概率为:1%
    • 日耗油90%的区间为: P ( 2447 < = G < = 3536 ) = 0.90 P(2447 <= G <= 3536) = 0.90 P(2447<=G<=3536)=0.90
  • 相关阅读:
    Ubantu 20.04 卸载与安装 MySQL 5.7 详细教程
    第五十二天 数论
    Webpack vs Vite的核心差异
    Vuecli项目结构,及组件的使用
    Java 不同接口中含有相同签名方法
    python学习手册
    数字图像处理笔记(二)图像增强-直方图修改技术
    「Python条件结构」if…elif…else结构根据输入x的值求y的值(1)
    大顶堆,小顶堆结构添加,移除元素过程以及源码分析(Java)结合LeetCode347(前k个高频元素), 215(第k大的数), 295(数据流的中位数)
    flutter开发实战-TweenSequence实现动画序列
  • 原文地址:https://blog.csdn.net/u014281392/article/details/125475000