先验概率、后验概率、似然函数

2023-10-09 23:50

本文主要是介绍先验概率、后验概率、似然函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

直接看我这篇文章更清楚

 

搬运了网页各处的解释,有点意思

一、先验概率

先验概率(prior probability)是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现的概率·

中文名

先验概率

外文名

prior probability

分    类

客观先验概率,主观先验概率

释    义

根据以往经验和分析得到的概率

又    称

古典概率

目录

  1. 1 概述
  2.  先验概率的分类
  3.  先验概率的条件
  4. 2 先验概率与后验概率的区别

概述

先验概率的分类

利用过去历史资料计算得到的先验概率,称为客观先验概率;

当历史资料无从取得或资料不完全时,凭人们的主观经验来判断而得到的先验概率,称为主观先验概率。

先验概率的条件

先验概率是通过古典概率模型加以定义的,故又称为古典概率。古典概率模型要求满足两个条件:(1)试验的所有可能结果是有限的;(2)每一种可能结果出现的可能性(概率)相等。若所有可能结果的总数为N,随机事件A包括n个可能结果,那么随机事件A出现的概率为n/N。

先验概率与后验概率的区别

先验概率不是根据有关自然状态的全部资料测定的,而只是利用现有的材料(主要是历史资料)计算的;后验概率使用了有关自然状态更加全面的资料,既有先验概率资料,也有补充资料;

先验概率的计算比较简单,没有使用贝叶斯公式;而后验概率的计算,要使用贝叶斯公式,而且在利用样本资料计算逻辑概率时,还要使用理论概率分布,需要更多的数理统计知识。

二、后验概率

后验概率是信息理论的基本概念之一。在一个通信系统中,在收到某个消息之后,接收端所了解到的该消息发送的概率称为后验概率。

中文名

后验概率

外文名

posterior probability

目录

  1. 1 简介
  2. 2 实例
  3. 3 解释
  4. 4 例子

简介

后验概率是指在得到“结果”的信息后重新修正的概率,如贝叶斯公式中的。是“执果寻因”问题中的"果"。先验概率与后验概率有不可分割的联系,后验概率的计算要以先验概率为基础。

实例

假设一个学校里有60%男生和40%女生。女生穿裤子的人数和穿裙子的人数相等,所有男生穿裤子。一个人在远处随机看到了一个穿裤子的学生。那么这个学生是女生的概率是多少?

使用贝叶斯定理,事件A是看到女生,事件B是看到一个穿裤子的学生。我们所要计算的是P(A|B)。

P(A)是忽略其它因素,看到女生的概率,在这里是40%

P(A')是忽略其它因素,看到不是女生(即看到男生)的概率,在这里是60%

P(B|A)是女生穿裤子的概率,在这里是50%

P(B|A')是男生穿裤子的概率,在这里是100%

P(B)是忽略其它因素,学生穿裤子的概率,P(B) = P(B|A)P(A) + P(B|A')P(A'),在这里是0.5×0.4 + 1×0.6 = 0.8.

根据贝叶斯定理,我们计算出后验概率P(A|B)

P(A|B)=P(B|A)*P(A)/P(B)=0.25

可见,后验概率实际上就是条件概率。[1] 

例子

举一个简单的例子:一口袋里有3只红球、2只白球,采用不放回方式摸取,求:

⑴ 第一次摸到红球(记作A)的概率;

⑵ 第二次摸到红球(记作B)的概率;

⑶ 已知第二次摸到了红球,求第一次摸到的是红球的概率。

解:

⑴ P(A)=3/5,这就是验前概率;

⑵ P(B)=P(A)P(B|A)+P(A逆)P(B|A逆)=3/5

⑶ P(A|B)=P(A)P(B|A)/P(B)=1/2,这就是后验概率。

三、两者关系

在应用贝叶斯理论时,通常将先验概率乘以似然函数(likelihoodfunction)再归一化后,得到后验概率分布,后验概率分布即在已知给定的数据后,对不确定性的条件分布。

四、似然函数

统计学中,似然函数(),或,是一种关于统计模型参数的函数。给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:

L(θ|x)=P(X=x|θ).

似然函数在推断统计学(Statistical inference)中扮演重要角色,尤其是在参数估计方法中。在教科书中,似然常常被用作“概率”的同义词。但是在统计学中,二者有截然不同的用法。概率描述了已知参数时的随机变量的输出结果;似然则用来描述已知随机变量输出结果时,未知参数的可能取值。例如,对于“一枚正反对称的硬币上抛十次”这种事件,我们可以问硬币落地时十次都是正面向上的“概率”是多少;而对于“一枚硬币上抛十次,落地都是正面向上”这种事件,我们则可以问,这枚硬币正反面对称的“似然”程度是多少。

中文名

似然函数

外文名

Likelihood function

简    称

似然

定    义

离散型概率分布和连续型概率分布

目录

  1. 1 分布类型
  2.  离散型概率分布
  3.  连续型概率分布
  4. 2 对数似然函数
  1. 3 参数化模型的似然函数
  2. 4 计算实例
  3. 5 应用
  1.  最大似然估计
  2.  似然比检验
  3. 6 其他

分布类型

离散型概率分布

假定一个关于参数θ、具有离散型概率分布P的随机变量X,则在给定X的输出x时,参数θ的似然函数可表示为

其中,

表示X取x时的概率。上式常常写为

或者

。需要注意的是,此处并非条件概率,因为θ不(总)是随机变量。

连续型概率分布

假定一个关于参数θ、具有连续概率密度函数f的随机变量X,则在给定X的输出x时,参数θ的似然函数可表示为

上式常常写为

,同样需要注意的是,此处并非条件概率密度函数。

似然函数的主要用法在于比较它相对取值,虽然这个数值本身不具备任何含义。例如,考虑一组样本,当其输出固定时,这组样本的某个未知参数往往会倾向于等于某个特定值,而不是随便的其他数,此时,似然函数是最大化的。

似然函数乘以一个正的常数之后仍然是似然函数,其取值并不需要满足归一化条件

似然函数的这种特性还允许我们叠加计算一组具备相同含义的参数的独立同分布样本的似然函数。

关于利用似然函数进行统计推断的应用,可以参考最大似然估计(Maximum likelihood estimation)方法和似然比检验(Likelihood-ratio testing)方法。

对数似然函数

涉及到似然函数的许多应用中,更方便的是使用似然函数的自然对数形式,即“对数似然函数”。求解一个函数的极大化往往需要求解该函数的关于未知参数的偏导数。由于对数函数是单调递增的,而且对数似然函数在极大化求解时较为方便,所以对数似然函数常用在最大似然估计及相关领域中。例如:求解Gamma分布中参数的最大似然估计问题:

假定服从Gamma分布的随机变量

具有两个参数

,考虑如下似然函数

如果想从输出

中估计参数

,直接求解上式的极大化未免有些难度。在取对数似然函数后,

再取关于

的偏导数等于0的解,

最终获得

的最大似然估

当存在一组独立同分布的样本

时,

故而

其中, 

参数化模型的似然函数

有时我们需要考虑在给定一组样本输出

时,使用待估参数  

的假设值与其真实值之间的误差,此时似然函数变成是关于待估参数

的函数。

计算实例

考虑投掷一枚硬币的实验。假如已知投出的硬币正面朝上的概率是

,便可以知道投掷若干次后出现各种结果的可能性。比如说,投两次都是正面朝上的概率是0.25:

从另一个角度上说,给定“投两次都是正面朝上”的观测,则硬币正面朝上的概率为的似然是

尽管这并不表示当观测到两次正面朝上时

的“概率”是0.25。如果考虑

,那么似然函数的值会变大

这说明,如果参数的取值变成0.6的话,结果观测到连续两次正面朝上的概率要比假设0.5 时更大。也就是说,参数取成0.6 要比取成0.5 更有说服力,更为“合理”。总之,似然函数的重要性不是它的具体取值,而是当参数变化时函数到底变小还是变大。对同一个似然函数,如果存在一个参数值,使得它的函数值达到最大的话,那么这个值就是最为“合理”的参数值。

应用

最大似然估计

最大似然估计是似然函数最初也是最自然的应用。上文已经提到,似然函数取得最大值表示相应的参数能够使得统计模型最为合理。从这样一个想法出发,最大似然估计的做法是:首先选取似然函数(一般是概率密度函数或概率质量函数),整理之后求最大值。实际应用中一般会取似然函数的对数作为求最大值的函数,这样求出的最大值和直接求最大值得到的结果是相同的。似然函数的最大值不一定唯一,也不一定存在。与矩法估计比较,最大似然估计的精确度较高,信息损失较少,但计算量较大。

似然比检验

似然比检验是利用似然函数来检测某个假设(或限制)是否有效的一种检验。一般情况下,要检测某个附加的参数限制是否是正确的,可以将加入附加限制条件的较复杂模型的似然函数最大值与之前的较简单模型的似然函数最大值进行比较。如果参数限制是正确的,那么加入这样一个参数应当不会造成似然函数最大值的大幅变动。一般使用两者的比例来进行比较,这个比值是卡方分配。

尼曼-皮尔森引理说明,似然比检验是所有具有同等显著性差异的检验中最有统计效力的检验。

五、有意思的例子,生动形象的解释

本文假设大家都知道什么叫条件概率了(P(A|B)表示在B事件发生的情况下,A事件发生的概率)。

先验概率和后验概率
教科书上的解释总是太绕了。其实举个例子大家就明白这两个东西了。

假设我们出门堵车的可能因素有两个(就是假设而已,别当真):车辆太多和交通事故。

堵车的概率就是先验概率 。

那么如果我们出门之前我们听到新闻说今天路上出了个交通事故,那么我们想算一下堵车的概率,这个就叫做条件概率 。也就是P(堵车|交通事故)。这是有因求果。

如果我们已经出了门,然后遇到了堵车,那么我们想算一下堵车时由交通事故引起的概率有多大,

那这个就叫做后验概率 (也是条件概率,但是通常习惯这么说)。也就是P(交通事故|堵车)。这是有果求因。

下面的定义摘自百度百科:

先验概率是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现.

后验概率是指依据得到"结果"信息所计算出的最有可能是那种事件发生,如贝叶斯公式中的,是"执果寻因"问题中的"因".

那么这两个概念有什么用呢?

最大似然估计
我们来看一个例子。

有一天,有个病人到医院看病。他告诉医生说自己头痛,然后医生根据自己的经验判断出他是感冒了,然后给他开了些药回去吃。

有人肯定要问了,这个例子看起来跟我们要讲的最大似然估计有啥关系啊。

关系可大了,事实上医生在不知不觉中就用到了最大似然估计(虽然有点牵强,但大家就勉为其难地接受吧^_^)。

怎么说呢?

大家知道,头痛的原因有很多种啊,比如感冒,中风,脑溢血...(脑残>_<这个我可不知道会不会头痛,还有那些看到难题就头痛的病人也不在讨论范围啊!)。

那么医生凭什么说那个病人就是感冒呢?哦,医生说这是我从医多年的经验啊。

咱们从概率的角度来研究一下这个问题。

其实医生的大脑是这么工作的,

他计算了一下

P(感冒|头痛)(头痛由感冒引起的概率,下面类似)

P(中风|头痛)

P(脑溢血|头痛)

...

然后这个计算机大脑发现,P(感冒|头痛)是最大的,因此就认为呢,病人是感冒了。看到了吗?这个就叫最大似然估计(Maximum likelihood estimation,MLE) 。

咱们再思考一下,P(感冒|头痛),P(中风|头痛),P(脑溢血|头痛)是先验概率还是后验概率呢?

没错,就是后验概率。看到了吧,后验概率可以用来看病(只要你算得出来,呵呵)。

事实上,后验概率起了这样一个用途,根据一些发生的事实(通常是坏的结果),分析结果产生的最可能的原因,然后才能有针对性地去解决问题。

那么先验概率有啥用呢?

我们来思考一下,P(脑残|头痛)是怎么算的。

P(脑残|头痛)=头痛的人中脑残的人数/头痛的人数

头痛的样本倒好找,但是头痛的人中脑残的人数就不好调查了吧。如果你去问一个头痛的人你是不是脑残了,我估计那人会把你拍飞吧。

接下来先验概率就派上用场了。

根据贝叶斯公式 ,

P(B|A)=P(A|B)P(B)/P(A) 

我们可以知道

P(脑残|头痛)=P(头痛|脑残)P(脑残)/P(头痛)

注意,(头痛|脑残)是先验概率,那么利用贝叶斯公式我们就可以利用先验概率把后验概率算出来了。

P(头痛|脑残)=脑残的人中头痛的人数/脑残的人数

这样只需要我们去问脑残的人你头痛吗,明显很安全了。

(你说脑残的人数怎么来的啊,那我们就假设我们手上有一份传说中的脑残名单吧。那份同学不要吵,我没说你在名单上啊。

再说调查脑残人数的话咱就没必要抓着一个头痛的人问了。起码问一个心情好的人是否脑残比问一个头痛的人安全得多)

我承认上面的例子很牵强,不过主要是为了表达一个意思。后验概率在实际中一般是很难直接计算出来的,相反先验概率就容易多了。因此一般会利用先验概率来计算后验概率。

似然函数与最大似然估计

下面给出似然函数跟最大似然估计的定义。

我们假设f是一个概率密度函数,那么


是一个条件概率密度函数(θ 是固定的)

而反过来,

 
叫做似然函数 (x是固定的)。

一般把似然函数写成

 
θ是因变量。

而最大似然估计 就是求在θ的定义域中,当似然函数取得最大值时θ的大小。

意思就是呢,当后验概率最大时θ的大小。也就是说要求最有可能的原因。

由于对数函数不会改变大小关系,有时候会将似然函数求一下对数,方便计算。

例子:

我们假设有三种硬币,他们扔到正面的概率分别是1/3,1/2,2/3。我们手上有一个硬币,但是我们并不知道这是哪一种。因此我们做了一下实验,我们扔了80次,有49次正面,31次背面。那么这个硬币最可能是哪种呢?我们动手来算一下。这里θ的定义域是{1/3,1/2,2/3}


当p=2/3时,似然函数的值最大,因此呢,这个硬币很可能是2/3。

六、公式们

条件概率公式

  • formula
  • 全概率公式

    • formula
    • 贝叶斯公式

      • formula

 

 

 

 

 

 

这篇关于先验概率、后验概率、似然函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176438

相关文章

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

JavaSE(十三)——函数式编程(Lambda表达式、方法引用、Stream流)

函数式编程 函数式编程 是 Java 8 引入的一个重要特性,它允许开发者以函数作为一等公民(first-class citizens)的方式编程,即函数可以作为参数传递给其他函数,也可以作为返回值。 这极大地提高了代码的可读性、可维护性和复用性。函数式编程的核心概念包括高阶函数、Lambda 表达式、函数式接口、流(Streams)和 Optional 类等。 函数式编程的核心是Lambda

PHP APC缓存函数使用教程

APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。(Linux APC扩展安装) 系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存 3600s(一小时)。但是这样仍会浪费大量C