首页 > 编程知识 正文

理解Bootstrap法和极大似然法

时间:2023-11-20 11:52:27 阅读:292169 作者:FXFK

Bootstrap法和极大似然法是统计学中常用的估计方法,可以帮助我们估计概率分布以及其他统计模型中的参数。

一、Bootstrap法

Bootstrap法是一种非参数统计学方法,它可以用于估计样本统计量(如均值、方差等)的分布,从而得出这些统计量的置信区间。Bootstrap法的基本思想是通过自助采样(bootstrap sampling)的方法,从原始样本中获取一系列新样本,再对这些新样本进行采样和分析,从而得到统计量的分布。

下面是一个简单的Python示例,演示如何使用Bootstrap法估计一个样本均值的置信区间:

import numpy as np

# 生成一个有100个随机数的样本
np.random.seed(42)
sample = np.random.randn(100)

# 使用自助采样,获取1000个新样本
bootstrap_samples = []
for i in range(1000):
    bootstrap_sample = np.random.choice(sample, size=100, replace=True)
    bootstrap_samples.append(bootstrap_sample)

# 计算每个新样本的均值
bootstrap_means = [sample.mean() for sample in bootstrap_samples]

# 用分位数的方法,计算均值的置信区间
alpha = 0.05
lower_bound = np.percentile(bootstrap_means, 100 * alpha / 2)
upper_bound = np.percentile(bootstrap_means, 100 * (1 - alpha / 2))
print("The 95% confidence interval for the sample mean is [{:.3f}, {:.3f}]".format(lower_bound, upper_bound))

在这个例子中,我们生成了一个有100个随机数的样本,然后使用自助采样方法获取了1000个新样本,计算了每个新样本的均值,最终用分位数的方法计算了均值的置信区间。

二、极大似然法

极大似然法是一种参数估计的方法,它的基本思想是在已知一些观测数据的情况下,选择最合适的参数值,使得这些观测数据发生的可能性最大。换句话说,极大似然法的目标是找到一个参数值,使得样本出现的概率最大。

下面是一个简单的Python示例,演示如何使用极大似然法估计正态分布的均值和方差:

import numpy as np
from scipy.stats import norm

# 生成一个有100个随机数的样本,来自于均值为5,方差为2的正态分布
np.random.seed(42)
sample = np.random.normal(loc=5, scale=np.sqrt(2), size=100)

# 使用Scipy的最大似然估计方法,估计均值和方差
loc, scale = norm.fit(sample)
print("The estimated mean is {:.3f} and the estimated standard deviation is {:.3f}".format(loc, scale))

在这个例子中,我们生成了一个有100个随机数的正态分布样本,然后使用Scipy库中的最大似然估计方法,估计了这个样本的均值和方差。

三、小结

Bootstrap法和极大似然法分别是非参数统计和参数统计中的常见方法。Bootstrap法可以估计样本统计量的分布,从而计算置信区间;极大似然法可以帮助我们选择最合适的参数值,使得样本出现的概率最大。在实际应用中,我们需要根据具体情况选择合适的方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。