正态分布介绍
推论统计几乎完全以正态分布为基础的它的重要性可想而知.像线性规划的残差就是以它为假设,然后也是通过它的基础求解的.
再来熟悉你下的函数,有必要经常看一下,建议自己动手把公式显示你的面前,还要认识它的不同的样子.
$$P(X) = \frac{1}{\sigma \sqrt{2\pi}}e^{-\frac{1}{2}\big(\frac{x-\mu}{\sigma} \big)^2}$$
也可以是
$$P(X) = \frac{1}{\sqrt{2\pi \sigma ^2}}e^{-\frac{(x-\mu)^2}{2\sigma ^2}}$$
也可是
$$P(X) = \frac{1}{\sqrt{2\pi \sigma ^2 e^{z^2}}} _{…其中z=\frac{x-\mu}{\sigma}}$$
$P(X) = \frac{1}{\sqrt{2\pi \sigma ^2}} \Big( e^ {\big(\frac{x-\mu}{\sigma} \big)^2} \Big)^{-\frac{1}{2}}$
$e^{-\frac{1}{2}a}=\big(e^a\big)^{-\frac{1}{2}}$
$z=\frac{x-\mu}{\sigma}$标准$z$分数,它并不是第一次出现.
图表
这是一个概率密度函数图形
下载表格,尝试更改里面的均值和标准差.
看看有哪些结论
- 均值$\mu$是它的对称轴.
- 标准差$\sigma$表示图形的宽窄,标准差越小,意味者数值越向平均值靠拢,在图像中就会呈现出窄的样子.(可以理解为标准差是同均值的某种平均距离)
- 二项分布是有限的,正太分布在整个实轴上都有定义.(尽管延伸出去概率极小,但也是存在的)
对于正态分布的概率,应该用两点间曲线下方的面积描述.
它的计算应该对函数求解积分.但是这个积分过于难求,因此采用数值的方法求解(累积分布函数CDF).
CDF(x)是求面积的关于x的函数,它是概率密度曲线的积分,表示小于x的面积.
$$CDF(x)={\int_{-\infty}^{x}P(x)dx}$$
之前我用累积的方法在python中求解过.
在Excel中,正态分布函数
normdist
可以快速的求正态分布密度函数和累积函数
$normdist(x,\mu ,\sigma ,TRUE/FALSE)$TRUE表示求累积分布值,FALSE表示求概率密度函数的高值,在表格中使用函数,它会有自动提示.
这是一个累积分布函数图形
刚刚发现图片插入的不合适,值都和100%重合上了,不利于观察.(实际是没有重合的,表格中的数也是存在近似的)
没关系,只要明白$CDF(x)$对应的值是表示小于x的概率,这个图就会看了.
如果要求$a<x<b$的概率,只需要求$CDF(a)-CDF(b)$就可以了.
表格中的计算就是这样做的
python中的正态分布
在python中的科学计算包scipy
中,stats.norm.pdf(x),stats.norm.cdf(x)分别表示概率密度函数和累积函数,具体参数这里不做介绍.
下面是利用python绘图程序.
from scipy import exp, sqrt, stats
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mathtext as mathtext
def f(t):
return stats.norm.pdf(t) #默认标准正态分布 \mu=0 \sigma=1
z = 0.2
x = np.arange(-3, 3, 0.1)
y = f(x)
fig, (ax1, ax2) = plt.subplots(2, figsize=(8, 8))
ax1.set_ylim(0, 0.45)
ax1.plot(x, y) # 绘制标准正态分布
x2 = np.arange(-4, z, 1/40.)
sum = 0
delta = 0.001
s = np.arange(-10, z, delta)
for i in s:
sum += f(i) * delta # 累积
ax1.annotate(
'area is ' + str(round(sum, 4)), xy=(-1, 0.25), xytext=(-3.8, 0.4),
arrowprops=dict(facecolor='red', shrink=0.01)
)
ax1.annotate(
'z = ' + str(z), xy=(z, 0.01)
)
ax1.fill_between(x2, f(x2)) # 填充
def f2(x):
return stats.norm.cdf(x) # 计算标准正态分布累积
y1 = f2(x)
y2 = np.ones(len(x)) * 0.5
x3 = [0, 0]
y3 = [0, 1]
ax2.plot(x, y1, 'r')
ax2.plot(x, y2, 'b-')
ax2.plot(x3, y3)
ax2.scatter([z, z], [f2(z), 0], c='b', marker='o')
ax2.annotate(
'f(z)=f(' + str(z) + ') is ' + str(np.round(f2(z), 4)),
xy=(z, f2(z)), xytext=(z-3, f2(z)), arrowprops=dict(facecolor='red', shrink=0.01)
)
ax2.annotate(
'z is ' + str(z), xy=(z, 0), xytext=(1.5, 0.3),
arrowprops=dict(facecolor='blue', shrink=0.01)
)
ax2.set_xlim(-3, 3)
ax2.set_ylim(0, 1)
m = r'$\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}$'
parser = mathtext.MathTextParser('Bitmap')
r, depth = parser.to_rgba(m, color='k', fontsize=12, dpi=120)
fig.figimage(r.astype(float)/255., 450, 580)
plt.show()
多利用电子表格熟悉图形和数值之间的关系.
本节excel文件下载链接
博主个人能力有限,错误在所难免.
如发现错误请不要吝啬,发邮件给博主更正内容,在此提前鸣谢.
Email: JentChang@163.com (来信请注明文章标题,如果附带链接就更方便了)
你也可以在下方的留言板留下你宝贵的意见.