用Matlab求高斯分布的概率

用Matlab求高斯分布的概率,matlab,statistics,distribution,gaussian,Matlab,Statistics,Distribution,Gaussian,最初的问题是制作一个灯泡的模型,它全天候使用,通常持续25天。一盒灯泡包含12个灯泡。这个盒子使用时间超过一年的可能性有多大 我不得不使用MATLAB来建立一个基于指数变量的高斯曲线模型。 下面的代码生成一个高斯模型,平均值=300,标准值=sqrt(12)*25。 我之所以要使用这么多不同的变量并把它们加起来,是因为我本应该演示中心极限定理。高斯曲线表示一盒灯泡持续#天的概率,其中300是一盒灯泡持续的平均天数 我无法使用我生成的高斯分布,无法找到天数>365的概率。语句1-normcdf(3

最初的问题是制作一个灯泡的模型,它全天候使用,通常持续25天。一盒灯泡包含12个灯泡。这个盒子使用时间超过一年的可能性有多大

我不得不使用MATLAB来建立一个基于指数变量的高斯曲线模型。 下面的代码生成一个高斯模型,平均值=300,标准值=sqrt(12)*25。 我之所以要使用这么多不同的变量并把它们加起来,是因为我本应该演示中心极限定理。高斯曲线表示一盒灯泡持续#天的概率,其中300是一盒灯泡持续的平均天数

我无法使用我生成的高斯分布,无法找到天数>365的概率。语句1-normcdf(365300,sqrt(12)*25)试图计算出概率的期望值,我得到了.2265如果您有任何关于如何根据我生成的高斯分布计算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)]);

[f,y]=ecdf(x)
将为
x
中的数据创建一个。然后,您可以找到它第一次穿过365的概率,以获得您的答案。

生成
N
复制的
x
,其中N应该是几千或几万。然后
p-hat=count(x>365)/N
,标准错误为
sqrt[p-hat*(1-p-hat)/N]
。复制次数越大,估计的误差幅度就越小


当我在JMP中使用
N
=10000时,我得到了
[0.2039,0.2199]
作为一盒灯泡持续一年以上时间的95%CI。与您的值0.2265的差异,以及10000个结果的柱状图,表明实际分布仍有一定的偏差。换言之,对12个指数之和使用CLT近似将给出稍微偏离的答案

你的高斯分布代表什么?这是一个灯泡的持续时间吗?盒子里还有多少灯泡?请更新你的帖子。我相信高斯分布代表了一盒灯泡持续几天的可能性。300通常是一个盒子的平均寿命。为什么你的
std=sqrt(12)*25?你确定答案.2265是错的吗?答案.2265是对的,但这是期望值,我需要使用我生成的高斯函数来提取一个类似的值,应该在~.21左右。性病是给我的我不明白你的问题。我运行了你的代码,得到了0.22646。在我看来这是正确的
normcdf(365300,sqrt(12)*25)
是指它们持续一年的概率,
1-normcdf(365300,sqrt(12)*25)
将持续一年以上。如果您在
normcdf
中使用
mean_x
stx_x
而不是硬编码值,那会更好。我尝试使用[f,y]=ecdf(binsx),它给了我一个概率与天数的曲线图,但是当我查看365时,概率大约是.4579,因为我想要>365,1-.4579=.5421,这真的没有道理。如果我看一下高斯曲线,>365显然比0.5小得多。我不知道我是在做还是在想这个问题,我得到了0.7911=>p=0.2089。您希望找到y>365的第一个点,而不是f的元素365。您的ecdf()的输入是什么?请注意,我没有rant。我可以接受OP想要使用的不是
normcdf()
,但我不明白的是为什么
ecdf()
是比
normcdf
更好的解决方案。CLT的全部要点是,只要样本>28,就可以用正态近似任何分布。因此,这里的选择是
normcdf
,而不是
ecdf
。我认为OPs的原始代码也同样有效。无需
ecdf
。我同意你的评估。当原始代码已经足够时,我不明白为什么应该在这里使用
ecdf