似然函数python
时间: 2023-07-07 14:08:19 浏览: 155
似然函数(likelihood function)是统计学中的一个概念,用来描述已知一些参数值时,观测数据出现的可能性。在Python中,我们可以通过定义一个函数来计算似然函数。
假设我们有一个样本集合,其中包含 $n$ 个观测值 $x_1,x_2,...,x_n$,我们想要估计这些观测值的分布参数 $\theta$。我们可以定义似然函数 $L(\theta|x_1,x_2,...,x_n)$ 为:
$$L(\theta|x_1,x_2,...,x_n) = f(x_1,x_2,...,x_n|\theta)$$
其中 $f(x_1,x_2,...,x_n|\theta)$ 是给定参数 $\theta$ 时的联合概率密度函数。似然函数的值越大,说明观测数据出现的可能性越大,也就意味着参数估计的准确性越高。
下面是一个估计正态分布均值的例子,使用了似然函数的概念:
```python
import numpy as np
from scipy.stats import norm
# 生成一组样本数据
np.random.seed(0)
data = np.random.normal(loc=5, scale=2, size=100)
# 定义似然函数
def likelihood(theta, data):
return np.prod(norm.pdf(data, loc=theta))
# 计算似然函数在不同均值参数下的取值
theta_values = np.linspace(0, 10, 100)
likelihood_values = [likelihood(theta, data) for theta in theta_values]
# 找到最大似然估计值
mle = theta_values[np.argmax(likelihood_values)]
print("Maximum likelihood estimate:", mle)
```
在上面的例子中,我们使用了 `scipy.stats.norm` 模块中的正态分布概率密度函数 `pdf` 来计算似然函数的值。然后,我们使用 `numpy.argmax` 函数找到似然函数取最大值的参数值,即最大似然估计值。
阅读全文