2014-10-30 173 views
1

最初的問題是模擬一個24/7全天候使用的燈泡,並且通常會持續25天。一盒燈泡包含12.盒子可能持續一年以上的概率是多少?使用Matlab查找高斯分佈的概率

我不得不使用MATLAB來建模一個基於指數變量的高斯曲線。 下面的代碼生成一個平均值= 300和std = sqrt(12)* 25的高斯模型。 我不得不使用如此多的不同變量並加上它們的原因是因爲我應該證明中心極限定理。高斯曲線表示一盒燈泡持續一天的概率,其中300是盒子將持續的平均天數。

我在使用生成的高斯函數和查找天> 365的概率時遇到了問題。聲明1-normcdf(365,300,sqrt(12)* 25)是試圖找出概率的預期值,我得到了.2265。 有關如何根據生成的高斯I來查找天> 365的概率的任何提示將不勝感激。

謝謝!

clear all 
samp_num=10000000; 
param=1/25; 
a=-log(rand(1,samp_num))/param; 
b=-log(rand(1,samp_num))/param; 
c=-log(rand(1,samp_num))/param; 
d=-log(rand(1,samp_num))/param; 
e=-log(rand(1,samp_num))/param; 
f=-log(rand(1,samp_num))/param; 
g=-log(rand(1,samp_num))/param; 
h=-log(rand(1,samp_num))/param; 
i=-log(rand(1,samp_num))/param; 
j=-log(rand(1,samp_num))/param; 
k=-log(rand(1,samp_num))/param; 
l=-log(rand(1,samp_num))/param; 
x=a+b+c+d+e+f+g+h+i+j+k+l; 


mean_x=mean(x); 
std_x=std(x); 
bin_sizex=.01*10/param; 
binsx=[0:bin_sizex:800]; 
u=hist(x,binsx); 
u1=u/samp_num; 

1-normcdf(365,300, sqrt(12)*25) 
bar(binsx,u1) 
legend(['mean=',num2str(mean_x),'std=',num2str(std_x)]); 
+0

你的高斯代表什麼?這是一個燈泡將持續多少小時?剩餘在一個盒子裏或其他東西的燈泡數量?請更新您的信息。 – kkuilla 2014-10-30 10:22:05

+0

我相信高斯表示一盒燈泡持續某些天數的概率。 300通常會持續多長時間,平均值。 – azumakazuma 2014-10-30 10:31:11

+0

爲什麼你的'std = sqrt(12)* 25'?你確定答案.2265是錯誤的嗎? – kkuilla 2014-10-30 11:14:04

回答

1

[f, y]=ecdf(x)x爲數據創建一個empirical cdf。然後你可以找到第一次穿過365的概率來得到你的答案。

+0

我試着用[f,y] = ecdf(binsx),它給出了概率與天數的關係圖,但是當我看365時,概率大約是4579,並且因爲我想> 365, .4579 = .5421,這真的沒有道理。如果我看高斯曲線,> 365顯然遠小於0.5。我不知道我是在做還是在想這個錯誤。 – azumakazuma 2014-10-30 13:13:17

+0

我得到0.7911 => p = 0.2089。你想找到y> 365的第一個點,而不是f的元素365。 – nivag 2014-10-30 14:18:02

+0

你的ecdf()的輸入是什麼? – azumakazuma 2014-10-30 14:24:18

0

生成N重複的x,其中N應該是數千或數萬。然後p-hat = count(x > 365)/N,並且有一個標準錯誤sqrt[p-hat * (1 - p-hat)/N]。重複次數越多,估計的誤差幅度越小。

當我在JMP上做了這個N = 10,000時,我以[0.2039, 0.2199]作爲95%可信區間,結果是一盒燈泡持續時間超過一年。與您的價值0.2265的差異以及10,000個結果的直方圖表明,實際分配仍然有些偏差。換句話說,對12個指數的總和使用CLT近似可以給出稍微偏離的答案。