似然函数定义与代码示例解析

2025-04-23 10

Image

似然函数定义

似然函数(Likelihood Function) 是统计学中用于描述在给定参数条件下观测到某一数据的可能性的函数。它是概率密度函数(对于连续分布)或概率质量函数(对于离散分布)的“反转”,即固定参数,将观测数据视为变量。

数学定义

设 $X$ 是随机变量,$\theta$ 是参数,$x$ 是观测到的数据。似然函数 $L(\theta | x)$ 定义为在参数 $\theta$ 下观测到数据 $x$ 的概率(或概率密度):

  • 对于离散随机变量:$L(\theta | x) = P(X = x | \theta)$
  • 对于连续随机变量:$L(\theta | x) = f(x | \theta)$,其中 $f(x | \theta)$ 是概率密度函数

目的

似然函数通常用于参数估计,特别是似然估计(MLE)。MLE 的目标是找到使似然函数的参数值,即:

$\hat{\theta} = \arg\max_{\theta} L(\theta | x)$

代码示例

以下是一个简单的 Python 示例,展示如何计算和使用似然函数进行似然估计。假设我们有一组观测数据,这些数据服从正态分布,我们需要估计其均值和标准差。

```python
import numpy as np
from scipy.stats import norm
from scipy.optimize import minimize

生成观测数据(假设真实均值为 5,标准差为 2)

np.random.seed(0)
data = np.random.normal(5, 2, 100)

定义负对数似然函数(因为优化函数通常最小化目标函数)

def negativeloglikelihood(params):
mu, sigma = params
# 计算对数似然(注意:norm.pdf 返回概率密度,需要取对数并求和)
loglikelihood = np.sum(norm.logpdf(data, mu, sigma))
# 返回负对数似然
return -log
likelihood

初始猜测参数值

initial_guess = [0, 1]

使用优化函数最小化负对数似然函数

result = minimize(negativeloglikelihood, initial_guess, method='L-BFGS-B',
bounds=[(None, None), (1e-10, None)]) # sigma 必须大于 0

输出估计的参数值

estimatedmu, estimatedsigma = result.x
print(f"Estimated mu: {estimatedmu}")
print(f"Estimated sigma: {estimated
sigma}")
```

代码解释

  1. 数据生成

    • 使用 np.random.normal 生成 100 个服从正态分布的观测数据,真实均值为 5,标准差为 2。
  2. 负对数似然函数

    • 定义 negative_log_likelihood 函数,计算给定参数 $\mu$ 和 $\sigma$ 下的负对数似然。
    • 使用 norm.logpdf 计算每个数据点的对数概率密度,并求和。
  3. 参数估计

    • 使用 scipy.optimize.minimize 函数最小化负对数似然函数。
    • 初始猜测参数值为 [0, 1]
    • 设置参数边界,确保 $\sigma$ 大于 0。
  4. 结果输出

    • 输出估计的均值 $\mu$ 和标准差 $\sigma$。

结果分析

运行上述代码后,你将得到估计的均值和标准差,这些值应该接近我们生成数据时使用的真实值(5 和 2)。似然估计通过化似然函数(或最小化负对数似然函数)来找到最可能的参数值,是统计学中常用的参数估计方法。

(www. n z w6.com)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载