欢迎访问宙启技术站
智能推送

Python实现高斯分布拟合

发布时间:2023-12-16 11:50:23

高斯分布是一种概率分布,常用于描述连续型数据的分布情况。在Python中,可以使用SciPy库的stats模块来拟合高斯分布。

首先,我们需要安装SciPy库,可以使用以下命令来安装:

pip install scipy

接下来,我们可以使用stats模块的norm类来创建一个高斯分布对象。可以指定均值(loc)和标准差(scale)参数来定义高斯分布的特征。例如,我们可以创建一个均值为0,标准差为1的高斯分布对象:

from scipy.stats import norm

gaussian = norm(loc=0, scale=1)

我们可以使用这个高斯分布对象来计算概率密度函数(PDF),累积分布函数(CDF),求解分位点等等。下面是一些常用的方法示例:

# 计算概率密度函数
pdf = gaussian.pdf(0)

# 计算累积分布函数
cdf = gaussian.cdf(0)

# 求解分位点
quantile = gaussian.ppf(0.95)

除了计算概率密度函数、累积分布函数和求解分位点之外,我们还可以使用高斯分布对象生成随机样本。可以使用rvs方法来生成指定数量的随机样本。例如,下面的代码将生成1000个符合高斯分布的随机样本:

samples = gaussian.rvs(size=1000)

我们可以使用这些样本数据来绘制直方图,并将其与理论的高斯分布曲线进行比较,以检验拟合效果:

import matplotlib.pyplot as plt

# 绘制直方图
plt.hist(samples, density=True, alpha=0.5)

# 绘制高斯分布曲线
x = np.linspace(-4, 4, 100)
plt.plot(x, gaussian.pdf(x), 'r')

plt.show()

上述代码将生成一个带有直方图和高斯分布曲线的图表,可以通过观察两者之间的对应关系来判断高斯分布的拟合效果。

通过上述步骤,我们可以使用Python实现高斯分布的拟合,并使用样本数据对其进行验证。需要注意的是,根据实际数据的特性,可能需要调整高斯分布的参数来更好地拟合数据。