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


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


本文讨论了统计学中的一个基本术语 :置信区间。我们仅以一种非常友好的方式讨论一般概念,没有太多花哨的统计术语,同时还会使用 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,一经查实,立即删除!

相关文章

【谷歌】Google Chrome 浏览器中 font-size 12px 没有效果

Google Chrome 浏览器中 font-size < 12px 没有效果 解决方法&#xff1a; *&#xff5b;-webkit-text-size-adjust: none;&#xff5d; 此功能立竿见影&#xff0c;目的是去掉CHROME的自动调整字体大小&#xff0c;显示比12PX小的字体。转载于:https://www.cnblogs.com/cos…

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

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

php获取昨日时间段内,PHP 获取 特定时间范围 类

1 <?php2 /**3 * Created by PhpStorm.4 * Author: 林冠宏5 * Date: 2016/6/46 * Time: 16:067 *8 * 前序&#xff1a;9 * 总体来说&#xff0c;我更应该是一个 android 移动开发者&#xff0c;而不是一个 phper&#xff0c;如果说只做移动端的 APP &#xff0c;10 * 我也不…

【翻译】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…

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

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

matlab行程编码,报告论文:游程(行程)长度编码matlab(或者C++)实现

游程(行程)长度编码matlab(或者C)实现html我须要的是算法实现,好比说我输入序列{1,0,0,0,0,1,1},输出为{11,04,12}.后面输出结果的含义是,"11"表示1的个数为1,"04"表示后面连续0的个数为4,"11"表示最后面出现连续1的次数为2次ios#include算法#in…

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

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

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

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

大端(Big Endian)、小端(Little Endian)

端模式&#xff08;Endian&#xff09;的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类&#xff0c;从圆头开始将鸡蛋敲开的人被归为Big Endian&#xff0c;从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就…

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

推荐(免费)&#xff1a;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开发的一款&#xff08;c/s应用&#xff09;自动升级程序。该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf&#xff0c;控制台应用&#xff0c;winfrom。本组件&#xff08;除…

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

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

java中formfile,基于Struts FormFile上传文件

基于Struts文件上传(FormFile)详解Struts中FormFile用于文件进行上传1.在jsp文件中进行定义名字&#xff1a;头像:2.在Form表单中定义FormFile/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl*/package com.yourcompany.struts.form;import j…

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

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

EF Core事务提交,分布式事务

控制事务可以使用 DbContext.Database API 开始、提交和回滚事务。 以下示例显示了在单个事务中执行的两个 SaveChanges 操作以及一个 LINQ 查询&#xff1a;using var context new BloggingContext(); using var transaction context.Database.BeginTransaction();try {cont…

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

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

global.php,global.php

/*** 自动判断PHP版本&#xff0c;并把所有环境变量转为全局变量** author Avenger * version $Id 2003-05-18 13:01:14 $*/ function pmyoutput(&$a) {if (is_array($a)) {array_walk($a,"pmyoutput");} else {$a stripslashes($a);$a str_replace("&…

如何在 ASP.Net Core 中使用 Autofac

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

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

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

php网站开发期末大作业,大学生期末网页大作业

【实例简介】6页面的网页设计&#xff0c;是个人主页类型。包含了6个页面&#xff0c;包含视频、脚本等元素。水平不高&#xff0c;但交选修作业就足够了。【实例截图】【核心代码】为ai而狂└── 为ai而狂├── FLVPlayer_Progressive.swf├── Halo_Skin_3.swf├── Scri…