V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DuDuDu0o0
V2EX  ›  数学

使用泊松分布计算和概率直接相乘有什么区别

  •  
  •   DuDuDu0o0 · 2022-02-13 17:42:32 +08:00 · 1905 次点击
    这是一个创建于 774 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天下午看书想到一个问题。
    假设下 50 年一遇的暴雨的概率是 1 / 50,
    那么我想预测接下来两年都下暴雨的概率是多少,这肯定是要使用泊松分布去计算的。算出来之后是 0.0007

    但是如果直接使用 概率相乘的话有什么错吗 (1/50) *(1/50)。答案是 0.0004


    请问我忽略了什么前置条件吗?
    17 条回复    2022-02-21 17:59:43 +08:00
    lance6716
        1
    lance6716  
       2022-02-13 18:03:32 +08:00 via Android
    展开讲讲
    Jooooooooo
        2
    Jooooooooo  
       2022-02-13 18:05:51 +08:00   ❤️ 3
    这咋会用泊松分布去算...
    oldshensheep
        3
    oldshensheep  
       2022-02-13 18:12:26 +08:00
    如果每年的下雨概率是随机独立的那就是二项分布啊……
    自然界中很多事件都是泊松分布,用二项分布的算法是错得应该。
    rudy1224
        4
    rudy1224  
       2022-02-13 18:16:55 +08:00
    泊松是单位时间内多少次
    ipwx
        5
    ipwx  
       2022-02-13 18:40:38 +08:00
    “当二项分布的 n 很大而 p 很小时,泊松分布可作为二项分布的近似,其中λ为 np 。通常当 n≧20,p≦0.05 时,就可以用泊松公式近似得计算。”

    你的例子里面 n = 2 ,太小了。
    ipwx
        6
    ipwx  
       2022-02-13 18:42:29 +08:00   ❤️ 3
    ps ,泊松分布一般用于连续分布不需要考虑这么多的原因是,连续分布可以看做无限小时间 δt 内发生某件事的概率都等于一个无限小的 p (连续时间推广的二项分布)。这种模型下显然 n 是无限大,p 是无限小,取极限得到泊松分布
    xsx107
        7
    xsx107  
       2022-02-14 01:55:15 +08:00 via iPhone
    OP 我觉得你没看懂柏松分布。

    首先,“ 假设下 50 年一遇的暴雨的概率是 1 / 50”描述的是一个随机变量 X 符合柏松分布,其均值(或者说参数)是 1/50 。如果要赋予一定的现实意义,X 描述的是一年内发生均值为 1/50 的暴雨(也就是 50 年一遇暴雨)的次数。P(X=k)描述的是一年内发生 k 次的概率。

    如果你要计算一年内发生均值为 1/50 暴雨一次的概率,你用 P(X=1)然后套柏松分布公式算。让我觉得你没看懂的是你要算“接下来两年都下( 50 年一遇的)暴雨的概率”,而你尝试用柏松分布。

    下面分情况讨论你说的“接下来两年都下( 50 年一遇的)暴雨的概率”的意思:
    1. 你要算第一年下了该种大雨,同时第二年又下了该种大雨,此时你应该用 P(X=1)*P(X=1). X 是我上面定义的柏松分布。
    2. 你要算的是区间为两年,但是两年内下了一场 50 年一遇大雨的概率。那么你需要一个新的柏松分布随机变量 Y 。Y 的均值是 1/25 (想象年*的计量现在是 2 年,所以 50 年一遇变成了 25 年*一遇)。所以该概率为 P(Y=1)。
    3. 你要算的是区间为两年,但是两年内下了两场 50 年一遇大雨的概率:P(Y=2)。
    ipwx
        8
    ipwx  
       2022-02-14 10:34:56 +08:00
    @xsx107 我觉得你没有看懂泊松分布。

    楼主的 0.007 是令 λ = 2 * (1/50) = 1/25, k = 2 代入泊松分布求得的。他这一做法的问题是 n 太小以至于泊松分布不能有效逼近二项分布。泊松分布和二项分布的关系是在事件可以无限次发生时,无限大 n 之下取二项分布极限得到的连续时间分布。不像二项分布是离散时间分布。

    不信你看这个计算结果:

    https://ideone.com/iLssqO

    ```
    import numpy as np

    Poisson = lambda L,k: np.exp(k * np.log(L) - np.sum(np.log(np.arange(1,k+1))) - L)
    Binomial = lambda p,n,k: np.exp(np.sum(np.log(np.arange(1, n+1))) - np.sum(np.log(np.arange(1, k+1))) - np.sum(np.log(np.arange(1,n-k+1))) + k*np.log(p) + (n-k)*(np.log1p(-p)))

    # 2 年遇到 2 次 50 年一遇暴雨
    print(Poisson(2*(1/50),2))
    print(Binomial(1/50,2,2))

    # 30 年遇到 4 次 50 年一遇暴雨
    print(Poisson(30*(1/50),4))
    print(Binomial(1/50,30,4))

    # 800 年遇到 17 次 1000 年一遇暴雨
    print(Poisson(800*(1/1000),17))
    print(Binomial(1/1000,800,17))
    ```

    输出

    ```
    0.0007686315513218588
    0.0004000000000000001
    0.0029635828349077443
    0.002593150704191794
    2.844629294599255e-17
    2.4372248967573228e-17
    ```

    可以看到 n 很大 p 很小时,泊松分布是二项分布很好的近似。

    (上述计算过程全程使用 log 计算,避免精度问题)
    xsx107
        9
    xsx107  
       2022-02-14 12:14:37 +08:00 via iPhone
    @ipwx 我觉得你没看清楚我的回复,而且我不认为我的概率论有任何问题,不然我教学生都教错了。

    首先,我不清楚楼主的楼主指的“接下来两年都下暴雨”指的是什么,我也没有去验证楼主的概率是怎么来的,所以我解释了不同种概率的计算过程。

    其次,你给的概率计算跟我说的不是一样的吗。如果楼主说的是 2 年内遇到两次 50 年一遇大雨的概率,那么就是 P(Y=2), Y 的符合均值是 1/25 的柏松分布。

    如果楼主指的是任意两年,第一年发生有且只有一次 50 年一遇的大雨,并且第二年也发生有且只有一次,那么我们需要一个新的随机变量 Z ,含义为一年内发生一次 50 年一遇大雨的概率。该变量是伯努利分布,参数 p=P(X=1),其中 X 是柏松分布,均值为 1/50 。显然 Z 在第一年和第二年都是 iid 。那么连续两年(意思是第一年有 50 年一遇的大雨,同时第二年也有)发生 50 年一遇大雨的概率为 p^2.

    最后,你说的没有错,事件发生在时间上是连续的,所以自然不能用二项分布求。如果要用二项分布,可以定义一个新随机变量 V ,该变量符合伯努利分布,是每小时(按你说的 N 很大所以时间区间很小)发生 1/50 年一遇大雨的概率 q=1/50/365/24 (近似值)。然后可以用二项分布求两年( 24*365*2 小时)内发生两次 50 年一遇大雨的概率。该概率会非常接近 P(Y=2)。
    xsx107
        10
    xsx107  
       2022-02-14 12:21:43 +08:00 via iPhone
    xsx107
        11
    xsx107  
       2022-02-14 12:24:01 +08:00 via iPhone
    @ipwx 不好意思上面那个不小心按到回复了。我应该补充一下,柏松分布 P ( Y=2 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。
    DuDuDu0o0
        12
    DuDuDu0o0  
    OP
       2022-02-14 12:58:08 +08:00 via Android
    @xsx107 @ipwx 感谢几位大佬地回复,不要讨论出火气。
    两年都下暴雨是指,接下来两年,每年都发生过暴雨(一年一次)。

    我昨晚又看了些资料,我现在的理解是:二项只能用在单位时间内发生一个现象的情况,所以下暴雨这个现象不能用“年”这个单位时间。
    ipwx
        13
    ipwx  
       2022-02-14 13:12:31 +08:00
    @xsx107

    "最后,你说的没有错,事件发生在时间上是连续的,所以自然不能用二项分布求。如果要用二项分布,可以定义一个新随机变量 V ,该变量符合伯努利分布,是每小时(按你说的 N 很大所以时间区间很小)发生 1/50 年一遇大雨的概率 q=1/50/365/24 (近似值)。然后可以用二项分布求两年( 24*365*2 小时)内发生两次 50 年一遇大雨的概率。该概率会非常接近 P(Y=2)。"

    “柏松分布 P ( Y=2 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。”

    同意。所以锅是楼主的,他的问题陈述有点问题(笑~)
    ipwx
        14
    ipwx  
       2022-02-14 13:16:53 +08:00
    @DuDuDu0o0

    “二项只能用在单位时间内发生一个现象的情况,所以下暴雨这个现象不能用“年”这个单位时间。”

    没错,所以 @xsx107 也说了,"柏松分布 P ( Y=2 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。"

    直观感觉一下你们这两句话说的是一件事。只不过 @xsx107 说的太一板一眼的(数学形式定义)了,而我的习惯是用感受数学形式。所以上来我不太适应。

    当然我说的不是生活经验去感受。我的倾向是对某个抽象层次建立直观感受以后,用这个抽象层次去理解更高抽象层次的数学概念。直接套公式,纯公式推导我很弱的。我只能先建立对线性空间和正交基的直观理解,我才能理解 PCA 和傅里叶分解,才会推公式解决问题。如果我没理解正交基,我对傅里叶其实一点都不会用。。

    所以我对泊松分布这玩意儿的数学形式其实不太会用,直到我用无限小单位时间的二项分布去理解它以后,我才会用了。。。
    DuDuDu0o0
        15
    DuDuDu0o0  
    OP
       2022-02-14 15:02:24 +08:00
    @ipwx 感谢,再请教一下,如果是”第一年发生有且只有一次,同时第二年发生有且只有一次“,这种前提的话,使用二项分布是正确的吗?
    necomancer
        16
    necomancer  
       2022-02-21 17:54:29 +08:00
    1/50 1/50 是如果按照一年就下一场雨,要么下要么不下,就是扔一个超有偏硬币 1:49 ,扔两次,连续扔出两个正面的概率

    用柏松分布的意思是,接下来的两年(单位时间内)会发生很多雨,但是其中有种大雨( 50 年一遇,或者 1 年 1/50 遇,或者 2 年 1/25 遇)在单位时间(两年内)发生 2 次的概率
    necomancer
        17
    necomancer  
       2022-02-21 17:59:43 +08:00
    不是要么下要么不下,而是要么下 50 年大雨要么不下 50 年的大雨
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5308 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:59 · PVG 13:59 · LAX 22:59 · JFK 01:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.