Matlab logncdf函数没有产生预期的结果

时间:2016-07-25 00:18:49

标签: matlab

所以在这个问题上看起来非常直接我们得到了

x = 10,281的平均值,x = 4112.4的sigma

我们被要求确定P(X <15,000)

现在我认为matlab中的代码应该非常简单

mu = 10281
sigma = 4112.4
p = logncdf(15000,10281,4112.4)

然而,这给出了

p = .0063

给出的答案是.8790并且只看p,你可以说它是错的,因为我们在15000这超过了平均值,这意味着它应该高于.5。这个功能有什么处理?

我在某个地方看到你可能需要在函数中使用exp(15000)来导致x的概率太高。

任何指针都会非常感激

1 个答案:

答案 0 :(得分:2)

%If X is lognormally distributed with parameters:-
mu = 10281;
sigma = 4112.4;

%then log(X) is normally distributed with following parameters:
mew_actual = log((mu^2)/sqrt(sigma^2+mu^2));
sigma_actual = sqrt(log((sigma^2)/(mu^2) +1));

现在您可以使用以下任一方法计算CDF: -

p = cdf('Normal',log(15000),mew_actual,sigma_actual)

p=logncdf(15000,mew_actual,sigma_actual)

给出了0.8796 (我相信这是正确答案)

给你的答案是0.8790,因为如果你手工解决问题,你会得到类似:z = 1.172759的内容,当你在表格中看到这个值时,你只能找到z = 1.17(没有其余的小数位)和φ(z)=0.8790

您可以使用this calculator验证确切答案。相关的屏幕截图如下:

exactvalue