我似乎无法理解为什么下面给出的简单代码不起作用。我得到 P_j
值的 NaN
。
% Plotting the CDF for normally distributed variable
mu_j = 0.008;
simga_j = -0.002;
x= 0.008 -0.002*randn(100000,1);
X_j = min(x) : (max(x) - min(x))/100000 : max(x);
P_j = normcdf(X_j,0.008,-0.002);
figure(1)
plot(X_j,P_j);
谢谢
最佳答案
标准差应为正值。这是因为在统计中,其计算方式为sigma = sqrt(E[(X-mu)^2]))
。期望中的平方项永远都是正数。
如果您将 sigma_j
调整为 0.002
而不是 -0.002
,并更正代码中其他位置的值(例如当您计算x
和 P_j
),您应该会得到好的结果。
具体问题是因为 normcdf()
没有正确处理负西格玛,并返回 NaN
。
关于matlab - 获取正态分布变量的 CDF 值的 NaN : Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22589388/