Получение NaN для значений CDF нормально распределенной переменной: Matlab

Я не могу понять, почему мой простой код, приведенный ниже, не работает. Я получаю NaN для значений P_j.

% 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);

Спасибо


person user131983    schedule 23.03.2014    source источник


Ответы (1)


Стандартные отклонения должны быть положительными значениями. Это потому, что в статистике он рассчитывается как sigma = sqrt(E[(X-mu)^2])). Квадратный член внутри ожидания всегда будет только положительным.

Если вы настроите sigma_j на 0.002 вместо -0.002 и скорректируете значение в другом месте вашего кода (например, при вычислении x и P_j), вы должны получить хорошие результаты.

Конкретная проблема вызвана тем, что normcdf() неправильно обрабатывает отрицательную сигму и возвращает NaN.

person Glenn    schedule 23.03.2014