1
lance6716 2022-02-13 18:03:32 +08:00 via Android
展开讲讲
|
2
Jooooooooo 2022-02-13 18:05:51 +08:00 3
这咋会用泊松分布去算...
|
3
oldshensheep 2022-02-13 18:12:26 +08:00
如果每年的下雨概率是随机独立的那就是二项分布啊……
自然界中很多事件都是泊松分布,用二项分布的算法是错得应该。 |
4
rudy1224 2022-02-13 18:16:55 +08:00
泊松是单位时间内多少次
|
5
ipwx 2022-02-13 18:40:38 +08:00
“当二项分布的 n 很大而 p 很小时,泊松分布可作为二项分布的近似,其中λ为 np 。通常当 n≧20,p≦0.05 时,就可以用泊松公式近似得计算。”
你的例子里面 n = 2 ,太小了。 |
6
ipwx 2022-02-13 18:42:29 +08:00 3
ps ,泊松分布一般用于连续分布不需要考虑这么多的原因是,连续分布可以看做无限小时间 δt 内发生某件事的概率都等于一个无限小的 p (连续时间推广的二项分布)。这种模型下显然 n 是无限大,p 是无限小,取极限得到泊松分布
|
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)。 |
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 计算,避免精度问题) |
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)。 |
11
xsx107 2022-02-14 12:24:01 +08:00 via iPhone
@ipwx 不好意思上面那个不小心按到回复了。我应该补充一下,柏松分布 P ( Y=2 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。
|
12
DuDuDu0o0 OP |
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 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。” 同意。所以锅是楼主的,他的问题陈述有点问题(笑~) |
14
ipwx 2022-02-14 13:16:53 +08:00
@DuDuDu0o0
“二项只能用在单位时间内发生一个现象的情况,所以下暴雨这个现象不能用“年”这个单位时间。” 没错,所以 @xsx107 也说了,"柏松分布 P ( Y=2 )算出来的是在两年区间内,任意时间发生两次的概率,所以跟第一年发生有且只有一次,同时第二年发生有且只有一次,是有区别的。" 直观感觉一下你们这两句话说的是一件事。只不过 @xsx107 说的太一板一眼的(数学形式定义)了,而我的习惯是用感受数学形式。所以上来我不太适应。 当然我说的不是生活经验去感受。我的倾向是对某个抽象层次建立直观感受以后,用这个抽象层次去理解更高抽象层次的数学概念。直接套公式,纯公式推导我很弱的。我只能先建立对线性空间和正交基的直观理解,我才能理解 PCA 和傅里叶分解,才会推公式解决问题。如果我没理解正交基,我对傅里叶其实一点都不会用。。 所以我对泊松分布这玩意儿的数学形式其实不太会用,直到我用无限小单位时间的二项分布去理解它以后,我才会用了。。。 |
15
DuDuDu0o0 OP @ipwx 感谢,再请教一下,如果是”第一年发生有且只有一次,同时第二年发生有且只有一次“,这种前提的话,使用二项分布是正确的吗?
|
16
necomancer 2022-02-21 17:54:29 +08:00
1/50 1/50 是如果按照一年就下一场雨,要么下要么不下,就是扔一个超有偏硬币 1:49 ,扔两次,连续扔出两个正面的概率
用柏松分布的意思是,接下来的两年(单位时间内)会发生很多雨,但是其中有种大雨( 50 年一遇,或者 1 年 1/50 遇,或者 2 年 1/25 遇)在单位时间(两年内)发生 2 次的概率 |
17
necomancer 2022-02-21 17:59:43 +08:00
不是要么下要么不下,而是要么下 50 年大雨要么不下 50 年的大雨
|