简介
正态分布的概率密度分布函数(probability density function,常简写为pdf):
y
=
f
(
x
∣
μ
,
σ
)
=
1
σ
2
π
e
−
(
x
−
μ
)
2
2
σ
2
y=f(x \mid \mu, \sigma)=\frac{1}{\sigma \sqrt{2 \pi}} e^{\frac{-(x-\mu)^{2}}{2 \sigma^{2}}}
y=f(x∣μ,σ)=σ2π1e2σ2−(x−μ)2
正态分布的累积分布函数(Cumulative Distribution Function,常简写为cdf):
p
=
F
(
x
∣
μ
,
σ
)
=
1
σ
2
π
∫
−
∞
x
e
−
(
t
−
μ
)
2
2
σ
2
d
t
p=F(x \mid \mu, \sigma)=\frac{1}{\sigma \sqrt{2 \pi}} \int_{-\infty}^{x} e^{\frac{-(t-\mu)^{2}}{2 \sigma^{2}}} d t
p=F(x∣μ,σ)=σ2π1∫−∞xe2σ2−(t−μ)2dt
相关函数
histogram(x, nbins)
: 画直方图
normpdf(x, mu, sigma)
:计算概率密度函数
normcdf(x, mu, sigma)
:计算累计分布函数
normplot(x)
:画出数据的累积分布图,与理论的正态分布对比,看该数据是否符合正态分布
cdfplot(x)
:画出数据的累计分布函数图
实例1
生成一组
μ
=
0
,
σ
=
1
\mu=0,\sigma=1
μ=0,σ=1的标准正态分布数据。然后用histogram
分别画出4种分布图:count(计数),probability(相对概率),pdf(概率密度函数),cdf(累计分布函数)。
其中在pdf和cdf子图中,再分别画出用normpdf
和normcdf
计算出的理论曲线。
mu = 0;
sigma = 1;
x = normrnd(mu,sigma,1000,1);
nbins = 31;
a = linspace(-4,4,100);
y1 = normpdf(a, mu,sigma);
y2 = normcdf(a, mu,sigma);
figure();
subplot(221)
histogram(x, nbins, 'Normalization', 'count')
title('count')
subplot(222)
histogram(x,nbins, 'Normalization', 'probability')
title('probability')
subplot(223)
hold on;
histogram(x,nbins, 'Normalization', 'pdf')
plot(a, y1, 'LineWidth',1.5)
title('pdf')
subplot(224)
histogram(x,nbins, 'Normalization', 'cdf')
hold on;
plot(a, y2, 'LineWidth',1.5)
title('cdf')
figure();
normplot(x)
结果:
实例2:normplot
生成一组 μ = 0 , σ = 1 \mu=0,\sigma=1 μ=0,σ=1的标准正态分布数据
- 用
normplot
来判断该数据是否符合正态分布; - 用
cdfplot
+normcdf
来判断该数据是否符合正态分布;
mu = 0;
sigma = 1;
x = normrnd(mu,sigma,1000,1);
a = linspace(-4, 4, 1000);
y = normcdf(a, mu, sigma);
figure();
subplot(121)
normplot(x);
subplot(122)
cdfplot(x)
hold on;
plot(a, y)
结果如下:
个人感觉第二种方式更好。