摘要:# 生成正态分布数据mu = 0 # 均值sigma = 1 # 标准差x = np.linspace(norm.ppf(0.01, mu, sigma), norm.ppf(0.99, mu, sigma), 100)pdf = norm.pdf(x, mu
1. 首先,我们需要导入必要的 Python 库,如 `numpy` 和 `matplotlib.pyplot` 以及 `scipy.stats` 等。
import numpy as npimport matplotlib.pyplot as pltfrom scipy.stats import *2. 以正态分布为例,我们可以使用 `norm` 函数来生成正态分布的数据。
# 生成正态分布数据mu = 0 # 均值sigma = 1 # 标准差x = np.linspace(norm.ppf(0.01, mu, sigma), norm.ppf(0.99, mu, sigma), 100)pdf = norm.pdf(x, mu, sigma)3. 然后,我们可以绘制出正态分布的概率密度函数图像。
# 绘制正态分布图像plt.plot(x, pdf, 'r-', lw=5, alpha=0.6, label='norm pdf')plt.title('Normal Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.legendplt.show4. 接下来,我们看看二项分布。假设进行多次独立的伯努利试验,每次试验成功的概率为 $p$,试验次数为 $n$,我们可以用 `binom` 函数来处理。
# 二项分布示例n = 10 # 试验次数p = 0.3 # 每次试验成功的概率k = np.arange(0, n + 1)binomial_pmf = binom.pmf(k, n, p)5. 绘制二项分布的概率质量函数图像,直观地观察其分布形态。
# 绘制二项分布图像plt.bar(k, binomial_pmf)plt.title('Binomial Distribution')plt.xlabel('Number of Successes')plt.ylabel('Probability Mass Function')plt.show6. 指数分布也是常见的一种,它常用于描述事件发生的时间间隔。
# 指数分布示例lam = 0.5 # 速率参数x_exp = np.linspace(0, 10, 100)exponential_pdf = expon.pdf(x_exp, scale = 1/lam)7. 同样,绘制指数分布的概率密度函数图像。
# 绘制指数分布图像plt.plot(x_exp, exponential_pdf)plt.title('Exponential Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.show8. 再谈谈伽马分布,它在许多领域都有应用,比如在概率论中与指数分布和卡方分布密切相关。使用 `Gamma` 函数来生成伽马分布的数据。
# 伽马分布示例a = 2.0 # 形状参数loc = 0.0 # 位置参数scale = 1.0 # 尺度参数x_gamma = np.linspace(gamma.ppf(0.01, a, loc, scale), gamma.ppf(0.99, a, loc, scale), 100)gamma_pdf = gamma.pdf(x_gamma, a, loc, scale)9. 绘制伽马分布的概率密度函数图像,以更好地理解其分布特征。
# 绘制伽马分布图像plt.plot(x_gamma, gamma_pdf)plt.title('Gamma Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.show10. 对于贝塔分布,它常用于表示概率的概率分布情况。以下是使用 `beta` 函数生成贝塔分布数据的示例。
# 贝塔分布示例a = 2.0b = 5.0x_beta = np.linspace(beta.ppf(0.01, a, b), beta.ppf(0.99, a, b), 100)beta_pdf = beta.pdf(x_beta, a, b)11. 绘制贝塔分布的概率密度函数图像,展示其分布形态。
# 绘制贝塔分布图像plt.plot(x_beta, beta_pdf)plt.title('Beta Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.show12. 卡方分布在统计学的假设检验等方面有重要作用。通过 `chi2` 函数来生成卡方分布的数据。
# 卡方分布示例df = 5 # 自由度x_chi2 = np.linspace(chi2.ppf(0.01, df), chi2.ppf(0.99, df), 100)chi2_pdf = chi2.pdf(x_chi2, df)13. 绘制卡方分布的概率密度函数图像,帮助理解其特性。
# 绘制卡方分布图像plt.plot(x_chi2, chi2_pdf)plt.title('Chi-Square Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.show14. 学生 t 分布在小样本统计推断中经常用到。利用 `t` 函数生成学生 t 分布的数据。
# 学生 t 分布示例df_t = 10 # 自由度x_t = np.linspace(t.ppf(0.01, df_t), t.ppf(0.99, df_t), 100)t_pdf = t.pdf(x_t, df_t)15. 绘制学生 t 分布的概率密度函数图像,以便直观地观察其分布情况。
# 绘制学生 t 分布图像plt.plot(x_t, t_pdf)plt.title('Student\'s t Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.show16. F 分布在方差分析等方面有广泛应用。使用 `f` 函数来生成 F 分布的数据。
# F 分布示例dfn = 3 # 分子自由度dfd = 15 # 分母自由度x_f = np.linspace(f.ppf(0.01, dfn, dfd), f.ppf(0.99, dfn, dfd), 100)f_pdf = f.pdf(x_f, dfn, dfd)17. 绘制 F 分布的概率密度函数图像,清晰呈现其分布特征。
# 绘制 F 分布图像plt.plot(x_f, f_pdf)plt.title('F Distribution')plt.xlabel('x')plt.ylabel('Probability Density Function')plt.show18. 离散均匀分布表示在有限个等可能值上的离散分布。以下是使用 `randint` 函数生成离散均匀分布数据的示例(这里借助 `numpy` 中的 `randint` 函数来模拟)。
# 离散均匀分布示例low = 1high = 6size = 100discrete_uniform = np.random.randint(low, high + 1, size)19. 可以通过统计离散均匀分布数据的频率来大致了解其分布情况(这里简单打印出每个值出现的次数)。
# 统计离散均匀分布的频率unique, Counts = np.unique(discrete_uniform, return_counts=True)for i in range(len(unique)): print(f"Value {unique[i]}: Count {counts[i]}")20. 几何分布用于描述在一系列独立伯努利试验中,首次成功所需的试验次数。使用 `geom` 函数来生成几何分布的数据。
# 几何分布示例p_geom = 0.2 # 每次试验成功的概率x_geom = np.arange(1, 10)geom_pmf = geom.pmf(x_geom, p_geom)21. 绘制几何分布的概率质量函数图像,展示其分布特点。
# 绘制几何分布图像plt.bar(x_geom, geom_pmf)plt.title('Geometric Distribution')plt.xlabel('Number of Trials until First Success')plt.ylabel('Probability Mass Function')plt.show22. 负二项分布与几何分布相关,它表示在一系列独立伯努利试验中,成功一定次数所需的试验次数。使用 `nbinom` 函数生成负二项分布的数据。
# 负二项分布示例n = 5 # 成功的次数p_nbinom = 0.3 # 每次试验成功的概率x_nbinom = np.arange(5, 20)nbinom_pmf = nbinom.pmf(x_nbinom, n, p_nbinom)23. 绘制负二项分布的概率质量函数图像,以便观察其分布规律。
# 绘制负二项分布图像plt.bar(x_nbinom, nbinom_pmf)plt.title('Negative Binomial Distribution')plt.xlabel('Number of Trials')plt.ylabel('Probability Mass Function')plt.show24. 超几何分布常用于抽样问题,比如从有限总体中抽取一定数量的样本,其中具有特定特征的样本数量的分布。使用 `hypergeom` 函数生成超几何分布的数据。
# 超几何分布示例M = 100 # 总体中的元素个数n = 20 # 总体中具有特定特征的元素个数N = 10 # 抽取的样本大小x_hypergeom = np.arange(0, n + 1)hypergeom_pmf = hypergeom.pmf(x_hypergeom, M, n, N)25. 绘制超几何分布的概率质量函数图像,展现其分布形态。
# 绘制超几何分布图像plt.bar(x_hypergeom, hypergeom_pmf)plt.title('Hypergeometric Distribution')plt.xlabel('Number of Elements with Specific Feature in the Sample')plt.ylabel('Probability Mass Function')plt.show来源:散文随风想一点号