📜  统计-最佳点估计(1)

📅  最后修改于: 2023-12-03 15:27:36.965000             🧑  作者: Mango

统计-最佳点估计

在概率论和数理统计中,最大似然估计是一种重要的参数估计方法,被广泛地应用于工程技术和科学研究中。

定义

最大似然估计就是找到一个参数值,使得给定的数据样本在这个参数下出现的概率最大。可以认为是一种反推法。

公式

设 $X_1, X_2, \cdots, X_n$ 是来自总体的一个样本,其概率密度函数为 $f(x; \theta_1, \theta_2, \cdots, \theta_k)$,其中 $\theta_1, \theta_2, \cdots, \theta_k$ 是待估计的未知参数。设 $x_1, x_2, \cdots, x_n$ 是 $X_1, X_2, \cdots, X_n$ 的观察值,则样本联合分布函数为:

$$ L(\theta_1, \theta_2, \cdots, \theta_k;x_1,x_2,\cdots,x_n)=\prod_{i=1}^{n}f(x_i;\theta_1,\theta_2,\cdots,\theta_k) $$

最大似然估计是指寻找$\hat{\theta_1},\hat{\theta_2},\cdots,\hat{\theta_k}$,满足当 $\theta_1=\hat{\theta_1},\theta_2=\hat{\theta_2},\cdots,\theta_k=\hat{\theta_k}$ 时,$L(\theta_1,\theta_2,\cdots,\theta_k;x_1,x_2,\cdots,x_n)$ 取最大值。

通常,为了方便,我们会处理对数似然函数:$$ \ln L(\theta_1, \theta_2, \cdots, \theta_k) = \sum_{i=1}^{n} \ln f(x_i; \theta_1, \theta_2, \cdots, \theta_k) $$

实现

最大似然估计的实现是基于样本集的,所以在实现中,我们需要先读入样本值。

以下是 Python 实现代码片段:

import math

def likelihood(theta, x):
    n = len(x)
    p = 1
    for i in range(n):
        p *= (theta**x[i]) * math.exp(-theta) / math.factorial(x[i])
    return math.log(p)

def maximum_likelihood(x):
    theta_ml = x[0]
    L_max = likelihood(theta_ml, x)
    step = theta_ml / 100
    for theta in range(step, int(max(x)), step):
        L = likelihood(theta, x)
        if L > L_max:
            L_max = L
            theta_ml = theta
    return theta_ml

其中,likelihood 函数用于计算对数似然函数,maximum_likelihood 函数用于找到最大似然估计的值。

以上代码使用了循环的方式搜索最大值,这样的方式有一定的局限性,当样本更大、方差更大时,该方法的效率会变得较低。更高效的方法可使用数值优化算法,如梯度下降法和牛顿法。

总结

最大似然估计是一种常用的参数估计方法,其思想简单,实现也较为容易。在实践中,为了维持数据准确性和可靠性,我们需对样本数量进行合理控制,并针对特定样本使用不同的分布函数和处理方法。