Python漫游数学王国 | 随机变量及其分布

简介: 随机变量及其分布

640.jpg

01、随机变量

有些随机实验的结果是用数值表示的,有些不是。当实验结果不是用数值表示时,很难对其进行描述和研究,所以有必要将实验结果数值化,这便是引入随机变量的初衷。

【例1】将一枚硬币抛掷三次,观察正面和反面出现的情况,样本空间是S={HHH,HHT,HTH,THH,HTT,THT,TTH,TTT}。以X记三次投掷得到正面H的总数,那么,对于样本空间S中的每一个样本点e,X都有一个数与之对应。X是定义在样本空间S上的一个实值单值函数,它的定义域是样本空间S,值域是实数集合{0,1,2,3}。这样的X称为随机变量。
代码如下:

84c2f0681f05b7d3ab6f7ad981fd4a3f.png


b04f8141841ea995e1aef3b118699034.png


运行结果如图1所示。

640.png


■ 图1

注释/

numpy.random.RandomState()是一个伪随机数生成器,和设置seed的效果是一样的。

随机变量按其取值情况可分为离散型随机变量与连续型随机变量。离散型随机变量的取值可以一一列举,连续型随机变量的取值不能一一列举。

01、离散型随机变量及其分布律

要掌握一个离散型随机变量X的统计规律,必须且只须知道X的所有可能取值以及取每个可能值的概率。本节引入 scipy的stats子模块介绍离散型随机变量。

首先引入stats,查看stats包含哪些离散型随机变量的分布,代码如下:

640.png


运行结果如图2所示。

640.png

■ 图 2

这里列出了15种离散型分布,仅介绍其中的三种——bernoulli,binom,poisson。

  1. 0-1分布

0-1分布也叫伯努利(Bernoulli)分布。设随机变量X只可能取两个值0和1,它的分布律是:

640.png


则称X服从参数为p的(0-1)分布或伯努利分布。scipy中bernoulli()对应(0-1)分布,代码如下:

640.png


运行结果如图3所示。

640.png


运行结果如图4所示。

640.png

  1. 二项分布

设X为n重伯努利实验中某事件A发生的次数,X可取k=0,1,2,…,n。若P(A)=p,则X的分布律为:

640.png

称X服从参数为n,p的二项分布。scipy中binom对应二项分布,使用方法代码如下:
640.png
运行结果如图5所示。
640.png

■ 图 5


注释/
pmf是概率质量函数。rv服从参数为5,0.3的二项分布,rv. pmf(x)返回随机变量rv取值为0,1,2,3,4,5时的概率值,与使用分布律公式算得的值是一致的,代码如下:
640.png
运行结果如图6所示。
640.png
■ 图6
【例2】某种型号电子元件的使用寿命如果超过1500小时,则为一级品。已知某一大批产品的一级品率为0.2,现在从中随机地抽查20只。问20只元件中恰有k只(k=0,1,…,10)为一级品的概率是多少?

解由题意可得,20只元件中一级品的只数服从参数为20,0.2的二项分布,所求概率代码如下:
640.png
运行结果如图7所示。

进一步,可作上述结果的图形,以便对该结果有一个直观的了解,代码如下:
640.png
运行结果如图8所示。
640.png
注释/
(1) subplots()函数返回一个包含figure和axes对象的元组,因此,使用fig,ax=plt.subplots()将元组分解为fig和ax两个变量。fig变量可用来修改figure层级的属性,ax变量中保存着子图的可操作axes对象。

(2) ax.plot(x,rv.pmf(x),'ro',ms=8,label='binom pmf')使用红色圆圈标记绘制x与rv.pmf(x),标记大小为8,标签为binom pmf。

(3) ax. vlines(x,0,rv.pmf(x),colors='g',lw=5,alpha=0.5)在x处绘制从0到rv. pmf(x)的垂直线,线条颜色为绿色,线条宽度为5,透明度为0.5。
从图形输出结果可以看到,当k增加时,相应概率先是随之增加,增大到最大值(k=4时)后单调减少。

【例3】某人进行射击,设每次射击的命中率为0.02,独立射击400次,试求至少击中两次的概率。

解代码如下:
640.png
运行结果如图9所示。
640.png
■ 图9

  1. 泊松分布

设随机变量X所有可能的取值为0,1,2,…,取各个值的概率为
640.png
其中,λ>0是常数。则称X服从参数为λ的泊松分布。scipy中poisson对应泊松分布,代码如下:

运行结果如图10所示。
640.png
■ 图 10

【例4】某公司制造一种特殊型号的微芯片,次品率达0.1%,各芯片成为次品相互独立。求在1000只产品中至少有2只次品的概率。

解由题可知,产品中的次品数服从参数为n=1000,p=0.001的二项分布,这里n很大,p很小,该二项分布可用参数为n、p的泊松分布来逼近,我们尝实验证这一结论,代码如下:
640.png
运行结果如图11所示。
640.png
■ 图 11

从输出结果可以看到,两种分布下所得概率相差无几。

目录
相关文章
|
3月前
|
存储 数据可视化 BI
Python可视化应用——学生成绩分布柱状图展示
本程序使用Python读取Excel中的学生成绩数据,统计各分数段人数,并通过Matplotlib库绘制柱状图展示成绩分布。同时计算最高分、最低分及平均分,实现成绩可视化分析。
249 0
|
6月前
|
索引 Python
Python的变量和简单类型
本文介绍了Python中变量命名规则、常用变量类型及字符串操作。变量命名需遵循字母、数字和下划线组合,不能以数字开头且不可与关键字冲突。字符串支持单引号、双引号或三引号定义,涵盖基本输出、转义字符、索引、拼接等操作。此外,还详细解析了字符串方法如`islower()`、`upper()`、`count()`等,帮助理解字符串处理技巧。
160 15
|
6月前
|
人工智能 Python
[oeasy]python082_变量部分总结_variable_summary
本文介绍了变量的定义、声明、赋值及删除操作,以及Python中的命名规则和常见数据类型。通过示例讲解了字符串与整型的基本用法、类型转换方法和加法运算的区别。此外,还涉及异常处理(try-except)、模块导入(如math和random)及随机数生成等内容。最后总结了实验要点,包括捕获异常、进制转化、变量类型及其相互转换,并简述了编程中AI辅助的应用策略,强调明确目标、分步实施和逐步巩固的重要性。更多资源可在蓝桥、GitHub和Gitee获取。
246 97
|
6月前
|
存储 程序员 Python
Python 变量和简单数据类型
本文介绍了 Python 编程的基础知识,从创建第一个 Python 文件 `hello_world.py` 开始,讲解了 Python 文件的运行机制及解释器的作用。接着深入探讨了变量的定义、命名规则和使用方法,并通过示例说明如何修改变量值。同时,文章详细解析了字符串的操作,包括大小写转换、变量插入及空白字符处理等技巧。此外,还涵盖了数字运算(整数与浮点数)、常量定义以及注释的使用。最后引用了《Python 之禅》,强调代码设计的美学原则和哲学思想。适合初学者快速掌握 Python 基础语法和编程理念。
108 5
|
8月前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
7月前
|
Python
[oeasy]python073_下划线在python里是什么含义_内部变量_私有变量_系统变量
本文回顾了Python中从模块导入变量和函数的方式,重点讨论了避免本地变量名冲突(local name clashes)的方法。通过`from module import variable as alias`可以为导入的变量重命名,防止冲突。根据PEP8规范,建议避免使用`from module import *`,因为它会导入模块中所有非下划线开头的变量,容易引发冲突。下划线在变量命名中有特殊含义:单个前导下划线表示内部变量,后置下划线用于避免与关键字冲突,双下划线前后包围表示系统变量。总结了下划线的不同用法及其作用。下次将继续探讨更实用的编程技巧。
115 3
|
10月前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
198 68
|
8月前
|
存储 Python 容器
python之变量的使用
Python 中变量是对象的引用,赋值即为指向内存中对象。创建对象时,解释器分配内存,引用计数管理内存回收。Python 是动态类型语言,变量类型在运行时确定。对象分为可变与不可变,前者可修改内部状态,后者则不行。命名空间管理变量作用域,确保不同区域的变量独立。
193 11
|
10月前
|
算法 数据处理 Python
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
Savitzky-Golay滤波器是一种基于局部多项式回归的数字滤波器,广泛应用于信号处理领域。它通过线性最小二乘法拟合低阶多项式到滑动窗口中的数据点,在降噪的同时保持信号的关键特征,如峰值和谷值。本文介绍了该滤波器的原理、实现及应用,展示了其在Python中的具体实现,并分析了不同参数对滤波效果的影响。适合需要保持信号特征的应用场景。
1166 11
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
|
9月前
|
人工智能 Unix Java
[oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
本文探讨了Python中变量命名的几种常见方式,包括汉语拼音变量名、蛇形命名法(snake_case)和驼峰命名法(CamelCase)。回顾上次内容,我们主要讨论了使用下划线替代空格以提高代码可读性。实际编程中,当变量名由多个单词组成时,合理的命名惯例变得尤为重要。
354 9

推荐镜像

更多