跳到主要内容

极大似然估计

一、直观理解:哪组参数最能“解释”眼前的数据​

极大似然估计(Maximum Likelihood Estimation, MLE)的思想可以概括为一句话:

在给定模型的前提下,选择使当前样本出现概率最大的那组参数。

假设你连续观测到 10 次投篮,命中 7 次。若每次独立、命中概率为 pp,则样本的概率为

L(p)=p7(1−p)3L(p)=p^7(1-p)^3

在 p∈[0,1]p\in[0,1] 上最大化 L(p)L(p),得到 p^=0.7\hat p=0.7。也就是说:在所有可能的命中率里,0.70.7 最能解释“10 投 7 中”这一结果。

与矩估计不同,MLE 直接使用完整的概率模型(似然函数),而不是只匹配若干矩。模型正确时,MLE 通常具有更好的大样本性质。

需要牢记:似然是“参数的函数”,不是数据的概率分布本身;最大化似然得到的是参数估计,不等于“模型一定正确”。

二、适用场景与优缺点​

类型说明
适用场景分布族明确(正态、二项、泊松、指数、Weibull、Logistic 等);回归/分类中的参数估计;含删失、截断或复杂抽样结构的数据;需要点估计并进一步构造置信区间或似然比检验。
核心优点大样本下通常相合、渐近正态、渐近有效;框架统一,可推广到回归与多元模型;便于做似然比检验和模型比较(AIC/BIC)。
局限与缺点依赖分布假设,模型错设时可能“精确地错”;小样本可能有偏;似然非凸时存在局部最优;边界参数(如方差接近 0)会使正则条件失效。

使用前应确认:

  1. 观测是否独立(或已正确写出联合似然/偏似然);
  2. 分布与链接函数是否与数据生成机制相符;
  3. 参数空间是否开放、估计是否可能落在边界;
  4. 是否需要稳健标准误或夹心估计,以应对轻度错设。

三、核心原理:从似然到得分方程​

设样本 x=(x1,…,xn)x=(x_1,\ldots,x_n),参数 θ∈Θ\theta\in\Theta。在独立同分布假定下,似然与对数似然为

L(θ)=∏i=1nf(xi∣θ),ℓ(θ)=∑i=1nlog⁡f(xi∣θ)L(\theta)=\prod_{i=1}^{n}f(x_i\mid\theta),\qquad \ell(\theta)=\sum_{i=1}^{n}\log f(x_i\mid\theta)

极大似然估计定义为

θ^MLE=arg⁡max⁡θ∈Θℓ(θ)\hat\theta_{\mathrm{MLE}}=\arg\max_{\theta\in\Theta}\ell(\theta)

若 ℓ\ell 可微且最大值在内部取得,则满足得分方程(score equation)

∂ℓ(θ)∂θ∣θ=θ^=0\frac{\partial \ell(\theta)}{\partial\theta}\Big|_{\theta=\hat\theta}=0

二阶导数(Hessian)的负期望是 Fisher 信息矩阵 I(θ)I(\theta)。在正则条件下,

n(θ^−θ0)→dN ⁣(0, I(θ0)−1)\sqrt{n}(\hat\theta-\theta_0)\xrightarrow{d}N\!\left(0,\,I(\theta_0)^{-1}\right)

因此可用观测信息矩阵构造近似标准误与 Wald 置信区间:

θ^±z1−α/2Var^(θ^)\hat\theta\pm z_{1-\alpha/2}\sqrt{\widehat{\mathrm{Var}}(\hat\theta)}

也可用剖面似然(profile likelihood)或 Bootstrap 得到更稳健的区间。

正态均值示例:Xi∼N(μ,σ2)X_i\sim N(\mu,\sigma^2) 且 σ2\sigma^2 已知时,μ^=Xˉ\hat\mu=\bar X,与矩估计相同;σ2\sigma^2 未知时,

μ^=Xˉ,σ^MLE2=1n∑i=1n(Xi−Xˉ)2\hat\mu=\bar X,\qquad \hat\sigma^2_{\mathrm{MLE}}=\frac{1}{n}\sum_{i=1}^{n}(X_i-\bar X)^2

(无偏估计则分母为 n−1n-1。)

四、关键决策​

1. 写对似然比写对优化更重要​

删失数据要用生存似然,分层抽样要乘入抽样权重或写出正确联合分布;“把软件默认似然当黑箱”是常见失误。

2. 点估计之后必须量化不确定性​

至少给出标准误与置信区间;非线性参数可报告变换后的区间(如 log⁡σ\log\sigma 再还原)。

3. 模型比较用谁?​

  • 嵌套模型:似然比检验;
  • 非嵌套或预测导向:AIC / BIC / 交叉验证;
  • 关注校准与判别时,辅以残差与样本外指标。

4. 数值优化注意点​

多初值启动;参数变换保证约束(如 σ=eη\sigma=e^\eta);检查梯度与 Hessian 条件数;对混合模型警惕标签切换与局部极大。

5. 错设怎么办?​

若只关心某些参数的估计方程,可改用准似然、GEE 或夹心协方差;若分布完全不可信,考虑半参数或稳健方法。

五、MATLAB 示例​

对正态样本做 MLE,并给出均值的近似置信区间;再对泊松样本演示 mle。

rng(1);
x = normrnd(5, 2, 200, 1);

% 方法1:专用函数
phat = mle(x, "Distribution", "normal"); % [mu, sigma]
fprintf("正态 MLE: mu=%.4f, sigma=%.4f\n", phat(1), phat(2));

% 方法2:手写对数似然并 fminsearch
nll = @(theta) -sum(log(normpdf(x, theta(1), exp(theta(2)))));
theta0 = [mean(x), log(std(x))];
theta_hat = fminsearch(nll, theta0);
mu_hat = theta_hat(1);
sig_hat = exp(theta_hat(2));
fprintf("手写优化: mu=%.4f, sigma=%.4f\n", mu_hat, sig_hat);

% 观测信息近似:正态均值的 SE = sigma/sqrt(n)
se_mu = sig_hat / sqrt(numel(x));
z = norminv(0.975);
ci_mu = mu_hat + [-1, 1] * z * se_mu;
fprintf("mu 的近似 95%% CI: [%.4f, %.4f]\n", ci_mu(1), ci_mu(2));

% 泊松 MLE = 样本均值
y = poissrnd(3.2, 500, 1);
lam = mle(y, "Distribution", "poisson");
fprintf("泊松 lambda MLE = %.4f (样本均值=%.4f)\n", lam, mean(y));

% 似然比:检验 H0: mu = 5
nll_h0 = nll([5, log(sig_hat)]);
nll_h1 = nll([mu_hat, log(sig_hat)]);
LR = 2 * (nll_h0 - nll_h1); % 注意 nll 是负对数似然
pval = 1 - chi2cdf(LR, 1);
fprintf("LR 统计量=%.4f, p=%.4g\n", LR, pval);

六、如何解释结果​

报告 MLE 时建议写清:

  1. 概率模型与独立性假定;
  2. 参数含义与单位;
  3. 点估计、标准误、置信区间;
  4. 优化是否收敛、是否多初值验证;
  5. 与矩估计/贝叶斯估计的对照(如有);
  6. 模型诊断:QQ 图、残差、成对得分检验、信息准则;
  7. 若用于后续预测或决策,说明估计误差如何传递。

把 θ^\hat\theta 翻译成实际语句,例如:“在指数分布假定下,平均失效时间估计为 126 小时,95% 区间为 [110, 145]”,而不是只写“lambda=0.0079”。

七、常见误区​

1. 似然写错仍“成功收敛”​

软件总会给出一个数;写错删失指示、暴露时间或链接函数时,结果可能毫无意义。

2. 把 MLE 的渐近区间用于极小样本​

nn 很小时,正态近似可能很差,应考虑精确方法、Bootstrap 或贝叶斯区间。

3. 忽略局部极大​

混合分布、复杂非线性模型中,不同初值可能收敛到不同点,必须做稳健性检查。

4. 混淆 σ\sigma 的 MLE 与无偏估计​

报告方差时要说明分母是 nn 还是 n−1n-1,并与后续 t 区间使用的约定一致。

5. 模型错设却过度解释“显著”​

MLE 在错设模型下仍可能给出很小的 p 值。显著只相对于“该模型下的假设”,不是真理认证。

八、小结​

极大似然估计的核心是:

选择使观测数据最可能出现的参数。

它是统计建模的中枢工具:统一了点估计、区间估计与检验。用好 MLE 的关键不在“会调用 mle”,而在写对似然、检查假设、报告不确定性,并在模型可能错设时保持克制。