-3

我对对数正态分布的概率密度函数 (pdf) 有疑问。我真的需要你的帮助。由维基百科定义: http ://en.wikipedia.org/wiki/Log-normal_distribution#Probability_density_function

对数正态分布的概率密度函数为:

对数正态分布的pdf

我的问题是,如何在 MATLAB 中定义 x 变量?谢谢你的帮助!

4

2 回答 2

1

如果你有Stats 工具箱,你可以使用lognpdf

y = lognpdf(x,mu,sigma);

虽然这是一个非常简单的函数 - 完全矢量化,但它实际上只是:

y = exp(-0.5*((log(x)-mu)./sigma).^2)./(x.*sqrt(2*pi).*sigma);

但是你可能想检查一下x > 0sig > 0。要在您引用的 Wikipedia 文章上创建此图,您可以执行以下操作:

mu = 0;
sigma = [1;0.5;0.25];
x = 0:0.01:3;
y = lognpdf([x;x;x],mu,sigma(:,ones(1,length(x))));
figure; plot(x,y);

当您的问题询问定义x时,也许您实际上是在寻找对数正态分布的随机变量,即,您想从对数正态 PDF/分布中随机抽样?在这种情况下,您可以使用lognrnd

r = lognrnd(mu,sigma);
于 2013-06-27T21:28:25.090 回答
1

我很困惑,就像你可以在单行中做到这一点,

fun = @(x,mu,sigma) (1./(x*sigma*sqrt(2*pi))).*exp( -(power((log(x)-mu),2))/(2*power(sigma,2)))

x是任何满足x > 0的值,pdf通过维基百科告诉你

在概率论中,概率密度函数 (pdf) 或连续随机变量的密度是描述该随机变量取给定值的相对可能性的函数。

因此,给定对数正态 pdf 的任何值都会x告诉您随机变量可能是该值的相对可能性。

考虑这个玩具示例:

mu = 1;
sigma = 10;
x = logspace(-2,0,10);
plot( x, fun(x,1,10) )

对数图

从该图中,x随着接近于零,实际获取该值的相对可能性会增加。 免责声明我只是把那个函数放在一起,需要检查它的准确性,前面只是为了说明。

于 2013-06-27T21:12:01.177 回答