切比雪夫不等式 & 大数定律 & 中心极限定理

本篇为《深度学习》系列博客的第五篇,该系列博客主要记录深度学习相关知识的学习过程和自己的理解,方便以后查阅。

上篇博客说道"均值和期望的联系是大数定理联系起来的‘,这里这里看到一篇博客讲解了基本的极限定理,这里做一下记录。

人们在长期的实践中发现,虽然个别事件在某次试验中可能发生也可能不发生,但在大量重复实验中却呈现明显的规律性,即一个随机事件发生的频率在某个固定数的附近摇摆,这就是所谓“频率的稳定性”(概率是频率随样本趋于无穷的极限)。

切比雪夫不等式

设随机变量X的数学期望 E ( X ) = μ E(X)=\mu E(X)=μ,方差 D ( X ) = σ 2 D(X)=\sigma ^{2} D(X)=σ2,对任意的 ε > 0 \varepsilon >0 ε>0,有:

P ( ∣ X − μ ∣ > = ε ) < = σ 2 ε 2 (1) P({|X-\mu|>=\varepsilon }) <= \frac{\sigma ^{2}}{\varepsilon^2} \tag{1} P(Xμ>=ε)<=ε2σ2(1)

即:

P ( ∣ X − μ ∣ < ε ) > = 1 − σ 2 ε 2 (2) P(|X-\mu|<\varepsilon) >= 1-\frac{\sigma ^{2}}{\varepsilon^2} \tag{2} P(Xμ<ε)>=1ε2σ2(2)

例题:

已知随机变量X的数学期望E(X)=100,方差D(X)=10,试估计X落在(80,120)内的概率

解:

由切比雪夫不等式
P ( 80 < X < 120 ) = P ( ∣ X − 100 ∣ < 20 ) > = 1 − 10 2 0 2 = 0.975 (3) P(80<X<120) = P(|X-100|<20)>=1- \frac{10}{20^2}=0.975 \tag{3} P(80<X<120)=P(X100∣<20)>=120210=0.975(3)

大数定理

简单而言,大数定律讲的是样本均值收敛到总体均值(就是期望),像这个图一样:
在这里插入图片描述

切比雪夫大数定律

假设 { X n } ( n = 1 , 2 , … ) \{X_n\}(n=1,2,…) {Xn}(n=1,2,)相互独立的随机变量序列,如果方差 D X i ( i > = 1 ) DX_i(i>=1) DXi(i>=1)存在,且一致有上界,即存在常数C,使 D X i < = C DX_i<=C DXi<=C对一切 i > = 1 i>=1 i>=1均成立,则 { X n } \{X_n\} {Xn}服从大数定律:
1 n ∑ i = 1 n X i → P → 1 n ∑ i = 1 n E X i (4) \frac{1}{n}∑^n_{i=1}X_i→^P→ \frac{1}{n}∑^n_{i=1}EX_i \tag{4} n1i=1nXiPn1i=1nEXi(4)
即:

lim ⁡ n → ∞ P { ∣ 1 n ∑ i = 1 n X i − 1 n ∑ i = 1 n E ( X i ) ∣ < ε } = 1   (5) \displaystyle \lim_{n→∞}P\{| \frac{1}{n}∑^n_{i=1}X_i- \frac{1}{n}∑^n_{i=1}E(X_i)|<\varepsilon\}=1 \tag{5} nlimP{n1i=1nXin1i=1nE(Xi)<ε}=1 (5)

则有:
x ‾ = 1 n ∑ i = 1 n X i → P → 1 n ∑ i = 1 n E X i = E { 1 n ∑ i = 1 n X i } = E X ‾    (6) \overline{x}= \frac{1}{n}∑^n_{i=1}X_i→^P→ \frac{1}{n}∑^n_{i=1}EX_i =E\{\frac{1}{n}∑^n_{i=1}X_i\} =E\overline{X}  \tag{6} xn1i=1nXiPn1i=1nEXiE{n1i=1nXi}=EX  (6)

即:
x ‾ → P → E X ‾ (7) \overline{x}→^P→E\overline{X} \tag{7} xPEX(7)

辛钦大数定律

假设 { X n } ( n = 1 , 2 , … ) \{X_n\}(n=1,2,…) {Xn}(n=1,2,)相互独立 同分布的随机变量序列,如果方差 E X i = μ ( i > = 1 ) EX_i=\mu(i>=1) EXi=μ(i>=1)存在,则 1 n ∑ i = 1 n X i → P → μ \frac{1}{n}∑^n_{i=1}X_i→^P→ \mu n1i=1nXiPμ ,即对任意 ε > 0 \varepsilon >0 ε>0,有:
lim ⁡ n → ∞ P { ∣ 1 n ∑ i = 1 n X i − μ ∣ < ε } = 1   (8) \displaystyle \lim_{n→∞}P\{| \frac{1}{n}∑^n_{i=1}X_i-\mu|<\varepsilon\}=1 \tag{8} nlimP{n1i=1nXiμ<ε}=1 (8)

既有:
x ‾ = 1 n ∑ i = 1 n X i → P → 1 n ∑ i = 1 n E X i = 1 n n μ = μ    (9) \overline{x}= \frac{1}{n}∑^n_{i=1}X_i→^P→ \frac{1}{n}∑^n_{i=1}EX_i =\frac{1}{n}n\mu =\mu  \tag{9} xn1i=1nXiPn1i=1nEXin1nμ=μ  (9)

即:
x ‾ → P → E X ‾ (10) \overline{x}→^P→E\overline{X} \tag{10} xPEX(10)

伯努利大数定律

Y n Y_{n} Yn n n n重伯努利试验中事件 A A A发生的次数, p p p是事件 A A A在每次试验中发生的概率,对于任意的 ε > 0 \varepsilon >0 ε>0,有
lim ⁡ n → ∞ P { ∣ Y n n − p ∣ > = ε } = 0   (11) \displaystyle \lim_{n→∞}P\{| \frac{Y_n}{n}-p|>=\varepsilon\}=0 \tag{11} nlimP{nYnp>=ε}=0 (11)

该定理表明,当 n n n充分大时,事件 A A A发生的频率 Y n n \frac{Y_{n}}{n} nYn概率 p p p的差的绝对值大于任意指定正数 ε \varepsilon ε的概率可以任意小。

模拟代码

根据不同的样本量,模拟样本均值的收敛性。

import numpy as np
from numpy import random as nprd

True_P=0.5

def sampling(N):
    ## 产生Bernouli样本,n重伯努利实验
    x=nprd.rand(N)<True_P
    return x

M=10000 #模拟次数
xbar=np.zeros(M)
N=np.array([i+1 for i in range(M)]) # 横坐标值
x=sampling(M) # x是布尔量
for i in range(M):
    if i==0:
        xbar[i]=x[i]
    else:
        xbar[i]=(x[i]+xbar[i-1]*i)/(i+1) # 求平均值,xbar[i-1]的分母是i

## 导入matplotlib
import matplotlib.pyplot as plt 
## 使图形直接插入到jupyter中,本地运行时注释掉这句话
# %matplotlib inline
# 设定图像大小
plt.rcParams['figure.figsize'] = (10.0, 8.0)

plt.plot(N,xbar,label=r'$\bar{x}$',color='pink') ## xbar
xtrue=np.ones(M)*True_P
plt.plot(N,xtrue,label=r'$0.5$',color='black') ## true xbar
plt.xlabel('N')
plt.ylabel(r'$\bar{x}$')
plt.legend(loc='upper right', frameon=True)
plt.show() ## 画图

在这里插入图片描述

中心极限定理

而中心极限定理告诉我们,当样本量足够大时,样本均值的分布慢慢变成正态分布,就像这个图:
在这里插入图片描述

列维-林德伯格定理

设相互独立的随机变量 X 1 , X 2 , . . . , X n , . . . X_{1},X_{2},...,X_{n},... X1,X2,...,Xn,... 服从相同的分布,且 E ( X i ) = μ E(X_{i})=\mu E(Xi)=μ , D ( X i ) = σ 2 ≠ 0 ( i = 1 , 2 , . . . ) D(X_{i})=\sigma ^{2}\neq 0(i=1,2,...) D(Xi)=σ2=0(i=1,2,...) ,则随机变量
Y n = ∑ i = 1 n X i − n μ n σ (12) Y_{n}=\frac{\sum^{n}_{i=1}X_{i}-n\mu }{\sqrt{n}\sigma } \tag{12} Yn=n σi=1nXinμ(12)

的分布函数 F n ( x ) = P { Y n ⩽ x } F_{n}(x)=P\begin{Bmatrix} Y_{n}\leqslant x \end{Bmatrix} Fn(x)=P{Ynx}对任意实数 x x x,满足
l i m n → ∞ F n ( x ) = ∫ − ∞ x 1 2 π e − t 2 2 d t = Φ ( x ) (13) \underset{n\rightarrow \infty }{lim}F_{n}(x)=\int_{-\infty }^{x}\frac{1}{\sqrt{2\pi }}e^{-\frac{t^{2}}{2}}dt=\Phi (x) \tag{13} nlimFn(x)=x2π 1e2t2dt=Φ(x)(13)

该定理的结论也可以写为:对于任意的 a < b a<b a<b,有
l i m n → ∞ P { a < Y n ⩽ b } = l i m n → ∞ P { a < ∑ i = 1 n X i − n μ n σ ⩽ b } = Φ ( b ) − Φ ( a ) (14) \underset{n\rightarrow \infty}{lim}P\begin{Bmatrix} a<Y_{n}\leqslant b \end{Bmatrix}=\underset{n\rightarrow \infty}{lim}P\begin{Bmatrix} a< \frac{\sum^{n}_{i=1}X_{i}-n\mu }{\sqrt{n}\sigma }\leqslant b \end{Bmatrix}=\Phi (b)-\Phi(a) \tag{14} nlimP{a<Ynb}=nlimP{a<n σi=1nXinμb}=Φ(b)Φ(a)(14)

棣莫弗—拉普拉斯定理

Y n ∼ B ( n , p ) , n = 1 , 2 , . . . , Y_{n}\sim B(n,p),n=1,2,..., YnB(n,p),n=1,2,...,其中 0 < p < 1 , q = 1 − p 0<p<1,q=1-p 0<p<1q=1p,则对任意实数 x x x,有
l i m n → ∞ P { Y n − n p n p q ⩽ x } = ∫ − ∞ x 1 2 π e − t 2 2 d t = Φ ( x ) (15) \underset{n\rightarrow \infty}{lim}P\begin{Bmatrix} \frac{Y_{n}-np }{\sqrt{npq} }\leqslant x \end{Bmatrix}=\int_{-\infty }^{x}\frac{1}{\sqrt{2\pi }}e^{-\frac{t^{2}}{2}}dt=\Phi (x) \tag{15} nlimP{npq Ynnpx}=x2π 1e2t2dt=Φ(x)(15)

模拟代码

根据不同的样本量(N),模拟2000次样本均值,并观察给定样本量的条件下2000次样本均值的分布情况。按照中心极限定理,当样本量足够大时,样本均值的分布应该趋向于正态分布。

没咋看懂整体思路!!!

import numpy as np
from numpy import random as nprd

def sampling(N):
    ## 产生一组样本,以0.5的概率为z+3,0.5的概率为z-3,其中z~N(0,1)
    d=nprd.rand(N)<0.5 ## 产生布尔量
    z=nprd.randn(N) ## 产生0到1之间的随机变量
    x=np.array([z[i]+3 if d[i] else z[i]-3 for i in range(N)]) ## 产生测数据集的一组数据,一共需要2000组
    return x

N=[2,3,4,10,100,1000] # sample size,测试的数据组数
M=2000 ## 每组数据的数据量
MEANS=[]
for n in N:
    mean_x=np.zeros(M)
    for i in range(M):
        x=sampling(n)
        mean_x[i]=np.mean(x)/np.sqrt(10/n) ## 标准化,因为var(x)=10
    MEANS.append(mean_x)

## 导入matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
## 使图形直接插入到jupyter中,本地运行时注释掉这句话
# %matplotlib inline
# 设定图像大小
plt.rcParams['figure.figsize'] = (10.0, 8.0)
# plt.rcParams['figure.figsize'] = (10.0, 8.0) # set default size of plots
# plt.rcParams['image.interpolation'] = 'nearest' # 设置 interpolation style
# plt.rcParams['image.cmap'] = 'gray'  
# plt.rcParams['savefig.dpi'] = 300 #图片像素
# plt.rcParams['figure.dpi'] = 300 #分辨率
# # 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600&400
# # 指定dpi=200,图片尺寸为 1200*800
# # 指定dpi=300,图片尺寸为 1800*1200
# # 设置figsize可以在不改变分辨率情况下改变比例

x=sampling(1000)
plt.xlabel('x')
plt.ylabel('Density')
plt.title('Histogram of Mixed Normal')
plt.hist(x,bins=50,normed=1) ## histgram
# x 为要绘制的数据,一维数组可用pandas的Series结构,二维数组使用DataFrame
# bins 指定条带bar 的总个数,个数越多,条形带越紧密。
# range :筛选数据范围,默认是最小到最大的取值范围
# normed :为True是频率图,默认False是频数图; 绘制概率密度函数pdf 和累计分布函数cdf时要指定normed=1;显示为每个条状图的占比例比;
plt.show() ## 画图

## 均值
ax1 = plt.subplot(2,3,1)
ax2 = plt.subplot(2,3,2)
ax3 = plt.subplot(2,3,3)
ax4 = plt.subplot(2,3,4)
ax5 = plt.subplot(2,3,5)
ax6 = plt.subplot(2,3,6)

## normal density 正态分布密度函数
x=np.linspace(-3,3,100) ## -3到3等间距的100个数
d=[1.0/np.sqrt(2*np.pi)*np.exp(-i**2/2) for i in x] ## 标准正态分布

def plot_density(ax,data,N):
    ax.hist(data,bins=50,normed=1) ## histgram
    ax.plot(x,d)
    ax.set_title(r'Histogram of $\bar{x}$:N=%d' % N)

plot_density(ax1,MEANS[0],N[0])
plot_density(ax2,MEANS[1],N[1])
plot_density(ax3,MEANS[2],N[2])
plot_density(ax4,MEANS[3],N[3])
plot_density(ax5,MEANS[4],N[4])
plot_density(ax6,MEANS[5],N[5])


plt.show() ## 画图

在这里插入图片描述
在这里插入图片描述

以下内容没了解过,先记下,用到再看!!!

重对数率
重对数率(law of iterated logarithm)即,对于独立同分布的 Y 1 , . . . , Y n Y_1, ... , Y_n Y1,...,Yn,其中 E ( Y i ) = 0 , V ( Y i ) = 1 E\left(Y_i\right)=0, V\left(Y_i\right)=1 E(Yi)=0,V(Yi)=1,有: lim sup ⁡ n → ∞ Y 1 + . . . + Y n n ln ⁡ ln ⁡ n = 2 \limsup_{n\rightarrow \infty} \frac{Y_1+...+Y_n}{\sqrt{n\ln\ln n}}=\sqrt{2} nlimsupnlnlnn Y1+...+Yn=2

import numpy as np
import numpy.random as nprd


def gen_path(T):
    X=[]
    x=0
    for t in range(T):
        x+=nprd.normal()
        X.append(x)
    return X
        
import matplotlib.pyplot as plt
%matplotlib inline
# 设定图像大小
plt.rcParams['figure.figsize'] = (8.0, 8.0)
fig=plt.figure()
N=50
T=20000
t=list(range(T))
corlors=np.linspace(0,1,N)
for i in range(N):
    x=gen_path(T)
    plt.plot(t,x,color=(0.8,1-corlors[i],corlors[i]))
plt.plot(t,[np.sqrt(2*(n+1)*np.log(np.log(n+1))) for n in t],color=(0,0,0))
plt.plot(t,[-np.sqrt(2*(n+1)*np.log(np.log(n+1))) for n in t],color=(0,0,0))
plt.show() ## 画图
fig.savefig("law_iterated_log.pdf")

在这里插入图片描述

t=list(range(T))
fig1=plt.figure()
corlors=np.linspace(0,1,N)
for i in range(N):
    x=gen_path(T)
    plt.plot(t,[x[n]/np.sqrt((n+1)*np.log(np.log(n+1))) for n in t],color=(0.8,1-corlors[i],corlors[i]))
plt.plot(t,[np.sqrt(2) for n in t],color=(0,0,0))
plt.plot(t,[-np.sqrt(2) for n in t],color=(0,0,0))
plt.show() ## 画图
fig1.savefig("law_iterated_log2.pdf")

在这里插入图片描述
参考文章:
https://www.zhihu.com/question/22913867
https://blog.csdn.net/csdn___csdn/article/details/81704930
代码来源:
https://github.com/sijichun/MathStatsCode/blob/master/notebook_python/LLN_CLT.ipynb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值