网易首页 > 网易号 > 正文 申请入驻

常见统计概率分布实现(代码)

0
分享至

在平时的科研中,我们经常使用统计概率的相关知识来帮助我们进行城市研究。因此,掌握一定的统计概率相关知识非常有必要。

本文涉及的概念包括:

  • 随机变量(Random Variable)

  • 密度函数(Density Functions)

  • 伯努利分布(Bernoulli Distribution)

  • 二项式分布(Binomial Distribution)

  • 均匀分布(Uniform Distribution)

  • 泊松分布(Poisson Distribution)

  • 正态分布(Normal Distribution)

  • 长尾分布(Long-Tailed Distribution)

  • 学生 t 检验分布(Student’s t-test Distribution)

  • 对数正态分布(Lognormal Distribution)

  • 指数分布(Exponential Distribution)

  • 威布尔分布(Weibull Distribution)

  • 伽马分布(Gamma Distribution)

  • 卡方分布(Chi-square Distribution)

  • 中心极限定理(Central Limit Theorem)


1. 随机变量

离散随机变量

随机实验的所有可能结果都是随机变量。一个随机变量集合用 表示。

如果实验可能的结果是可数的,那么它被称为离散随机变量。例如,如果你抛硬币 10 次,你能得到的正面数可以用一个数字表示。或者篮子里有多少苹果仍然是可数的。

连续随机变量

这些是不能以离散方式表示的值。例如,一个人可能有 1.7 米高,1米 80 厘米,1.6666666...米高等等。

2. 密度函数

我们使用密度函数来描述随机变量 的概率分布。

PMF:概率质量函数

返回离散随机变量 等于 的值的概率。所有值的总和等于 1。PMF 只能用于离散变量。


PMF。来源:https://en.wikipedia.org/wiki/Probability_mass_function

PDF:概率密度函数

它类似于连续变量的 PMF 版本。返回连续随机变量 X 在某个范围内的概率。


PDF。来源:https://byjus.com/maths/probability-density-function/

CDF:累积分布函数

返回随机变量 X 取小于或等于 x 的值的概率。


CDF(指数分布的累积分布函数)。来源:https://en.wikipedia.org/wiki/Cumulative_distribution_function

3. 离散分布

伯努利分布

我们只有一个试验(只有一个观察结果)和两个可能的结果。例如,抛硬币。

我们有一个真的(1)的结果和一个假的(0)的结果。假设我们接受正面为真(我们可以选择正面为真或成功)。那么,如果正面朝上的概率是 ,相反情况的概率就是 。


import seaborn as snsfrom scipy.stats import bernoulli# 单一观察值# 生成数据 (1000 points, possible outs: 1 or 0, probability: 50% for each)data = bernoulli.rvs(size=1000,p=0.5)# 绘制图形ax = sns.distplot(data_bern,kde=False,hist_kws={"linewidth": 10,'alpha':1})ax.set(xlabel='Bernouli', ylabel='freq')


二项式分布

伯努利分布是针对单个观测结果的。多个伯努利观测结果会产生二项式分布。例如,连续抛掷硬币。

试验是相互独立的。一个尝试的结果不会影响下一个。

二项式分布可以表示为 。 是试验次数, 是成功的概率。

让我们进行一个实验,我们连续抛掷一枚公平的硬币 20 次。


import matplotlib.pyplot as pltfrom scipy.stats import binomn = 20# 实验次数p = 0.5# 成功的概率r = list(range(n + 1))# the number of success# pmf值pmf_list = [binom.pmf(r_i, n, p) for r_i in r ]# 绘图plt.bar(r, pmf_list)plt.show()


它看起来像正态分布,但请记住这些值是离散的。

现在这次,你有一枚欺诈硬币。你知道这个硬币正面向上的概率是 0.7。因此,p = 0.7。


带有偏差硬币的二项式分布

该分布显示出成功结果数量增加的概率增加。

: 成功的概率 : 实验次数 : 失败的概率


均匀分布

所有结果成功的概率相同。掷骰子,1 到 6。


掷 6 次。


data = np.random.uniform(1, 6, 6000)

掷 6000 次。


Poisson 分布

它是与事件在给定时间间隔内发生频率相关的分布。

, 是在指定时间间隔内预期发生的事件次数。它是在该时间间隔内发生的事件的已知平均值。 是事件在指定时间间隔内发生的次数。如果事件遵循泊松分布,则:

在泊松分布中,事件彼此独立。事件可以发生任意次数。两个事件不能同时发生。

如每 60 分钟接到 4 个电话。这意味着 60 分钟内通话的平均次数为 4。让我们绘制在 60 分钟内接到 0 到 10 个电话的概率。


import matplotlib.pyplot as pltfrom scipy.statsimport poissonr = range(0,11)# 呼叫次数lambda_val = 4# 均值# 概率值data = poisson.pmf(r, lambda_val)# 绘图fig, ax = plt.subplots(1, 1, figsize=(8, 6))ax.plot(r, data, 'bo', ms=8, label='poisson')plt.ylabel("Probability", fontsize="12")plt.xlabel("# Calls", fontsize="12")plt.title("Poisson Distribution", fontsize="16")ax.vlines(r, 0, data, colors='r', lw=5, alpha=0.5)



4. 连续分布

正态分布

最著名和最常见的分布(也称为高斯分布),是一种钟形曲线。它可以通过均值和标准差定义。正态分布的期望值是均值。

曲线对称。均值、中位数和众数相等。曲线下总面积为 1。

大约 68%的值落在一个标准差范围内。~95% 落在两个标准差范围内,~98.7% 落在三个标准差范围内。



import scipymean = 0standard_deviation = 5x_values = np. arange(-30, 30, 0.1)y_values = scipy.stats.norm(mean, standard_deviation)plt.plot(x_values, y_values. pdf(x_values))


正态分布的概率密度函数为:

是均值, 是常数, 是标准差。


QQ 图

我们可以使用 QQ 图来直观地检查样本与正态分布的接近程度。

计算每个数据点的 z 分数并对其进行排序,然后在 y 轴上表示它们。X 轴表示值的排名的分位数。

这个图上的点越接近对角线,分布就越接近正态分布。


import numpy as npimport statsmodels.api as smpoints = np.random.normal(0, 1, 1000)fig = sm.qqplot(points, line ='45')plt.show()



长尾分布

尾巴是分布的长而窄的部分,离群值就位于其中。当一侧尾巴不同于另一侧时,就称为偏斜。下图是长尾分布的 QQ 图。



import matplotlib.pyplot as pltfrom scipy.stats import skewnormdef generate_skew_data(n: int, max_val: int, skewness: int):# Skewnorm functionrandom = skewnorm.rvs(a = skewness,loc=max_val, size=n)plt.hist(random,30,density=True, color = 'red', alpha=0.1)plt.show()
generate_skew_data(1000, 100, -5) # negative (-5)-> 左偏分布



generate_skew_data(1000, 100, 5) # positive (5)-> 右偏分布


学生 t 检验分布

正态但有尾(更厚、更长)。


t 分布和 z 分布。来源:https://www.geeksforgeeks.org/students-t-distribution-in-statistics/

t 分布是具有较厚尾部的正态分布。如果可用数据较少(约 30 个),则使用 t 分布代替正态分布。

在 t 分布中,自由度变量也被考虑在内。根据自由度和置信水平在 t 分布表中找到关键的 t 值。这些值用于假设检验。

t 分布表情移步:https://www.sjsu.edu/faculty/gerstman/StatPrimer/t-table.pdf。


对数正态分布

随机变量 X 的对数服从正态分布的分布。


import numpy as npimport matplotlib.pyplot as pltfrom scipy import statsX = np.linspace(0, 6, 1500)std = 1mean = 0lognorm_distribution = stats.lognorm([std], loc=mean)lognorm_distribution_pdf = lognorm_distribution.pdf(X)fig, ax = plt.subplots(figsize=(8, 5))plt.plot(X, lognorm_distribution_pdf, label="μ=0, σ=1")ax.set_xticks(np.arange(min(X), max(X)))plt.title("Lognormal Distribution")plt.legend()plt.show()



指数分布

我们在 Poisson 分布中研究了在一定时间间隔内发生的事件。在指数分布中,我们关注的是两个事件之间经过的时间。如果我们把上面的例子倒过来,那么两个电话之间需要多长时间?

因此,如果 X 是一个随机变量,遵循指数分布,则累积分布函数为:

是均值, 是常数。


from scipy.stats import exponimport matplotlib.pyplot as pltx = expon.rvs(scale=2, size=10000) # 2 calls# 绘图plt.hist(x, density=True, edgecolor='black')


x 轴表示时间间隔的百分比


韦伯分布

它是指时间间隔是可变的而不是固定的情况下使用的指数分布的扩展。在 Weibull 分布中,时间间隔被允许动态变化。

是形状参数,如果是正值,则事件发生的概率随时间而增加,反之亦然。 是尺度参数。


import matplotlib.pyplot as pltx = np.arange(1,100.)/50.def weib(x,n,a):return (a / n) * (x / n)**(a - 1) * np.exp(-(x / n)**a)
count, bins, ignored = plt.hist(np.random.weibull(5.,1000))x = np.arange(1,100.)/50.scale = count.max()/weib(x, 1., 5.).max()plt.plot(x, weib(x, 1., 5.)*scale)plt.show()å



Gamma 分布

指与第 n 个事件发生所需的时间有关的分布,而指数分布则与首次事件发生的时间有关。


import numpy as npimport scipy.stats as statsimport matplotlib.pyplot as plt#Gamma distributionsx = np.linspace(0, 60, 1000)y1 = stats.gamma.pdf(x, a=5, scale=3)y2 = stats.gamma.pdf(x, a=2, scale=5)y3 = stats.gamma.pdf(x, a=4, scale=2)# plotsplt.plot(x, y1, label='shape=5, scale=3')plt.plot(x, y2, label='shape=2, scale=5')plt.plot(x, y3, label='shape=4, scale=2')#add legendplt.legend()#displayplotplt.show()


Gamma 分布。X 轴表示随机变量 X 可能取到的潜在值,Y 轴表示分布的概率密度函数(PDF)值


Gamma 分布

它用于统计检验。这通常在实际分布中不会出现。


# x轴范围0-10,步长0.25X = np.arange(0, 10, 0.25)plt.subplots(figsize=(8, 5))plt.plot(X, stats.chi2.pdf(X, df=1), label="1 dof")plt.plot(X, stats.chi2.pdf(X, df=2), label="2 dof")plt.plot(X, stats.chi2.pdf(X, df=3), label="3 dof")plt.title("Chi-squared Distribution")plt.legend()plt.show()


中心极限定理

当我们从人群中收集足够大的样本时,样本的平均值将具有正态分布,即使人群不是正态分布。

我们可以从任何分布(离散或连续)开始,从人群中收集样本并记录这些样本的平均值。随着我们继续采样,我们会注意到平均值的分布正在慢慢形成正态分布。


来源:算法进阶,

仅用于传递和分享更多信息,并不代表本平台赞同其观点和对其真实性负责,版权归原作者所有,如有侵权请联系我们删除。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
五大名医集体总结:增强身体健康的10大铁律,值得参考~

五大名医集体总结:增强身体健康的10大铁律,值得参考~

华人星光
2024-06-15 16:49:27
欧洲杯最新战况!西班牙意大利“双赢”!16岁天才小将闪耀赛场,改写这两项纪录

欧洲杯最新战况!西班牙意大利“双赢”!16岁天才小将闪耀赛场,改写这两项纪录

每日经济新闻
2024-06-16 07:43:05
姜萍父亲发声,家庭困难住着烂房子,姐妹都是学霸,刘奔爆笑回应

姜萍父亲发声,家庭困难住着烂房子,姐妹都是学霸,刘奔爆笑回应

兰子记
2024-06-15 21:53:08
山东一新郎与父亲布置婚房,无意中一句话,竟被父亲3刀砍死

山东一新郎与父亲布置婚房,无意中一句话,竟被父亲3刀砍死

安妮Emotiong
2024-06-11 18:52:22
刚向美国否认完“强迫劳动”,宁德时代就被曝要求员工896,奋斗100天

刚向美国否认完“强迫劳动”,宁德时代就被曝要求员工896,奋斗100天

小萝卜丝
2024-06-16 08:32:04
以价换量!比周边二手房便宜几千元,这个省会城市有新盘5天就售罄!销售:把房价打下来了

以价换量!比周边二手房便宜几千元,这个省会城市有新盘5天就售罄!销售:把房价打下来了

每日经济新闻
2024-06-16 08:04:07
31岁河南禹州市医保局局长任小龙,拟遴选进入省政府办公厅

31岁河南禹州市医保局局长任小龙,拟遴选进入省政府办公厅

澎湃新闻
2024-06-15 21:58:28
湖南省辰溪县中医医院原党支部书记、院长傅胜义接受纪律审查和监察调查

湖南省辰溪县中医医院原党支部书记、院长傅胜义接受纪律审查和监察调查

鲁中晨报
2024-06-16 10:59:05
深圳大鹏古城部分城墙发生倒塌,目击者:系雷电击中所致

深圳大鹏古城部分城墙发生倒塌,目击者:系雷电击中所致

西虹市闲话
2024-06-15 21:34:52
你是不是想死?奔驰车主棍打女骑手,真实身份被扒,评论区沸腾了

你是不是想死?奔驰车主棍打女骑手,真实身份被扒,评论区沸腾了

刚哥说法365
2024-06-16 02:52:08
A股:刚刚,最新发声!下周大盘会不会反弹?四大驱动因素来了

A股:刚刚,最新发声!下周大盘会不会反弹?四大驱动因素来了

兵哥闲聊
2024-06-16 08:16:26
“欧洲杯”火到国内:电竞酒店预订热度涨三倍,酒吧零点场约满

“欧洲杯”火到国内:电竞酒店预订热度涨三倍,酒吧零点场约满

澎湃新闻
2024-06-16 09:30:26
瑞士“全球和平峰会”,必将成为文明的新起点

瑞士“全球和平峰会”,必将成为文明的新起点

近距离
2024-06-15 18:09:05
中俄联合开发黑瞎子岛,当年黑瞎子岛是怎样被俄方占领的?

中俄联合开发黑瞎子岛,当年黑瞎子岛是怎样被俄方占领的?

浩然史观
2024-06-15 16:55:02
92个国家参加瑞士和平峰会,其中57个国家领导人出席,亚洲有5个

92个国家参加瑞士和平峰会,其中57个国家领导人出席,亚洲有5个

飞狼
2024-06-16 00:00:07
红色预警!大暴雨!浙江入梅后最强降水来袭

红色预警!大暴雨!浙江入梅后最强降水来袭

鲁中晨报
2024-06-16 10:19:06
吕迪格回应定妆照争议手势:很多球员摆出这个姿势,没有宗教意涵

吕迪格回应定妆照争议手势:很多球员摆出这个姿势,没有宗教意涵

直播吧
2024-06-16 06:45:07
女性私处的“芳草”,竟然是越“浓密”越“渴望”?

女性私处的“芳草”,竟然是越“浓密”越“渴望”?

水白头
2024-06-16 00:06:07
倒查30年后补税是个危险信号

倒查30年后补税是个危险信号

深度财线
2024-06-15 22:03:47
刘和平:开出俄乌停火谈判的条件后, 普京手中还剩几张牌?

刘和平:开出俄乌停火谈判的条件后, 普京手中还剩几张牌?

直新闻
2024-06-15 23:13:39
2024-06-16 11:40:49
机器学习与Python社区
机器学习与Python社区
机器学习算法与Python
2464文章数 10252关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

法国股市暴跌引发恐慌 马克龙:法国处于非常严峻时刻

头条要闻

法国股市暴跌引发恐慌 马克龙:法国处于非常严峻时刻

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

艺术
房产
家居
旅游
军事航空

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

房产要闻

万华对面!海口今年首宗超百亩宅地,重磅挂出!

家居要闻

空谷来音 朴素留白的侘寂之美

旅游要闻

@毕业生,江苏这些景区可享免票或优惠

军事要闻

普京提停火和谈条件 美防长迅速回应

无障碍浏览 进入关怀版