人们经常用样本(sample)来估计总体(population)的参数, 假定一个概率密度函数,如正态分布,并给出所有可能的参数组合,那么每一种参数组合所生成当前样本的可能性分别有多大?将最可能产生当前样本的参数,作为总体参数的估计,这就是极大似然(Maximum Likelihood)思想的体现。
在实际的计算中, 人们往往需要先假定某一概率密度, 如正态分布,
$p.d.f. (y) = \frac{1} {\sqrt{2 \pi} \sigma} e^{-1/2 \frac{(y- \mu)^2} {\sigma^2}}$
1 | pdfi <- 1/(sqrt(2*pi)*sigma) * exp(-1/2 * (obs - mu)^2/(sigma^2)) |
其中,
obs
为某一次观测值mu
为 总体平均值的任意估计值sigma
为 总体标准差的任意估计值,
则可以求得观测到该次观测值的概率pdfi
对所有的样本数据的概率密度相成, 即获得联合概率密度, 即似然函数。
似然函数 L = pdf1 * pdf2 * pdf3 * ... * pdfn
$L = \prod_{i=1}^n \frac{1} {\sqrt{2 \pi} \sigma} e^{-1/2 \frac{(y- \mu)^2} {\sigma^2}}$
那么,什么样的参数, 才能保证Likelihood函数取最大值?
由于联合概率密度的值往往非常小,在计算机中难以处理,一般情况下, 将似然函数取对数, 便于数值操作。 此时,做一系列的变换。 :
如:
$LogL = \sum_{i=1}^n \log\left ( \frac{1} {\sqrt{2 \pi} \sigma} e^{-1/2 \frac{(y- \mu)^2} {\sigma^2}} \right )$
$LogL= \sum_{i=1}^n \left [ \log\left ( \frac{1} {\sqrt{2 \pi} \sigma} \right ) + \log\left ( e^{-1/2 \frac{(y- \mu)^2} {\sigma^2}} \right ) \right ]$
$LogL= \sum_{i=1}^n \log(2 \pi)^{-1/2} + \sum_{i=1}^n \log\left (\frac{1} {\sigma}\right ) + \sum_{i=1}^n \left ( -1/2 \frac{(y- \mu)^2} {\sigma^2} \right )$
$LogL= -\frac{n} {2} \log(2 \pi) - n \log(\sigma) - \frac{1} {2 \sigma^2} \sum_{i=1}^n ( y - \mu)^2$
若认为LogL为$\mu$的函数, 若保证LogL最大值,令 $\sum_{i=1}^n ( y - \mu)^2$ 取最大值,则
$\mu = \frac{\sum_{i=1}^n y_i}{n}$
另外一方面, 若认为LogL为$\sigma$的函数, 将LogL函数对$\sigma$求导, 令导数为0, 可求得极值。
$\frac{\delta LogL}{\delta \sigma} = -\frac{n}{\sigma} - (-2) \frac{1}{2} \sum_{i=1}^n (y - \mu)^2 \sigma^{-3}$
$\frac{\delta LogL}{\delta \sigma} = -\frac{n}{\sigma} + \frac{1}{\sigma^2} \sum_{i=1}^n (y - \mu)^2$
令导数为0, 得
$\frac{n}{\sigma} = \frac{1}{\sigma^3} \sum_{i=1}^n (y - \mu)^2$
$\sigma^2 = \frac{\sum_{i=1}^n (y - \mu)^2}{n}$
此时, 带入之前$\mu$,求得$\sigma$的估计
$\hat{\sigma}^2 = \frac{\sum_{i=1}^n (y - \bar{y})^2}{n}$
用极大似然估计求得的$\sigma$值为有偏估计, 即样本的最可能取值。
以上是解析解。 在实际情况下, 人们常用多种优化方法, 求得极大似然估计的数值解。 这些方法包括
"Nelder-Mead"
(Nelder and Mead ,1965),"BFGS"
(Broyden, Fletcher, Goldfarb and Shanno, 1970),"CG"
(Fletcher and Reeves,1964),"L-BFGS-B"
(Byrd et. al. ,1995) ,"SANN"
(Belisle 1992), 等。
由此看来, 极大似然估计, 首先是按照假定的概率密度, 求得联合概率密度, 即似然函数,进一步写成对数似然函数, 再用数值优化的方法, 求得对数似然函数所对应的点(各参数)。即获得参数的极大然估计。
下面提供一个实例:
问题:
假设一批树木中抽取若干个体,胸径分别为 150, 124, 100, 107, 170, 144, 113, 108, 92, 129, 123, 118,试求这批树木胸径的平均值和标准差。
分析:
如果用这批样本数据直接计算平均值和方差, 可以得到总体平均值和标准差的估计。
1 | dat <- c(150, 124, 100, 107, 170, 144, 113, 108, 92, 129, 123, 118) |