入门 | 我们常听说的置信区间与置信度到底是什么?


机器学习本质上是对条件概率或概率分布的估计,而这样的估计到底有多少是置信度?这里就涉及到统计学里面的置信区间与置信度,本文简要介绍了置信区间这一核心概念,它有助于我们从直观上理解评价估计优劣的度量方法。


本文讨论了统计学中的一个基本术语 :置信区间。我们仅以一种非常友好的方式讨论一般概念,没有太多花哨的统计术语,同时还会使用 Python 完成简单的实现!尽管这个术语是非常基础的,但我们有时很难完全理解置信区间到底是什么,为什么我们需要它。


假设你想知道美国有多少人热爱足球。为了得到 100% 正确的答案,你可以做的唯一一件事是向美国的每一位公民询问他们是否热爱足球。根据维基百科,美国有超过 3.25 亿的人口。与 3.25 亿人谈话并不现实,因此我们必须通过问更少的人来得到答案。


我们可以通过在美国随机抽取一些人(与更少人交谈)并获得热爱足球的人的百分比来做到这一点,但是我们不能 100% 确信这个数字是正确的,或者这个数字离真正的答案有多远。所以,我们试图实现的是获得一个区间,例如,对这个问题的一个可能的答案是:「我 95% 相信在美国足球爱好者的比例是 58% 至 62%」。这就是置信区间名字的来源,我们有一个区间,并且我们对它此一定的信心。


非常重要的是我们的样本是随机的,我们不能只从我们居住的城市中选择 1000 人,因为这样就不能很好地代表整个美国。另一个不好的例子是,我们不能给这 1000 个随机用户发 Facebook 消息,这样我们就会得到美国 Facebook 用户的喜爱趋势,因为并不是所有的美国公民都使用 Facebook。


因此,假设我们随机抽取了 1000 个美国人的样本,我们发现,在 1000 人中有 63% 的人喜欢足球,我们能假设(推断)出整个美国人口的情况吗?


为了回答这个问题,我希望我们以一个不同的方式来看待它。假设我们知道(理论上)美国人的确切比例,假设它是 65%,那么随机挑选 1000 人只有 63% 的人喜欢足球的机会是多少?让我们用 Python 来探索这个问题!


love_soccer_prop = 0.65  # Real percentage of people who love soccer
total_population = 325*10**6  # Total population in the U.S. (325M)
num_people_love_soccer = int(total_population * love_soccer_prop)
num_people_dont_love_soccer = int(total_population * (1 - love_soccer_prop))
people_love_soccer = np.ones(num_of_people_who_love_soccer)
people_dont_love_soccer = np.zeros(num_
people_dont_love_soccer)
all_people = np.hstack([people_love_soccer, people_dont_love_soccer])
print np.mean(all_people)
# Output = 0.65000000000000002


在这段代码中,我创建了一个表示 3.25 亿人的 NumPy 数组,对于每个人,如果他/她喜欢足球,那么我会存储 1,否则就是零。我们可以通过计算它的平均值来得到数组中的百分比,实际上它是 65%。


现在,让我们取几组容量为 1000 个样本的试验,看看得到的百分比是多少:


for i in range(10):
   sample = np.random.choice(all_people, size=1000)
   print 'Sample', i, ':', np.mean(sample)
# Output:
Sample 0 : 0.641
Sample 1 : 0.647
Sample 2 : 0.661
Sample 3 : 0.642
Sample 4 : 0.652
Sample 5 : 0.647
Sample 6 : 0.671
Sample 7 : 0.629
Sample 8 : 0.648
Sample 9 : 0.627


对于每组样本,我们获得了不同的值,但直觉(和统计理论)表示,大量样本的平均值应该非常接近真实百分比。让我们这样试试!我们取很多样本,然后看看会发生什么:


values = []
for i in range(10000):
   sample = np.random.choice(all_people, size=1000)
   mean = np.mean(sample)
   values.append(mean)
print np.mean(values)
# Output = 0.64982259999999992


我们创建了 10K 个样本,检查了每个样本中热爱足球的人的百分比,然后取平均值,我们得到了 64.98%,这非常接近于实际值 65%。让我们画出我们得到的所有值:



这里你看到的是我们得到的所有样本值的直方图,这个直方图的一个很好的性质是它和正态分布非常相似。正如我所说的,我不想在这里使用太多的统计术语,但假设如果我们这样做了很多次(无限次),我们将得到一个非常接近正态分布的直方图,我们可以知道该分布的参数。用更简单的话来说,我们会知道这个直方图的形状,所以我们可以精确地知道在任意数值范围内有多少个样本。


下面是一个例子,我们会多次运行这个模拟(试图达到无穷大):



首先,我们可以看到直方图的中心(平均值)接近 65%,正如我们所预期的,但我们可以通过查看直方图来得到更多信息,例如,我们可以说,一半样本都大于 65%,或者我们可以说大约 25% 的样本大于 67%,甚至可以说(大致)只有 2.5% 的样本大于 68%。


在这一点上,很多人可能会问两个重要的问题:「我怎样才能取得无数的样本?」和「它对我有什么帮助?」。


让我们回到我们的例子,我们抽取了 1000 人的样本,得到了 63%,我们想知道,随机抽样的 1000 人中有 63% 的足球爱好者的概率是多少。使用这个直方图,我们可以说有(大概)25%的概率,我们会得到一个小于或等于 63% 的值。该理论告诉我们,我们实际上并不需要得到无限的样本,如果我们随机选择 1000 人,只有 63% 的人喜欢足球是可能发生的。


实际上,为了找到不同数值范围或区间的概率,我们需要知道或至少估计总体分布的标准差。因为我们想把事情变得简单一点,因此现在先不讨论它。


让我们回到现实和真正的问题,我不知道美国足球爱好者的实际比例,我只抽取了一个样本,得到了 63%,这对我有什么帮助?


所以,我们不知道在美国热爱足球的人的实际比例。我们所知道的是,如果我们从总体分布取无数个样本,它将如下所示:



这里 μ 是总体分布的平均值(我们例子中足球爱好者的实际百分比),σ 是总体分布的标准差。


如果我们知道这一点(并且我们知道标准差),我们可以说约 64% 的样本会落在红色区域,或者 95% 以上的样品会落在图中的绿色区域之外:



如果我们在之前假设的实际百分比 65% 上使用该图,那么 95% 以上的样本将在 62% 和 68% 之间(+ - 3)。



当然,距离是对称的,所以如果样本有 95% 落在在实际百分比 -3 和 +3 之间,那么真实百分比落在样本百分比 -3 和 +3 之间的概率为 95%。


如果我们抽取一个样本,得到了 63%,那么我们可以说我们 95% 确信实际比例在 60%(63-3)和 66%(63 + 3)之间。


这就是置信区间,区间为 63 + -3,置信度为 95%。


我希望大家现在对置信区间有更好的理解,但这个介绍忽略了一些重要的技术性的部分。有很多文章包含了这些部分,因此读者可继续阅读相关的材料加强理解。


原文链接:https://towardsdatascience.com/a-very-friendly-introduction-to-confidence-intervals-9add126e714


文章版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 差点不叫“.NET”?微软大牛爆料技术往事

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)2000 年注定是不平凡的一年:千年虫问题爆发、互联网泡沫破灭……正值世界风云突变之际,比尔盖茨和史蒂夫鲍尔默向全球宣布全力打造“下一代因特网”——.NET 平台。比尔盖茨对.N…

【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF

【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF目录 隐藏 引言 [Introduction]背景 [Background]附加行为 [Attached Behaviors]论证 [Demonstration]结论 [Conclusion]参考 [References]版本历史 [Revision History]许可证 [License]作者&#xff…

地图是怎么知道实时路况的?因为我们每个人都是“百万年薪级”数据贡献者

【导读】地图公司给地图“上色”主要靠数据,数据够则地图生。数据是地图的生命,车速是路况的根本,地图获取数据主要有两种方式:自给自足、仰给于人上班出门,点开地图,前面红色,后面红色&#xf…

MySQL优化从执行计划开始(explain超详细)

前言小伙伴一定遇到过这样反馈:这页面加载数据太慢啦,甚至有的超时了,用户体验极差,需要赶紧优化;反馈等同于投诉啊,多有几次,估计领导要找你谈话啦。于是不得不停下手里头的活,赶紧…

一个老程序员的忠告:不要一辈子靠技术生存

图丨《Ready Player One》文丨源:世界经理人我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多…

怎样安装php52-71,CentOS如何安装PHP5和PHP7

推荐(免费):PHP7安装PHP5下载解压二进制包[roottest-a src]# cd /usr/local/src/[roottest-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[roottest-a src]# tar jxvf php-5.6.32.tar.bz2编译安装PHP./configure --prefix/usr/local/php --wit…

应用程序自动更新组件GeneralUpdate3.2.1发布

GeneralUpdate开源组件更新公告一、组件简介GeneralUpdate是基于.net standard开发的一款(c/s应用)自动升级程序。该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台应用,winfrom。本组件(除…

你不知道C#只带有 get 访问器的属性是只读属性?

问题窥探之前有个哥们在使用Newtonsoft.Json反序列化的时候,发现明明有数据,但是就是序列化不出来数据到实体里面。咋一看,确实没什么问题啊,字符串的数据是存在的。那么问题出在哪里呢。解决思路1、我让他把字符串复制出来&#…

葬身李刚儿子车轮下的漂亮女孩

这么一个青春、靓丽的女孩~~~~~~~~就这样丧生在官二代的铁轮下~~~~~~~~~~~~可惜了~~~~~~~~~~~~哀痛啊,什么世道!转载于:https://blog.51cto.com/jsfido/418494

RTC 媒体流数据包丢包问题解决

最近在一个测试中,遇到了OCS和PSTN通话之间的声音出现严重的断续问题,用户的使用体验就是听对方的声音不是完整的,有部分的语音丢失,在服务器上判断就是RTC数据包丢失了。专业术语就是Voice clipping。先看看丢包的恐怖情况&#…

如何在 ASP.Net Core 中使用 Autofac

依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性,ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持,然而内置的依赖注入容器相比成熟的 依赖注入容器 太弱了。为了解决这个问题,可以使用第三方的依…

2010年11月编程语言排行榜:手机里的代码

【51CTO独家特稿】Tiobe今天发布了最新一期的编程语言排行榜。本期榜单的前五名与10月份没有明显变化,依然是Java、C、C、PHP和Python;Objective-C的增长势头强劲。本期另外一个值得注意的语言是重回前20名NXT-G。NXT-G是一种集成在乐高(LEGO…

NET问答: 如何迭代 Enum ?

咨询区 Peter Mortensen:如何使用 C# 迭代 enum ?下面的代码会编译失败,错误信息: Suit is a type but is used like a variablepublic enum Suit {Spades,Hearts,Clubs,Diamonds }public void EnumerateAllSuitsDemoMethod() {foreach (Suit suit in S…

承接数字油画图稿/线条图定制(出图)业务

集异璧实验室对外提供数字油画图纸(图稿/线条图)定制和自选业务,欢迎洽谈。 定制流程: (1)贵方将图片传给我方; (2)我方出图,提供效果图; &#…

爬取异步请求(XHR/JS)数据方法

概述之前在做爬虫的时候,比如在爬取到https://www.1688.com/?spma261p.8650866.0.0.2dfa36c3tjLrCQ网页的时候,发现很多内容明明在浏览器看得见,但是请求下来的内容却没有,于是打开F12查看Network发现,如下&#xff1…

php的old函数,laravel单元测试之phpUnit中old()函数报错解决

php 的 laravel单元测试之phpUnit中old()函数报错解决前言最近在做laravel单元测试.遇到了一个问题:当添加的view里面使用old()函数时就会报错,正常url访问没问题,但是在phpUnit中就报错错误原因: exception RuntimeException with message Session store not set o…

ASP.NET Core 集成 React SPA 应用

AgileConfig的UI使用react重写快完成了。上次搞定了基于jwt的登录模式(AntDesign Pro .NET Core 实现基于JWT的登录认证),但是还有点问题。现在使用react重写后,agileconfig成了个确确实实的前后端分离项目。那么其实部署的话要分…

Ingress-nginx工作原理和实践

本文记录/分享 目前项目的 K8s 部署结构和请求追踪改造方案这个图算是一个通用的前后端分离的 k8s 部署结构:Nginx Ingress 负责暴露服务(nginx前端静态资源服务), 根据十二要素应用的原 则,将后端 api 作为 nginx 服务的附加动态资源。Ingress vs Ingre…

Dotnet洋葱架构实践

一个很清晰的架构实践,同时刨刨MySQL的坑。一、洋葱架构简介洋葱架构出来的其实有一点年头了。大约在2017年下半年,就有相关的说法了。不过,大量的文章在于理论性的讨论,而我们今天会用一个项目来完成这个架构。洋葱架构&#xff…

EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录

前言本文主要是讲解EF Core3.0 通过拦截器实现读写分离与SQL日志记录注意拦截器只有EF Core3.0 支持,2.1请考虑上下文工厂的形式实现.说点题外话..一晃又大半年没更新技术博客..唉,去年一年发生了太多事情..博主真的 一言难尽..有兴趣的可以去看看:记录一下,也许是转折,也许是结…