便民熱線和泊松分布-北太天元學(xué)習(xí)25
在一段固定的時(shí)間內(nèi)發(fā)生了事件的次數(shù)往往是一個(gè)隨機(jī)變量。
例如,我們對(duì)大城市的便民熱線12345的來電數(shù)量是一個(gè)隨機(jī)變量。
假設(shè)λ為每分鐘呼叫的平均次數(shù)(假設(shè)該數(shù)字為固定常數(shù))。
我們想研究某個(gè)固定時(shí)間內(nèi)呼叫次數(shù)這個(gè)隨機(jī)變量的分布情況,
顯然,這個(gè)隨機(jī)變量的取值為非負(fù)整數(shù)。
為了研究這個(gè)問題,假設(shè)我們把1分鐘平均分成n等分,假設(shè)
[0,1/n),[1/2, 2/n), ..., 這個(gè)n個(gè)小時(shí)間區(qū)間內(nèi),呼叫的概率是相等,
為了是的平均每分鐘的呼叫次數(shù)是λ, 我們?cè)O(shè)置每個(gè)小時(shí)間區(qū)間內(nèi)
發(fā)生呼叫的概率是 λ/n, 我們假設(shè)這個(gè)時(shí)間小區(qū)間的長(zhǎng)度是充分的小,
保證每個(gè)小時(shí)間區(qū)間內(nèi)要么發(fā)生呼叫(而且呼叫最多只發(fā)生一次),要么沒有發(fā)生呼叫,
發(fā)生呼叫的概率是? λ/n , 沒有發(fā)生呼叫的概率是 1 -? λ/n.
再假設(shè)不同小區(qū)間內(nèi)是否發(fā)生呼叫是相互獨(dú)立的。 這樣我們就把1分鐘
內(nèi)發(fā)生呼叫多少次的問題轉(zhuǎn)換成了 n個(gè)獨(dú)立的重復(fù)試驗(yàn)的成功與失敗的
問題,成功對(duì)應(yīng)一次呼叫發(fā)生。 這樣,我們就可以利用二項(xiàng)分布的概率
來計(jì)算
P(X = k) = C_n^n * p^k * (1-p)^k
其中, p =? λ/n,? C_n^k 是從n個(gè)不同的元素選擇k個(gè)的組合數(shù)。
讓 n 趨向于無窮大,我們得到的極限是
P(X = k ) =? λ^k / k! exp(-λ).
這個(gè)推導(dǎo)過程用到了 (1 - λ/n)^n 在n 趨向于正無窮時(shí)的極限是exp(- λ),
如果是高中生看到這兒,暫時(shí)忽略如何求極限的問題,直接讀下面一段。
我們來比較一下 B(n,p) 和 Poisson(λ) 在滿足 λ = n*p 時(shí)候的概率, 記X ~ B(n,p), Y ~ Poisson(n*p)??? 比較 P(X=k) 和 P(Y=k) , 例如 n=1000, p=0.001, ?
用北太天元的計(jì)算如果如下:
北太天元計(jì)算二項(xiàng)分布B(1000,0.0010)和Poisson(1.0000)分布的概率
二項(xiàng)分布概率P(X = 1)=0.3677, 泊松分布P(Y=1)=0.3679
二項(xiàng)分布概率P(X = 2)=0.3681, 泊松分布P(Y=2)=0.3679
二項(xiàng)分布概率P(X = 3)=0.1840, 泊松分布P(Y=3)=0.1839
二項(xiàng)分布概率P(X = 4)=0.0613, 泊松分布P(Y=4)=0.0613
二項(xiàng)分布概率P(X = 5)=0.0153, 泊松分布P(Y=5)=0.0153
?

如果一個(gè)隨機(jī)變量取值為0,1,2,... 的隨機(jī)變量,且滿足
P(X = k ) =? λ^k / k! exp(-λ),
那么我們稱X 服從參數(shù)為λ 的泊松分布,記作 X ~ Poisson(-λ).
這里的λ 有時(shí)被稱為X的速率參數(shù)。X=k 表示在1分鐘接到k次電話的時(shí)間
發(fā)生。 在其它情形下,根據(jù)上下文,我們還可以說k是一段時(shí)間內(nèi)事件發(fā)生
次數(shù)或放射出某種粒子的數(shù)量。
假設(shè)電話以每分鐘λ=5個(gè)電話的平均速率呼入便民熱線12345。
(a) 找出一分鐘內(nèi)正好有4個(gè)電話呼入的概率。
(b) 找出在10分鐘的時(shí)間內(nèi)發(fā)生少于45個(gè)呼叫的概率。
我們假設(shè)一分鐘呼入電話的次數(shù)是服從速率參數(shù)是5的泊松分布,
從而得到
P(X=4) = 5^4/4! *exp(?4)
用北太天元計(jì)算
Input [6] >> lambda = 5
lambda =
? 1x1 double
?? 5
Input [7] >> lambda^4/factorial(4)*exp(-lambda)
ans =
? 1x1 double
??? 0.1755
要回答(b),我們需要找到每10分鐘的平均通話次數(shù),即λ=5*10=50。
我們要找到P(X<45)
在北太天元中使用下面的命令計(jì)算
Input [16] >> lambda = 5*10;
Input [17] >> k=0:44;
Input [18] >> fk = zeros(size(k));
Input [19] >> for n=0:44
?????? ... >>?? fk(n+1) = factorial(n);
?????? ... >>?? end
Input [20] >> sum( lambda.^k ./ fk * exp(-lambda) )
ans =
? 1x1 double
??? 0.2210
我們的概率大約是0.2210。
畫圖的腳本如下:
close all; clear all; clc
n = 1000; ?% 試驗(yàn)的次數(shù)
p = 0.001; % 做一次試驗(yàn)時(shí),事件A發(fā)生的概率
f = binomial_p(n,p);
fp = poisson_p(n*p, n);
ind = find(f> 0.01)
bar(ind,[f(ind);fp(ind)]);
xlabel("事件A發(fā)生的次數(shù)X")
ylabel("概率")
str = sprintf( ...
"北太天元計(jì)算二項(xiàng)分布B(%d,%3.4f)和Poisson(%3.4f)分布的概率", n, p,n*p)
title(str)
legend('二項(xiàng)分布','泊松分布');
fprintf("北太天元計(jì)算二項(xiàng)分布B(%d,%3.4f)和Poisson(%3.4f)...
分布的概率\n",n,p,n*p);
for i=ind
fprintf("二項(xiàng)分布概率P(X = %d)=%1.4f, 泊松分布P(Y=%d)=%1.4f\n", ...
i, f(i), ?i, fp(i) );
end
% 伯努利試驗(yàn),總試驗(yàn)次數(shù)時(shí)n, ?事件A發(fā)生的總次數(shù)X
% 時(shí)一個(gè)隨機(jī)變量,可能的取值為 0,1,..., n
% X=k 表示 總試驗(yàn)次數(shù)是n時(shí),事件A總共發(fā)生了k次,
% X=k 發(fā)生的概率是
% p(X=k) = nchoosek(n,k) * p^k * q^(n-1)
%
function f = binomial_p(n,p)
f = zeros(1,n+1); % 對(duì)二項(xiàng)分布的概率f賦初值
for k=0:1:n; % 事件A發(fā)生k次,求二項(xiàng)分布f,即成功k次的概率
f(k+1) = nchoosek(n,k) *p^k * (1-p)^(n-k);
end
end
% 從n個(gè)不同元素中取出k個(gè)元素的組合數(shù)
% ?cnk = ?n!/(k! * (n-k)!)
% ?第二個(gè)算法 cnk = ?1/(n-1)*beta(k+1,n-k) 這里的beta是beta函數(shù)
function ?cnk = nchoosek(n,k)
if(n==k || k==0)
cnk = 1;
return;
end
%cnk = (factorial(n)/factorial(n-k)/factorial(k))
cnk = 1/(n-k)/beta(k+1,n-k)
end
function f = poisson_p(lambda,n)
f = exp(-lambda)*ones(1,n+1);
for k=1:n
f(k+1) = f(k)*lambda/k;
end
end
北太天元運(yùn)行這個(gè)腳本的截屏圖如下:
