python最大似然估计
时间: 2023-11-06 09:01:12 浏览: 188
最大似然,最大似然估计,matlab
5星 · 资源好评率100%
最大似然估计(Maximum Likelihood Estimate, MLE)是一种参数估计的方法,用于根据给定的样本数据推断出最有可能产生这些观测结果的参数值。在Python中,可以使用scipy.stats库来进行最大似然估计的计算。具体步骤如下:
1. 导入所需的库:import numpy as np from scipy.stats import norm
2. 定义观测数据:mu_true = 5.0 sigma_true = 2.0 data = np.random.normal(mu_true, sigma_true, size=100)
3. 定义似然函数:def likelihood(mu, sigma, data): return np.prod(norm.pdf(data, mu, sigma))
4. 定义最大似然估计函数:def mle(data): mu_hat = np.mean(data) sigma_hat = np.std(data) return mu_hat, sigma_hat
5. 计算似然函数在不同参数取值下的值:mu_vals = np.linspace(0, 10, num=100) sigma_vals = np.linspace(0.1, 5, num=100) likelihood_vals = np.zeros((100, 100)) for i, mu in enumerate(mu_vals): for j, sigma in enumerate(sigma_vals): likelihood_vals[i, j] = likelihood(mu, sigma, data)
6. 找到最大似然估计的参数值:mu_mle, sigma_mle = mle(data)
7. 输出结果:print('True Parameters: mu={:.2f}, sigma={:.2f}'.format(mu_true, sigma_true)) print('MLE Parameters: mu={:.2f}, sigma={:.2f}'.format(mu_mle, sigma_mle))
阅读全文