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

2022-02-13 17:42:32 +08:00
 DuDuDu0o0
今天下午看书想到一个问题。
假设下 50 年一遇的暴雨的概率是 1 / 50,
那么我想预测接下来两年都下暴雨的概率是多少,这肯定是要使用泊松分布去计算的。算出来之后是 0.0007

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


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

你的例子里面 n = 2 ,太小了。
ipwx
2022-02-13 18:42:29 +08:00
ps ,泊松分布一般用于连续分布不需要考虑这么多的原因是,连续分布可以看做无限小时间 δt 内发生某件事的概率都等于一个无限小的 p (连续时间推广的二项分布)。这种模型下显然 n 是无限大,p 是无限小,取极限得到泊松分布
xsx107
2022-02-14 01:55:15 +08:00
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
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
2022-02-14 12:14:37 +08:00
@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
2022-02-14 12:21:43 +08:00
xsx107
2022-02-14 12:24:01 +08:00
@ipwx 不好意思上面那个不小心按到回复了。我应该补充一下,柏松分布 P ( Y=2 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。
DuDuDu0o0
2022-02-14 12:58:08 +08:00
@xsx107 @ipwx 感谢几位大佬地回复,不要讨论出火气。
两年都下暴雨是指,接下来两年,每年都发生过暴雨(一年一次)。

我昨晚又看了些资料,我现在的理解是:二项只能用在单位时间内发生一个现象的情况,所以下暴雨这个现象不能用“年”这个单位时间。
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
2022-02-14 13:16:53 +08:00
@DuDuDu0o0

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

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

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

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

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

用柏松分布的意思是,接下来的两年(单位时间内)会发生很多雨,但是其中有种大雨( 50 年一遇,或者 1 年 1/50 遇,或者 2 年 1/25 遇)在单位时间(两年内)发生 2 次的概率
necomancer
2022-02-21 17:59:43 +08:00
不是要么下要么不下,而是要么下 50 年大雨要么不下 50 年的大雨

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833570

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX