统计(Statistics )是一种强大的分析工具,可以帮助我们理解数据的意义,而其核心概念是分布(Distributions)。统计中的分布帮助我们理解数据的分散方式,提供了对各种数据集概率和行为的重要洞见。从常见的正态分布的钟形曲线到其他偏斜和厚尾的模式,接下类的内容为您揭示各种分布类型,清晰地解释它们的特征、应用及其在统计分析中的重要性。
上图展示了各种统计分布的分类及其相互关系。从图中可以看到:
- 均匀分布(Uniform)和伯努利分布(Bernoulli)位于顶端,表示最基础的分布类型。它们相互关联,均匀分布可转化为伯努利分布。
- 伯努利分布(Bernoulli)进一步引出二项分布(Binomial)和几何分布(Geometric)。二项分布可视为多次伯努利试验的结果,而几何分布则描述了首次成功试验前的失败次数。
- 二项分布(Binomial)和几何分布(Geometric)分别导出泊松分布(Poisson)和指数分布(Exponential)。泊松分布是二项分布在试验次数趋于无穷大时的极限,而指数分布是几何分布的连续型版本。
- 指数分布(Exponential)进一步扩展为韦伯分布(Weibull)。
- 正态分布(高斯分布)(Normal/Gaussian)在中心位置,它是许多自然现象的基础。对数正态分布(Log Normal)和学生t分布(Student’s t)均从正态分布衍生而来。
- 卡方分布(Chi-Squared)也是由正态分布派生的,其进一步导出伽马分布(Gamma)和贝塔分布(Beta)。
这张图通过箭头清晰地展示了这些分布之间的衍生关系,帮助我们理解不同统计分布的演变和应用。
1.均匀分布(Uniform Distribution )
均匀分布是一种概率分布,在给定范围内所有结果的可能性相等。这意味着如果从这个范围内随机选择一个值,那么任何一个值的可能性都与其他值相同。下面代码模拟生成均匀分布的数据序列:
import numpy as np
import plotly.graph_objects as go
import scipy.stats as stats
# Function to plot histogram and density using plotly
def plot_distribution(data, title, pdf=None):
hist = go.Histogram(x=data, nbinsx=30, histnorm='probability density', name='Histogram')
fig = go.Figure(data=[hist])
if pdf is not None:
x = np.linspace(min(data), max(data), 100)
density = pdf(x)
fig.add_trace(go.Scatter(x=x, y=density, mode='lines', name='Density'))
fig.update_layout(title=title, xaxis_title='Value', yaxis_title='Density')
fig.show()
# 生成均匀分布(Uniform)数据并绘制图表
data_uniform = np.random.uniform(0, 1, 1000)
plot_distribution(data_uniform, '均匀分布(Uniform Distribution)')
均匀分布在机器学习和数据科学中的应用示例:
- 随机初始化:在许多机器学习算法中,如神经网络和k均值聚类,参数初始值对最终结果有显著影响。均匀分布常用于随机初始化参数,因为它确保范围内所有值被选择的概率相等。
- 采样:均匀分布也可用于采样。例如,如果你有一个每个类别样本数量相等的数据集,可以使用均匀分布随机选择一个子集,该子集代表所有类别。
- 数据增强:在某些情况下,你可能希望通过生成与原始数据相似的新样本来人为增加数据集的大小。均匀分布可以用于生成在原始数据指定范围内的新数据点。
- 超参数调优:均匀分布还可用于超参数调优,在这种情况下需要为机器学习模型寻找最佳超参数组合。通过为每个超参数定义均匀先验分布,可以从分布中采样以探索超参数空间。
2.伯努利分布(Bernoulli Distribution )
伯努利分布是描述二元结果的概率分布,其中结果可以是成功(用值1表示)或失败(用值0表示)。伯努利分布由一个参数来表征,即成功的概率,用 p 表示。
下面是python 代码生成伯努利分布的数据集:
# 生成伯努利分布(Bernoulli)数据并绘制图表
data_bernoulli = np.random.binomial(1, 0.5, 1000)
plot_distribution(data_bernoulli, '伯努利分布(Bernoulli)')
在机器学习和数据科学中伯努利分布的例子包括:通常用于建模二元结果的概率分布,例如预测客户是否会购买产品、判断电子邮件是否为垃圾邮件,或者预测患者是否患有某种疾病。
3.二项分布(Binomial Distribution)
二项分布是描述在固定数量的独立伯努利试验中成功次数的概率分布,这些试验有两种可能的结果(通常称为“成功”和“失败”),每次试验成功的概率是恒定的。二项分布由两个参数来表征:试验的次数 n 和成功的概率 p。
下面是python 代码生成二项分布的数据集:
# 生成二项分布(Binomial)数据并绘制图表
data_binomial = np.random.binomial(10, 0.5, 1000)
plot_distribution(data_binomial, '二项分布(Binomial)')
在机器学习和数据科学中二项分布的例子包括:
- 模型准确率评估:当测试一个机器学习模型来预测电子邮件是否为垃圾邮件时,你可能会运行它 100 次。每次测试,你检查模型的预测是否正确(成功)或不正确(失败)。二项分布帮助你理解在给定一定准确率的情况下,模型在这100次测试中可能预测正确的次数。
- A/B 测试:在A/B测试中,你比较两个版本的某个东西,比如一个网站或一个广告,以确定哪个表现更好。二项分布可以让你估计基于一定成功概率,哪个版本会更成功,比如获得更多点击或转化次数的情况。
4.几何分布(Geometric distribution)
几何分布是描述在一系列独立伯努利试验中,首次获得成功(成功概率为 p)所需的试验次数的概率分布。换言之,它表示了在多次重复试验中,第一次成功所需的平均试验次数。
下面是python 的示例:
# 生成几何分布(Geometric)数据并绘制图表
data_geometric = np.random.geometric(0.5, 1000)
plot_distribution(data_geometric, '几何分布(Geometric)')
5.泊松分布(Poisson distribution)
泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数、激光的光子数分布等等。(单位时间内发生的次数,可以看作事件发生的频率,类似物理的频率 )。
下面是python 的示例:
# 生成泊松分布(Poisson)数据并绘制图表
data_poisson = np.random.poisson(5, 1000)
plot_distribution(data_poisson, '泊松分布(Poisson)')
6.指数分布(Exponential distribution)
指数分布(Exponential distribution)是一种连续概率分布。指数分布可以用来建模平均发生率恒定、连续、独立的事件发生的间隔,比如旅客进入机场的时间间隔、电话打进客服中心的时间间隔、机器的寿命等。
下面是python 的示例:
# 生成指数分布(Exponential)数据并绘制图表
data_exponential = np.random.exponential(1, 1000)
plot_distribution(data_exponential, '指数分布(Exponential)', pdf=stats.expon(scale=1).pdf)
7.韦伯分布(Weibull distribution)
韦伯分布(Weibull distribution)是一种连续概率分布,常用于描述时间直至某事件发生的概率,如产品寿命或设备故障时间。它的形状由两个参数决定:形状参数(通常表示为 k),影响分布形状的倾斜度;尺度参数(通常表示为 λ),决定分布的尺度和事件发生的频率。韦伯分布适用于描述不同的可靠性问题和寿命分析,具有灵活性和广泛的应用性。
# 生成韦伯分布(Weibull)数据并绘制图表
data_weibull = np.random.weibull(1.5, 1000)
plot_distribution(data_weibull, '韦伯分布(Weibull)', pdf=stats.weibull_min(1.5).pdf)
8.正态分布(高斯分布)(Normal/Gaussian)
正态分布,也称为高斯分布,是统计学中最重要和最常见的连续概率分布之一。它以其钟形曲线特征而闻名,分布的形状由两个参数完全描述:均值(μ)和标准差(σ)。正态分布的中心在均值处,标准差决定了曲线的宽度。在正态分布中,68% 的数据落在均值加减一个标准差的范围内,而95% 的数据落在均值加减两个标准差的范围内,这使得正态分布在描述自然和社会现象中的广泛应用。
正态分布不仅在统计学中具有重要作用,在自然科学、社会科学以及工程领域也有广泛应用。它经常用于建模连续型随机变量,如身高、体重和温度等。由于中心极限定理的影响,许多随机现象的分布会趋向于正态分布,这使得它成为数据分析和假设检验的基础工具之一。
# 生成正态分布(高斯分布)(Normal/Gaussian)数据并绘制图表
data_normal = np.random.normal(0, 1, 2000)
plot_distribution(data_normal, '正态分布(高斯分布)(Normal/Gaussian)', pdf=stats.norm(0, 1).pdf)
9.对数正态分布(Log Normal Distribution)
在概率论和统计学中,对数正态分布是一个具有重尾特性的连续概率分布,它描述的是一个随机变量,其对数值服从正态分布。换句话说,如果对每个值取自然对数并绘制这个分布,你将得到正态分布。对数正态分布的概率密度函数(PDF)的方程为:
# 生成对数正态分布(Log Normal)数据并绘制图表
data_log_normal = np.random.lognormal(0, 1, 1000)
plot_distribution(data_log_normal, '对数正态分布(Log Normal)', pdf=stats.lognorm(1).pdf)
在机器学习和数据科学中,对数正态分布的例子包括:
- 互联网讨论论坛中发布的评论长度遵循对数正态分布。
- 用户在在线文章(如笑话、新闻等)上的停留时间遵循对数正态分布。
- 国际象棋游戏的时长往往遵循对数正态分布。
- 在经济学中,有证据表明97%–99%的人口收入分布呈对数正态分布。
10.学生t分布(Student’s t Distribution)
学生t分布(Student’s t Distribution)是一种在估计小样本均值时常用的概率分布,特别是在样本量较小且总体标准差未知的情况下。由英国统计学家威廉·西利·戈塞特以笔名“学生”发表,因此得名。
学生t分布的形状类似于正态分布,但在两端具有更厚的尾巴,这意味着它在小样本情况下能够更好地反映数据的变异性。t分布由一个参数描述,即自由度(degrees of freedom, df),自由度通常等于样本量减去1(n-1)。随着自由度的增加,t分布逐渐接近正态分布。
学生t分布的概率密度函数(PDF)为:
学生t分布在统计推断中非常重要,特别是在t检验中,用于比较样本均值和总体均值或两个样本均值之间的差异。
# 生成学生t分布(Student's t)数据并绘制图表
data_students_t = np.random.standard_t(10, 1000)
plot_distribution(data_students_t, '学生t分布(Student\'s t)')
11.卡方分布(Chi-Squared Distribution)
卡方分布(Chi-Squared Distribution)是一种用于假设检验和估计方差的概率分布,特别是在统计学中的广泛应用。卡方分布通常用于分析方差和频数数据,它由一个参数描述,即自由度(degrees of freedom, df)。
# 生成卡方分布(Chi-Squared)数据并绘制图表
data_chi_squared = np.random.chisquare(2, 1000)
plot_distribution(data_chi_squared, '卡方分布(Chi-Squared)', pdf=stats.chi2(2).pdf)
卡方分布在统计学中有许多重要应用:
- 卡方检验:用于检验两个分类变量是否独立(独立性检验)或检验观察到的频率分布与期望频率分布是否一致(拟合优度检验)。
- 方差分析:在估计总体方差或比较多个总体方差时使用。
- 置信区间:用于构建总体方差的置信区间。
12.伽马分布(Gamma Distribution)
伽马分布(Gamma Distribution)是一种连续概率分布,广泛应用于排队论、气象学、金融和工程等领域。它可以用于建模等待时间、寿命分析等。
# 生成伽马分布(Gamma)数据并绘制图表
data_gamma = np.random.gamma(2, 2, 1000)
plot_distribution(data_gamma, '伽马分布(Gamma)', pdf=stats.gamma(2, scale=2).pdf)
伽马分布在统计学和应用领域中有许多重要用途,例如:
- 排队论:用于建模顾客在队列中的等待时间。
- 气象学:用于描述降雨量分布。
- 金融:用于建模保险索赔大小和风险度量。
13.贝塔分布(Beta Distribution)
贝塔分布(Beta Distribution)是一种定义在区间 [0, 1] 上的连续概率分布,常用于描述概率和比例的分布情况。贝塔分布由两个正参数 α和 β描述,这两个参数决定了分布的形状。
# 生成贝塔分布(Beta)数据并绘制图表
data_beta = np.random.beta(2, 2, 1000)
plot_distribution(data_beta, '贝塔分布(Beta)', pdf=stats.beta(2, 2).pdf)
贝塔分布在贝叶斯统计中有广泛应用,特别是作为二项分布参数的共轭先验分布。例如,在概率估计中,当我们有关于某事件发生次数的信息时,贝塔分布可以用于更新事件的概率估计。
此外,贝塔分布在各种应用领域中也非常有用,例如:
- A/B 测试:用于建模转化率的分布。
- 机器学习:用于建模和推断概率参数。
- 金融:用于描述投资回报率的分布。
通过调整 α 和 β的值,贝塔分布可以表现出不同的形状,从均匀分布到偏斜分布,能够灵活地适应各种数据分布形式。
14.帕累托分布(Pareto Distribution)
帕累托分布(Pareto Distribution)是一种描述某些类型的社会、科学、地质和其他现象的概率分布,特别适用于表示财富分布、城市人口分布和互联网流量分布等。它以意大利经济学家维尔弗雷多·帕累托命名,通常用于描述“80/20法则”,即80%的财富由20%的人口拥有。
帕累托分布由两个参数描述:形状参数(α)和尺度参数(x_m)。形状参数决定了分布的厚尾特性,而尺度参数表示最小值或阈值。其概率密度函数(PDF)的公式为:
帕累托分布在经济学、社会科学和工程学中有广泛应用,用于建模极端事件和不均衡现象。
# 生成帕累托分布(Pareto Distribution)数据并绘制图表
data_beta = np.random.pareto(3., 1000)
plot_distribution(data_beta, '帕累托分布(Pareto Distribution)', pdf=stats.beta(2, 2).pdf)
统计是一种强大的分析工具,通过分布帮助我们理解数据的分散方式及其概率行为。从均匀分布、伯努利分布到正态分布和帕累托分布,各种分布类型揭示了不同数据集的特征和应用。本文介绍了这些分布的基本概念、数学公式及其在机器学习、数据科学中的实际应用。通过图示展示分布之间的关系,说明它们在统计分析中的重要性及其演变过程。此信息将帮助读者更好地理解和应用统计分布进行数据分析和建模。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/72336.html