matlab - 获取正态分布变量的 CDF 值的 NaN : Matlab

标签 matlab normal-distribution cdf

我似乎无法理解为什么下面给出的简单代码不起作用。我得到 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,并更正代码中其他位置的值(例如当您计算xP_j),您应该会得到好的结果。

具体问题是因为 normcdf() 没有正确处理负西格玛,并返回 NaN

关于matlab - 获取正态分布变量的 CDF 值的 NaN : Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22589388/

相关文章:

c++ - 将 Vector 拆分为 block - 奇怪的结果

arrays - 如何保留一维数组的单调递增值

c++ - 用于测试系统稳定性的功能,它接收预测的时间序列作为输入

Python 朴素贝叶斯分类器中的偏度和峰度

python - Tensorflow 中多元正态分布的 CDF

matlab - 在 Octave/Matlab 中向量化 ODE

algorithm - 检查一个点是否在立方体内部(使用 matlab)

c++ - 如何使用正态分布生成最小值和最大值之间的整数?

r - 查找 beta 分布和正态分布之间的交集

c++ - C/C++ 中带参数的累积正态分布函数