深度学习篇-如何理解置信区间

置信区间究竟是什么

  百度百科:置信区间是指由样本统计量所构造的总体参数的估计区间。在统计学中,一个概率样本的置信区间(Confidence interval)是对这个样本的某个总体参数的区间估计。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度,其给出的是被测量参数的测量值的可信程度,即前面所要求的“一个概率”。 

  这个解释有点反人类,如果不事先理解置信区间的话,应该是没法看懂的。

  参考了知乎上的答案:胡阿福 https://www.zhihu.com/question/26419030/answer/7220207

  假设你叫李三,你开一个猪脚店,你希望知道你每天卖出去多少碗猪脚,一般的思路是说,我记录30天每天卖多少,然后平均数得到一天卖100碗,ok,任务完成,这就是你想知道的答案。

然而,事实上,由于你样本量过小或者有极端值等等情况,使得你这个答案,和实际情况不太一致,你准备了100碗,结果今天有110个人来买,找谁哭去? 这个时候,你就想,嗯,我应该指定一个范围,聪明!统计学家也这样想,那么这个范围怎么算,就是这里说的置信区间。

  如果你猪脚店的均值100,方差30,那么标准误就是5.5,这时你的范围就是100-Za*30/5.5至100+Za*30/5.5之间,这个a就是置信系数,所谓95%的置信区间,就是在正态分布中,这个值是1.96,也就是算出来100-1.96*5.5至100+1.96*5.5之间,也就是89至111之间,嗯,对啦,李老板你就准备这个数就好啦~

  什么,你说店里今天卖了112碗,哼,才不是我算错呢,是因为这个范围发生的可能性是95%啊,也就是说,出现在这个范围的可能性并不是100%呢~

  李老板内心os:你tm在逗我?再说这么大范围我怎么备货?

  想把范围缩小?没问题,把z变小好啦,不过事先声明z越小,这个a越小,也就是说,这个范围发生的概率就小啦~完全可以改,那,发生概率不到30%你不要怪我哟~

  综上,置信区间其实是对真实情况估计的结果。重点是在于这个置信水平,置信水平越大,也就是说越可能包含真实结果,为了保证结果被包含,这个范围就越宽泛。

  那是不是一定要95%?

  不绝对,95%只是统计学上的约定俗成。能改,回看上上一段,你要冒着结果并不能大概率正确的风险~
  上述的解释很通俗地解释了置信区间和95%置信水平,其中关键点在于,根据置信区间算出来的结果只是一个接近正确答案的可能值(范围),他有95%(置信水平)的可能性是真的。
  这个例子比较生动,但是还是有点东西没有解释准确,那就是样本和总体。李三的猪脚店其实并不存在一个固定的可测量的结果值,统计上可以取样,总体却是一直在变化着的。
  理解上述例子后,换一个比较死板的例子。
  假设二狗子买彩票,现在需要知道该彩票的中奖率,最正确的操作应当是买下所有彩票,用中奖的彩票数除去总数,二狗子没那么多钱,所以需要换个方法。
  二狗子叫来100个兄弟一起买彩票,每人买100张,构成100个样本。每个样本都可以算出中奖率和标准差,样本越多越大,其接近真相的中奖率和标准差就越准,这两个值用于正态分布计算。
  关于其在正态分布上的应用……
  正态分布的θ=(μ,σ^2)(这两个指标也是整个总体的均值和方差),而用n个服从同一正态分布的随机变量进行最大似然估计的结果是Argmax L(θ)=(x bar,s^2)(也就是样本的均值和方差)……
根据中心极限定理,当n趋于无穷时(x bar−μ)/(σ/sqrt(n))的分布收敛于标准正态分布……使用σ(总体的标准差)的最大似然估计值s(样本的标准差)来替代σ,根据标准正态分布,即可求出μ(总体的均值)的95%置信区间……
  最终计算出来的结果长这样:([公式],[公式]) 
  其中,c是95%置信度所对应的critiacl value值,M为样本量。都是已知量,假设最后结果为(0.45,0.55),这个结果代表:彩票的中奖率是0.45-0.55之间,这个结果只有95%的可能性是对的,这个结果解释需要明确两点。
  1.如果继续采样,也就是再叫一个兄弟买100张彩票,他的中奖率很大可能(95%)是落在0.45-0.55之间的。
  2.总体的彩票中奖率是不是一定在0.45-0.55之间?也不一定,只能说,极大概率是在0.45-0.55内,总体的结果在没有拿到确切总量计算之前都是很难确定的,所以说,该方法计算出来的只是一个概率值。
 

置信区间和人工智能

  高等数学之前认为,数学非0即1,如果只是一个概率很难称之为科学(数学本来就不是科学),用哲学来形容更好一些。这恰好就是人工智能应用的根本算法。
  人工智能学科很复杂,其本质是仿人类的反应,学习,动作。而人类对事物的判断就源于生存经验和逐渐纠正学习。当人的思维经验判断某件事发生的概率为95%的时候,就是一个大概率事件,做出相应的反应。
 

python计算

  python是深度学习的主流语言,封装了很多算法包,写一个计算概率的程序非常简单。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

N = 10000
x = np.random.normal(0, 1, N)
# ddof取值为1是因为在统计学中样本的标准偏差除的是(N-1)而不是N,统计学中的标准偏差除的是N
# SciPy中的std计算默认是采用统计学中标准差的计算方式
mean, std = x.mean(), x.std(ddof=1)
print(mean, std)
# 计算置信区间
# 这里的0.9是置信水平
conf_intveral = stats.norm.interval(0.9, loc=mean, scale=std)
print(conf_intveral)

这里一共就两个函数,一个是随机获取符合正态分布的10000个数据 np.random.normal,另一个是计算置信区间的 stats.norm.interval

计算结果:(-1.6297070531642777, 1.6429401188504407)



posted @ 2019-12-10 10:27  但行好事-莫问前程  阅读(1642)  评论(0编辑  收藏