最大似然法 (1)基本原理

以下内容都是基于Christopher P. Randle教授在研究组上交流时的课件整理而来。 

最大似然法选择的最优树是使得观察到的性状分布(character state distribution)出现的概率最大的树。

最重要的是理解似然值(likelihood)。

What is Likelihood? 什么是似然值?

The likelihood of a hypothesis is the proportion to the probability that it is true. Meaning, the likelihood of hypothesis is the probability of observing data given hypothesis h.

尝试翻译一下,就是给出一个假设h,该假设的似然值L(h)就是:在此假设是真实条件下,发生事件d的概率p(d/h)。

举个简单的例子:

分子实验室里有两个好朋友Ron和Anthony要抛硬币决定谁去干活。Anthony从口袋里掏出一枚硬币,但是Ron一直怀疑Anthony的人品,因为Anthony经常放一枚假硬币(假硬币正面朝上的概率为90%,而真硬币为50%)在口袋里。为了区分真假硬币,两个人没有去找如来佛祖辨真假,而是开始炫统计学。

此时有两个相互对立的假设(competing hypotheses):

假设1:硬币是真的

假设2:硬币是假的

而最大似然值方法就可以用来评估这两个两个相互对立的假设谁更有可能是真的。

在计算这两个假设的似然值之前,我们先来说下二项分布(binomial distribution)。

在生活中,我们经常会碰到两个对立的事件,比如现在的硬币是真是假。二者非此即彼,概率相加为1。

现在还是以抛硬币为例,结果只有两种:正面朝上和反面朝上。抛硬币是个独立(每次抛硬币事件之间不会相互影响)可重复事件。假设正面朝上的概率为p,抛n次硬币,正面朝上出现x次的概率为:

 

然后两人开始抛硬币,抛了4次,有3次是正面朝上。


在假设1硬币是真的条件下,正面朝上的概率p=50%,此时

假设2硬币是假的条件下,p=90%,此时

 

0.25和0.29好像相差不大啊,于是两人继续抛了4次,都是正面朝上,现在n=8x=7,同上面的计算方式得到:L(h1)=0.03125,L(h2)=0.38264

假设2硬币是假的似然值就比假设1大多了。统计学告诉我们这枚硬币大概率是假的。

Phylogeny and Likelihood 系统发育和似然值

The likelihood of a phylogeny is the probability a character state distribution (the data) given that phylogeny. The tree hypothesis (topology+ branch lengths) that maximizes the probability of having observed data, is the tree of maximum likelihood, and is to be preferred over less "likely" hypotheses.

简单翻译一下,就是基于现有的性状数据,存在千千万种假设的系统发育树。对某一给定的系统发育树,在它是真实的这一假设前提下,计算使得现有性状分布出现的概率,就是该树的似然值。似然值最大的那棵系统发育树(已给定拓扑结构和分支长度信息)就是最大似然树,我们更倾向于选择它。用公式表示如下:


那么如何估算系统发育树的似然值呢(estimating the likelihood of a topology)?

再来举一个简单的例子:


有4个taxa:1、2、3、4,它们的一段DNA序列信息可以看作一套性状J(a set of character J),由在每个位点上的碱基(性状1、2、3··j··n)组成。

对某一个位点j,我们假设它演化的拓扑结构(topology1)如上图右边所展示。

最大似然法和最大简约法的不同就在于它考虑了所有的情况。在最大简约法里,给出右面的topology,我们的直觉就是taxon1和taxon2上面的node应该是碱基C,这是最简单的一种解释,而最大似然法会把所有的四种碱基的情况考虑进去 。两个未知的性状状态(character state),即node上的碱基,都有四种可能,即A、C、T、G四种碱基,所以可能情况的总和是4的二次方,共16种可能性,对这16种可能性我们都要进行估计。

The likelihood of topology 1 given character j is the sum of the probabilities of all state optimizations for two nodes.

对j性状来说,给定的topology1这一拓扑结构的似然值就是两个节点上16种碱基分布概率的加和。

值得注意的是,topology1是只是所有可能的拓扑结构中的一种假设。 除了topology1,还有其他可能的topologies,比如taxon1和taxon2是独立演化出C。 

The likelihood of the tree for all characters in set J, then will be the product of the likelihoods estimated for each character in set J, or the joint probability。

如果系统发育树把J这套性状中的所有性状都考虑进去了(也就是这一段DNA序列所有碱基位点),那么该树的似然值就是所有性状估算的似然值的的乘积。 

 每个树的似然值都很小,因此我们一般用自然对数(ln值)表示

The computational difficulty of estimating the likelihood for any one character on any one tree will grow exponentially with an increase in the number of taxa(n).

通过上一节我们知道,随着分类群的增加,可能的拓扑结构数量会呈指数式增长,这就造成了计算上的困难。

幸运的是,Felsenstein(1981)想出了修剪算法(pruning algorithm)。这里放一段这个算法具体原理的英文原文:

Simply, the method calculates likelihoods of nodes individually under all state optimizations starting at the nodes near the tips and working toward internal nodes. Rather than estimating the likelihood of an entire tree given a set of state optimizations, the pruning algorithm avoids repeating the calculations of any state optimizations for any node by rearranging the terms in the estimate, so that calculation occurs one node at a time.

这里求助了deepseek,用它给的例子解释一下:

假设人的鼻子有三种:高鼻,矮鼻和塌鼻,这里有一个100多代的大家族,我们想通过后代的鼻子特征来知道老祖宗的特征,和这个特征是如何遗传的。如果用我们上述讲到的最大似然值的计算方法,我们要从最早的祖先开始,他有三种可能鼻子性状,然后下一代人又有三种鼻子性状,就算100代单传,我们也要计算计算量也3的100次方。

而修剪算法就会从现在活着的最年轻一代人(相当于系统发育树中的末端节点tips)开始,倒推上一代(相当于系统发育树中的internal nodes)的性状。比如儿子是高鼻,就明确了在儿子一代,高鼻概率是1,矮鼻和塌鼻概率是0。然后对父亲一代的推论是:不管爷爷一代的性状如何,根据儿子是高鼻,父亲高鼻的概率是XX,矮鼻是YY…,最后向上不断倒推到老祖宗三种鼻子性状的概率。

这个方法的好处是

1. 避免了重复计算,比如“爷爷→爸爸→你”和“爷爷→叔叔→表弟”两条路径都涉及爷爷,传统方法会重复计算爷爷,而剪枝法只算一次。

2. 每次只关心“父子两代”的关系,其他信息被压缩传递(类似数学中的动态规划:将大问题拆解为小问题,并存储中间结果避免重复计算)

举一个更生活化的例子,我们在拼图时都是从最边缘处(末端节点)往里拼,而不会从中心(根节点)随机试错。

What is a model? 什么是模型?

到目前为止,我们还没说到系统发育树是怎样把性状分布概率的相关信息包含进去的,我们需要用模型来清楚地展示性状状态的发生过程。

Tree imply nothing regarding probability of state change. A process model of evolution is required to assess the likelihood of a tree.

怎么把一系列性状、系统发育树与概率联系起来呢(how the probability of a set of characters is estimated for a given phylogeny and model)?我们就需要模型(model)。

A model is simply a hypothesis that has been formulated statistically so that the predictions of that model can take the form of some probability distribution. The essential aspects of a model are called parameters. These govern how the prediction of the model are allowed to vary.

模型就是用数学公式来表示的一个假设,模型的预测就会以概率分布的形式呈现出来。模型最关键的是它的参数,参数决定了模型如何做出预测。

我们在这里举一个简单的建立模型的例子:

还是刚才的抛硬币问题,Ron掏出一枚硬币,我们给出一个假设:这是一枚真硬币,这时用参数:正面朝上的概率p就可以表示这个假设。在“这是一枚真硬币”假设前提下下,参数p的值是50%。

这是一个简单的假设模型,一个参数就可以搞定。但是当情况复杂时需要多个参数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容