最大似然估计python
时间: 2023-10-13 11:19:29 浏览: 191
最大似然,最大似然估计,matlab
5星 · 资源好评率100%
最大似然估计是一种常用的参数估计方法,可以用来估计一个模型中的未知参数。在Python中,可以使用Scipy库中的optimize模块来实现最大似然估计。
首先,需要定义一个似然函数,即给定数据和参数,计算参数的似然度。例如,假设我们有一个包含正态分布随机变量的数据集,我们可以定义如下的似然函数:
```python
import numpy as np
from scipy.stats import norm
def likelihood(params, data):
mu, sigma = params
return np.sum(np.log(norm.pdf(data, loc=mu, scale=sigma)))
```
其中,params是一个包含两个元素的数组,分别表示正态分布的均值和标准差;data是一个包含随机变量值的数组。
接下来,可以使用Scipy的minimize函数来最大化似然函数,从而得到最大似然估计值:
```python
from scipy.optimize import minimize
# 生成随机数据
data = np.random.normal(loc=2.5, scale=1.2, size=100)
# 初始化参数值
params0 = [0, 1]
# 最大化似然函数
result = minimize(lambda params: -likelihood(params, data), params0)
# 输出结果
print(result)
```
在上面的代码中,使用了Scipy的minimize函数来最大化似然函数。由于minimize函数实际上是最小化函数,因此在这里使用了负的似然函数来替代最小化-log(likelihood)函数。最后输出的result对象包含了最大似然估计值以及其他有用的信息。
阅读全文