Probability Scilab中计算几何离散随机变量累积分布函数的程序问题
我写了一个程序,显示了几何分布的随机离散变量的累积分布函数和PMF图。但我遇到了一个问题:PMF的所有概率之和不是1,而是非常接近1。当我看到这一点时,我切换到Matlab,在那里我使用了函数:geocdf。因此,我观察到CDF的第一个值,取p0.6,n=10,是0.84,而不是预期的0.6。你能帮我找出我的程序出了什么问题吗?以下是我在Scilab中编写的脚本:Probability Scilab中计算几何离散随机变量累积分布函数的程序问题,probability,scilab,cumulative-sum,Probability,Scilab,Cumulative Sum,我写了一个程序,显示了几何分布的随机离散变量的累积分布函数和PMF图。但我遇到了一个问题:PMF的所有概率之和不是1,而是非常接近1。当我看到这一点时,我切换到Matlab,在那里我使用了函数:geocdf。因此,我观察到CDF的第一个值,取p0.6,n=10,是0.84,而不是预期的0.6。你能帮我找出我的程序出了什么问题吗?以下是我在Scilab中编写的脚本: n = input('n = '); tab = zeros(2, n); p = input('p = ');//prob
n = input('n = ');
tab = zeros(2, n);
p = input('p = ');//probability
q = 1 - p;
for k = 1:n
tab(1,k) = k;
tab(2,k) = (q^(k - 1))*p;
end
subplot(1,2,1);
plot(tab(1,:), tab(2,:), "-");
F = cumsum(tab(2, :));//cumulative distribution
subplot(1,2,2);
plot2d2(tab(1,:), F);
disp([tab' F']);
Mean = 1/p;
Variance = q/(p^2);
mprintf('\nMedia = %g, Dispersia = %g', Mean, Variance);
PMF的所有概率之和不是1
您不可能添加所有概率,因为几何分布将非零概率分配给所有正整数。如果将总和计算到n=10,则概率之和明显小于1。如果最多运行20次,则输出中的累积值将四舍五入为1:
1. 0.6 0.6
2. 0.24 0.84
3. 0.096 0.936
4. 0.0384 0.9744
5. 0.01536 0.98976
6. 0.006144 0.995904
7. 0.0024576 0.9983616
8. 0.0009830 0.9993446
9. 0.0003932 0.9997379
10. 0.0001573 0.9998951
11. 0.0000629 0.9999581
12. 0.0000252 0.9999832
13. 0.0000101 0.9999933
14. 0.0000040 0.9999973
15. 0.0000016 0.9999989
16. 0.0000006 0.9999996
17. 0.0000003 0.9999998
18. 0.0000001 0.9999999
19. 4.123D-08 1.0000000
20. 1.649D-08 1.0000000
CDF的第一个值,取p0.6,n=10,0.84,而不是预期的0.6
几何分布有两种版本,如本文开头所述。您的代码遵循第一个约定,集合1、2、3……支持PMF,。。。。Matlab的geocdf
使用第二种约定,PMF支持0,1,2,3。。。geocdf(1,0.6)
的输出为0.84,表示0和1的概率之和。geocdf(0,0.6)
的输出为0.6