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法可以估計樣本統計量的分布,從而計算置信區間;極大似然法可以幫助我們選擇最合適的參數值,使得樣本出現的概率最大。在實際應用中,我們需要根據具體情況選擇合適的方法。
原創文章,作者:GRJCE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/375342.html