极大似然估计 摘自维基百科

最大似然估计[编辑]  

原文地址:

http://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1

最大似然估计,也称为最大概似估计,是一种统计方法,它用来求一个样本集的相关概率密度函数的参数。这个方法最早是遗传学家以及统计学家罗纳德·费雪爵士在1912年至1922年间开始使用的。

 

目录

  [隐藏] 
  • 1 预备知识
  • 2 最大似然估计的原理
    • 2.1 注意
  • 3 例子
    • 3.1 离散分布,离散有限参数空间
    • 3.2 离散分布,连续参数空间
    • 3.3 连续分布,连续参数空间
  • 4 性质
    • 4.1 泛函不变性(Functional invariance)
    • 4.2 渐近线行为
    • 4.3 偏差
  • 5 参见
  • 6 外部资源

 

预备知识[编辑]

下边的讨论要求读者熟悉概率论中的基本定义,如概率分布、概率密度函数、随机变量、数学期望等。同时,还要求读者熟悉连续实函数的基本技巧,比如使用微分来求一个函数的极值(即极大值或极小值)。

最大似然估计的原理[编辑]

给定一个概率分布D,假定其概率密度函数(连续分布)或概率质量函数(离散分布)为f_D,以及一个分布参数\theta,我们可以从这个分布中抽出一个具有n个值的采样X_1, X_2,\ldots, X_n,通过利用f_D,我们就能计算出其概率:

\mathbb{P}(x_1,x_2,\dots,x_n) = f_D(x_1,\dots,x_n \mid \theta)

但是,我们可能不知道\theta的值,尽管我们知道这些采样数据来自于分布D。那么我们如何才能估计出\theta呢?一个自然的想法是从这个分布中抽出一个具有n个值的采样X_1, X_2, ..., X_n,然后用这些采样数据来估计\theta.

一旦我们获得X_1, X_2,\ldots, X_n,我们就能从中找到一个关于\theta的估计。最大似然估计会寻找关于\theta的最可能的值(即,在所有可能的\theta取值中,寻找一个值使这个采样的“可能性”最大化)。这种方法正好同一些其他的估计方法不同,如\theta的非偏估计,非偏估计未必会输出一个最可能的值,而是会输出一个既不高估也不低估的\theta值。

要在数学上实现最大似然估计法,我们首先要定义似然函数:

\mbox{lik}(\theta) = f_D(x_1,\dots,x_n \mid \theta)

并且在\theta的所有取值上,使这个函数最大化(一阶导数)。这个使可能性最大的\widehat{\theta}值即被称为\theta最大似然估计

注意[编辑]

  • 这里的似然函数是指x_1,x_2,\ldots,x_n不变时,关于\theta的一个函数。
  • 最大似然估计函数不一定是惟一的,甚至不一定存在。

例子[编辑]

离散分布,离散有限参数空间[编辑]

考虑一个抛硬币的例子。假设这个硬币正面跟反面轻重不同。我们把这个硬币抛80次(即,我们获取一个采样x_1=\mbox{H}, x_2=\mbox{T}, \ldots, x_{80}=\mbox{T}并把正面的次数记下来,正面记为H,反面记为T)。并把抛出一个正面的概率记为p,抛出一个反面的概率记为1-p(因此,这里的p即相当于上边的\theta)。假设我们抛出了49个正面,31个反面,即49次H,31次T。假设这个硬币是我们从一个装了三个硬币的盒子里头取出的。这三个硬币抛出正面的概率分别为p=1/3p=1/2p=2/3.这些硬币没有标记,所以我们无法知道哪个是哪个。使用最大似然估计,通过这些试验数据(即采样数据),我们可以计算出哪个硬币的可能性最大。这个似然函数取以下三个值中的一个:

\begin{matrix} \mathbb{P}(\mbox{H=49, T=31 }\mid p=1/3) & = & \binom{80}{49}(1/3)^{49}(1-1/3)^{31} \approx 0.000 \\ &&\\ \mathbb{P}(\mbox{H=49, T=31 }\mid p=1/2) & = & \binom{80}{49}(1/2)^{49}(1-1/2)^{31} \approx 0.012 \\ &&\\ \mathbb{P}(\mbox{H=49, T=31 }\mid p=2/3) & = & \binom{80}{49}(2/3)^{49}(1-2/3)^{31} \approx 0.054 \\ \end{matrix}

我们可以看到当\widehat{p}=2/3时,似然函数取得最大值。这就是p的最大似然估计。

离散分布,连续参数空间[编辑]

现在假设例子1中的盒子中有无数个硬币,对于0\leq p \leq 1中的任何一个p, 都有一个抛出正面概率为p的硬币对应,我们来求其似然函数的最大值:

\begin{matrix} \mbox{lik}(\theta) & = & f_D(\mbox{H=49,T=80-49}\mid p) = \binom{80}{49} p^{49}(1-p)^{31} \\ \end{matrix}

其中0\leq p \leq 1. 我们可以使用微分法来求最值。方程两边同时对p取微分,并使其为零。

\begin{matrix} 0 & = & \frac{d}{dp} \left( \binom{80}{49} p^{49}(1-p)^{31} \right) \\   &   & \\   & \propto & 49p^{48}(1-p)^{31} - 31p^{49}(1-p)^{30} \\   &   & \\   & = & p^{48}(1-p)^{30}\left[ 49(1-p) - 31p \right] \\ \end{matrix}
在不同比例参数值下一个二项式过程的可能性曲线t = 3, n = 10;其最大似然估计值发生在其众数并在曲线的最大值处。

其解为p=0p=1,以及p=49/80.使可能性最大的解显然是p=49/80(因为p=0p=1这两个解会使可能性为零)。因此我们说最大似然估计值\widehat{p}=49/80.

这个结果很容易一般化。只需要用一个字母t代替49用以表达伯努利试验中的被观察数据(即样本)的“成功”次数,用另一个字母n代表伯努利试验的次数即可。使用完全同样的方法即可以得到最大似然估计值:

\widehat{p}=\frac{t}{n}

对于任何成功次数为t,试验总数为n的伯努利试验。

连续分布,连续参数空间[编辑]

最常见的连续概率分布是正态分布,其概率密度函数如下:

f(x\mid \mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}

现在有n个正态随机变量的采样点,要求的是一个这样的正态分布,这些采样点分布到这个正态分布可能性最大(也就是概率密度积最大,每个点更靠近中心点),其n个正态随机变量的采样的对应密度函数(假设其独立并服从同一分布)为:

f(x_1,\ldots,x_n \mid \mu,\sigma^2) = \left( \frac{1}{2\pi\sigma^2} \right)^\frac{n}{2} e^{-\frac{ \sum_{i=1}^{n}(x_i-\mu)^2}{2\sigma^2}}

或:

f(x_1,\ldots,x_n \mid \mu,\sigma^2) = \left( \frac{1}{2\pi\sigma^2} \right)^{n/2} \exp\left(-\frac{ \sum_{i=1}^{n}(x_i-\bar{x})^2+n(\bar{x}-\mu)^2}{2\sigma^2}\right),

这个分布有两个参数:\mu,\sigma^2.有人可能会担心两个参数与上边的讨论的例子不同,上边的例子都只是在一个参数上对可能性进行最大化。实际上,在两个参数上的求最大值的方法也差不多:只需要分别把可能性\mbox{lik}(\mu,\sigma) = f(x_1,,\ldots,x_n \mid \mu, \sigma^2)在两个参数上最大化即可。当然这比一个参数麻烦一些,但是一点也不复杂。使用上边例子同样的符号,我们有\theta=(\mu,\sigma^2).

最大化一个似然函数同最大化它的自然对数是等价的。因为自然对数log是一个连续且在似然函数的值域内严格递增的上凸函数。[注意:可能性函数(似然函数)的自然对数跟信息熵以及Fisher信息联系紧密。]求对数通常能够一定程度上简化运算,比如在这个例子中可以看到:

\begin{matrix} 0 & = & \frac{\partial}{\partial \mu} \log \left( \left( \frac{1}{2\pi\sigma^2} \right)^\frac{n}{2} e^{-\frac{ \sum_{i=1}^{n}(x_i-\bar{x})^2+n(\bar{x}-\mu)^2}{2\sigma^2}} \right) \\   & = & \frac{\partial}{\partial \mu} \left( \log\left( \frac{1}{2\pi\sigma^2} \right)^\frac{n}{2} - \frac{ \sum_{i=1}^{n}(x_i-\bar{x})^2+n(\bar{x}-\mu)^2}{2\sigma^2} \right) \\   & = & 0 - \frac{-2n(\bar{x}-\mu)}{2\sigma^2} \\ \end{matrix}

这个方程的解是\widehat{\mu} = \bar{x} = \sum^{n}_{i=1}x_i/n.这的确是这个函数的最大值,因为它是\mu里头惟一的一阶导数等于零的点并且二阶导数严格小于零。

同理,我们对\sigma求导,并使其为零。

\begin{matrix} 0 & = & \frac{\partial}{\partial \sigma} \log \left( \left( \frac{1}{2\pi\sigma^2} \right)^\frac{n}{2} e^{-\frac{ \sum_{i=1}^{n}(x_i-\bar{x})^2+n(\bar{x}-\mu)^2}{2\sigma^2}} \right) \\   & = & \frac{\partial}{\partial \sigma} \left( \frac{n}{2}\log\left( \frac{1}{2\pi\sigma^2} \right) - \frac{ \sum_{i=1}^{n}(x_i-\bar{x})^2+n(\bar{x}-\mu)^2}{2\sigma^2} \right) \\   & = & -\frac{n}{\sigma} + \frac{ \sum_{i=1}^{n}(x_i-\bar{x})^2+n(\bar{x}-\mu)^2}{\sigma^3} \\ \end{matrix}

这个方程的解是\widehat{\sigma}^2 = \sum_{i=1}^n(x_i-\widehat{\mu})^2/n.

因此,其关于\theta=(\mu,\sigma^2)最大似然估计为:

\widehat{\theta}=(\widehat{\mu},\widehat{\sigma}^2) = (\bar{x},\sum_{i=1}^n(x_i-\bar{x})^2/n).

性质[编辑]

泛函不变性(Functional invariance)[编辑]

如果\widehat{\theta}\theta的一个最大似然估计,那么\alpha = g(\theta)的最大似然估计是\widehat{\alpha} = g(\widehat{\theta}).函数g无需是一个一一映射。请参见George Casella与Roger L. Berger所著的Statistical Inference定理Theorem 7.2.10的证明。(中国大陆出版的大部分教材上也可以找到这个证明。)

渐近线行为[编辑]

最大似然估计函数在采样样本总数趋于无穷的时候达到最小方差(其证明可见于Cramer-Rao lower bound)。当最大似然估计非偏时,等价的,在极限的情况下我们可以称其有最小的均方差。 对于独立的观察来说,最大似然估计函数经常趋于正态分布。

偏差[编辑]

最大似然估计的偏差是非常重要的。考虑这样一个例子,标有1nn张票放在一个盒子中。从盒子中随机抽取票。如果n是未知的话,那么n的最大似然估计值就是抽出的票上标有的n,尽管其期望值的只有(n+1)/2.为了估计出最高的n值,我们能确定的只能是n值不小于抽出来的票上的值。

转载于:https://www.cnblogs.com/Anykong/p/3741066.html

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

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

相关文章

unity改变图片像素大小_类动森像素画反向转换 (xBR)

起因前阵子沉迷动森,DIY 样式的画风真的超萌(゚д゚)ノ,恰巧在推上看到有个小姐姐在讨论这个像素画转换的算法,就想在 Unity 里整整。最后实现的镜头特效效果如下图。像素缩放算法常见的像素缩放算法对比图如下…

【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ

暴力 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 701 const int dx[]{0,0,-1,1},dy[]{-1,1,0,0}; int n,mem[N][N],a[N][N],m; bool cant[N][N]; int f(int x,int y) {if(mem[x][y]) return mem[x][y];mem[x][…

c语言程序2

题目&#xff1a;有一分数序列&#xff1a;2/1&#xff0c;3/2&#xff0c;5/3&#xff0c;8/5&#xff0c;13/8&#xff0c;21/13...求出这个数列的前20项之和。1.程序分析&#xff1a;请抓住分子与分母的变化规律。2.程序源代码&#xff1a; #include "stdio.h" …

99 网络编程_传统网络工程师如何利用python实现公司内网IP地址信息查询?

网工圈网络工程师阿龙圈内最早的公益公众号,本号已认证&#xff01;学网络关注我一个就够了(关注近5w)关注听说99%的网工都来这里充电吖关注我&#xff0c;一个老HCIE(编号3558)带你轻松玩网络技术&#xff01; 交个朋友&#xff0c;一起和一个技术狂热者相互交流&#xff0c;共…

[原创]windows server 2012 AD架构试验系列 – 12 配置操作主机

[原创]windows server 2012 AD架构试验系列 – 12 配置操作主机ActiveDirectory支持域中所有域控制器之间的目录数据存储的多主机复制&#xff0c;因此域中的所有域控制器实质上都是对等的。ActiveDirectory支持域中所有域控制器之间的目录数据存储的多主机复制&#xff0c;因此…

应用沙盒

应用沙盒结构&#xff1a; 应用程序包&#xff1a;包含了所有的资源文件和可执行文件&#xff0c;这个压缩包的内容是不可以修改的。 Documents:保存应用程序运行时生成的需要持久化的的数据&#xff0c;ITunes同步设备时会备份该目录。 Library/Caches:保存应用程序运行时生成…

笔记本换内存条

步骤一 拆除护盖 笔记本内存插槽上都有护盖保护&#xff0c;首先第一步就是先将护盖拆掉。大多数笔记本的护盖上都有标识&#xff0c;有的是内凹的内存图形&#xff0c;而且从护盖的大小也能看出来&#xff0c;一般内存护盖的大小&#xff0c;就比内存条大一点。当然有不少笔记…

python更新es数据_python操作es增删改查

1.查询(search)# 获取案例库信息app.route(/get_dcn_cases, methods[GET, POST])def get_dcn_cases():# 告警事件数据dcn_cases_query {"_source": {"includes": ["faultName", "endTime", "startTime", "checked&quo…

angularJS 指令实践

AngularJS 指令&#xff08;Directives&#xff09;实践指南(1) 2014-03-12 10:22 陈鑫伟 编译 伯乐在线我要评论(0)字号&#xff1a;T|T一个指令用来引入新的HTML语法。指令是DOM元素上的标记&#xff0c;使元素拥有特定的行为。举例来说&#xff0c;静态的HTML不知道如何来创…

数据结构四双向链表

双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。而之前的单链表为单向链表&#xf…

smtplib python教程_Python使用poplib模块和smtplib模块收发电子邮件的教程

poplib模块接收邮件python的poplib模块是用来从pop3收取邮件的&#xff0c;也可以说它是处理邮件的第一步。POP3协议并不复杂&#xff0c;它也是采用的一问一答式的方式&#xff0c;你向服务器发送一个命令&#xff0c;服务器必然会回复一个信息。pop3命令码如下&#xff1a;命…

C#发送电子邮件 (异步) z

///验证电子邮件的正则表达式 string emailStr "^([\w-\.])((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]\.)))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"; /// <summary> /// 异步发送电子邮件 /// </summary> /// <p…

Linux服务器的初步配置流程

开发网站的时候&#xff0c;常常需要自己配置Linux服务器。 本文记录配置Linux服务器的初步流程&#xff0c;也就是系统安装完成后&#xff0c;下一步要做的事情。这主要是我自己的总结和备忘&#xff0c;如果有遗漏&#xff0c;欢迎大家补充。 下面的操作针对Debian/Ubuntu系统…

C语言趣味程序百例精解

1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组&#xff0c;这个问题十分简单。但若规定不能使用数组&#xff0c;问题就变得不容易了。 关键在于余弦曲线在0~360度的区间内&#xff0c;一行中要显示两个点&#xf…

cocos2dx 圆盘抽奖_cocoscreator之微信小游戏的抽奖转盘

许多小游戏里面都有涉及到抽奖环节&#xff0c;所以就可能会用到抽奖转盘的制作&#xff0c;今天分享一个自己左转盘的小小过程。1、准备材料过程不多说&#xff0c;拼完界面之后大概是这样的&#xff1a;2、给界面绑定脚本&#xff0c;在脚本的properties里面绑定转盘节点&…

测试报告分析

测试分析报告 1&#xff0e;引言 1 1.1编写目的 1 1.2项目背景 1 1.3参考资料 2 2&#xff0e;测试计划执行情况 2 2.1测试项目 2 2.2测试机构和人员 3 2.3测试结果 3 3&#xff0e;软件需求测试结论 7 4&#xff0e;评价 7 4.1软件能力 7 4.2缺陷和限制 7 4.3建议 7 4.4测试结…

不要学习代码,要学会思考(转)

英文原文&#xff1a;Dont learn to code, learn to think 译/赖信涛 这是一个人人都在学习编程的时代&#xff1a;Code.org请了比尔盖茨&#xff0c;马克扎克伯格和克里斯波什等这些名人&#xff0c;来告诉你&#xff0c;每个人都可以编程&#xff1b;CoderDojo’s在各个国家悄…

python读取多个sheet文件_PythonPandas excel文件如何一次读取所有工作表,并再次写入多个工作表?,pythonpandasexcel,一次性,全部,sheet,重新...

关于如何一次性读取全部sheet&#xff0c;可看我之前写的一篇博客&#xff1b;本文重点讲述如何对同一个excel文件一次性写入多个sheet数据代码示例&#xff1a;import pandas as pdwriter pd.ExcelWriter("新数据.xlsx")sheet1Data [] # 这个为要向Sheet1写入的数…

stdin,stdout,stderr

我们在写C程序时经常遇到printf&#xff08;&#xff09;&#xff0c;fprintf&#xff08;&#xff09;&#xff0c;perror&#xff08;&#xff09;&#xff0c;这些东西到底有什么作用。说到这不得不提及stdin&#xff0c;stdout&#xff0c;stderr。想想&#xff0c;我们在用…

Hadoop的改进实验(中文分词词频统计及英文词频统计)(4/4)

声明&#xff1a; 1&#xff09;本文由我bitpeach原创撰写&#xff0c;转载时请注明出处&#xff0c;侵权必究。 2&#xff09;本小实验工作环境为Windows系统下的百度云&#xff08;联网&#xff09;&#xff0c;和Ubuntu系统的hadoop1-2-1&#xff08;自己提前配好&#xff0…