python-指数分布介绍(scipy.stats.expon)

2023-05-16

一、指数分布问题:

有一种品牌的路由器,据厂家统计知该路由器平均寿命是50000小时,现在有2个问题:

1、去年我买了一个这样的路由器,使用到现在已经8000小时了一点问题都没有,那我这台路由器还能用40000小时以上的概率是多少?

2、 我现在推荐邻居也买了一个这样的路由器,邻居这台路由器可以用40000小时以上的概率是多少?

 

二、 指数分布

泊松分布描述的是事件发生次数,而指数分布描述的是事件发生的时间间隔。

指数分布主要用于描述电子元器件的寿命,其为连续型分布,概率密度函数为:

f(x)=\left\{\begin{matrix}\lambda e^{-\lambda x}, x>0 \\ 0, x\leqslant 0 \end{matrix}\right.

分布函数为:

F(x)=\left\{\begin{matrix}1-e^{-\lambda x}, x>0 \\ 0, x\leqslant 0 \end{matrix}\right.

期望: \frac{1}{\lambda },   方差: \frac{1}{\lambda^{2} }

\lambda表示事件发生的频率,在这里路由器平均寿命是50000小时,那么可以认为路由器平均50000小时坏一次,那么路由器坏的频率是\lambda=1/50000。

此外,指数分布有一个十分重要的性质,无记忆性:

P\left \{ X>s+t|X>s \right \}=P\left \{ X>t \right \}

在上面问题中,路由器已使用时间与后续还能使用的时间无关,即我的路由器与邻居家的路由器后续使用寿命是没有差别的,即问题1和2的概率是一样的。

 

三、概率密度图

用python计算概率密度,可以直接使用公式计算,或者用scipy.stats.expon计算:

from scipy import stats
import math
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号

r = 1/50000
X = []
Y = []
for x in np.linspace(0, 1000000, 100000):
    if x==0:
        continue
 #   p = r*math.e**(-r*x)  #直接用公式算
    p = stats.expon.pdf(x, scale=1/r)  #用scipy.stats.expon工具算,注意这里scale参数是标准差
    X.append(x)
    Y.append(p)
plt.plot(X,Y)
plt.xlabel("间隔时间")
plt.ylabel("概率密度")
plt.show()

结果:

针对这个图该如何理解呢?连续型随机变量的概率密度在某个点的概率密度并不是在这一点发生的概率。这里引用一张图

这张图说明事件发生的时间间隔大于1的概率是0.37,那么时间间隔小于1的概率是0.63,这一点用下面的累积概率分布来看更直观。

 

四、累积概率分布(查表)

累积概率用stats.expon.cdf(x, scale=1/r)计算,当然也可以用公式计算。

from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号

r = 1/50000
X = []
Y = []
for x in np.linspace(0, 1000000, 100000):
    if x==0:
        continue
    p = stats.expon.cdf(x, scale=1/r)  #用scipy.stats.expon工具算,注意这里scale参数是标准差
    X.append(x)
    Y.append(p)
plt.plot(X,Y)
plt.xlabel("间隔时间")
plt.ylabel("累积概率")
plt.show()

结果:

 用累积概率查表x=40000的值:

p = stats.expon.cdf(40000, scale=50000)
print(p)

结果是:0.5506710358827784

也就是说事件发生时间间隔小于40000的概率是0.55067,那么问题1和2路由器在40000小时内坏的概率是0.55067,相应的可以使用40000小时以上的概率是1-0.55067=0.44933。

 

五、再来2个问题

医院平均每小时出生3个婴儿,问:

1、接下来15分钟有婴儿出生的概率是多少?

2、在接下来的15~30分钟内有婴儿出生的概率是多少?

问题1:

这里婴儿出生频率\lambda =3,查表

p = stats.expon.cdf(15/60, scale=1/3)
print(p)

结果:0.5276334472589853

表明在15分钟内有婴儿出生的概率是0.5276。

注意这里只是表明有婴儿出生的概率是0.5276,并没有指定有多少个婴儿出生,更没有表明有1个婴儿出生的概率是0.5276。

问题2:

由于指数分布是无记忆的,在接下来的15~30分钟内一共15分钟,有婴儿出生的概率与问题1概率一样,都是0.5276。

有些人不理解这个意思,错误的用cdf(30/60)-cdf(15/60)

p15 = stats.expon.cdf(15/60, scale=1/3)
p30 = stats.expon.cdf(30/60, scale=1/3)
print(p30-p15)

结果:0.2492363925925849

这个结果并不表明在接下来的15~30分钟内有婴儿出生的概率。

而是表明在0~15分钟内没有婴儿出生并且在15~30分钟内有婴儿出生的概率是0.2492,或者表明接下来出生的第一个孩子时间在15~30分钟的概率是0.2492。

 

 

author:蓝何忠

email:lanhezhong@163.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python-指数分布介绍(scipy.stats.expon) 的相关文章

  • 从数据框中按索引删除行

    我有一个数组wrong indexes train其中包含我想从数据框中删除的索引列表 0 63 151 469 1008 要删除这些索引 我正在尝试这样做 df train drop wrong indexes train 但是 代码失败
  • Python中Decimal类型的澄清

    每个人都知道 或者至少 每个程序员都应该知道 http docs oracle com cd E19957 01 806 3568 ncg goldberg html 即使用float类型可能会导致精度错误 然而 在某些情况下 精确的解决方
  • 如何在序列化器创建方法中获取 URL Id?

    我有以下网址 url r member P
  • pydev 调试器:严重警告:此版本的 python 似乎编译不正确(内部生成的文件名不是绝对的)[重复]

    这个问题在这里已经有答案了 通过运行 from sklearn datasets import fetch california housing import pandas as pd pd set option precision 4 m
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f

随机推荐

  • SQL笔试经典50题及答案解析

    转 SQL笔试经典50题及答案解析 建表语句 create table Student sid varchar 10 sname varchar 10 sage datetime ssex nvarchar 10 insert into S
  • redis高可用集群搭建

    redis高可用集群搭建 恶魔的复活的博客 CSDN博客 redis集群搭建
  • 80027efe

    微软更新了签名算法 xff0c 从 2019 年开始 xff0c 开始弃用SHA 1 xff0c 逐步改为SHA 2加密算法 导致windows upate更新报80072EFE错误 此方法同样适用于Windows 7系统 建议手动下载安装
  • ts 动态加载import()

    import 函数 简介 import命令会被 JavaScript 引擎静态分析 xff0c 先于模块内的其他模块执行 xff08 叫做 连接 更合适 xff09 所以 xff0c 下面的代码会报错 报错if x 61 61 61 2 i
  • Ubuntu 文件文件夹查看权限和设置权限

    ubuntu下查看权限的命令为 xff1a ls l filename ls ld folder ubuntu下设置权限的命令为 xff1a 一共有10位数 其中 xff1a 最前面那个 代表的是类型 中间那三个 rw 代表的是所有者 xf
  • mysql不能启动:Unit mysql.service failed to load: No such file or directory的解决办法

    Failed to issue method call Unit MySQL service failed to load No such file or directory的解决办法 作者 xff1a chszs xff0c 转载需注明
  • round()函数的用法

    python中round 函数的用法 round a b a 需要进行四舍五入的数字 b 指定的位数 xff0c 按此位数进行四舍五入 注解 如果 b 大于 0 xff0c 则四舍五入到指定的小数位 如果 b 等于 0 xff0c 则四舍五
  • linux mysql 查看默认端口号和修改端口号

    如何查看mysql 默认端口号和修改端口号 2015 03 19 17 42 18 1 登录mysql root 64 test mysql u root p Enter password 2 使用命令show global variabl
  • netty 二进制简单通信

    环境 xff1a netty版本4 0 36Final jdk7 服务端 xff1a 1 App java package com mind core import com mind core net websocket server Ne
  • js 字符串转换成数字的三种方法, 取float型小数点后两位数的方法

    在js读取文本框或者其它表单数据的时候获得的值是字符串类型的 例如两个文本框a和b 如果获得a的value值为11 b的value值为9 那么a value要小于b value 因为他们都是字符串形式的 在网上找了一下js字符串转数字的文章
  • 二次贝塞尔曲线长度

    二次贝塞尔曲线通常以如下方式构建 xff0c 给定二维平面上的固定点P0 P1 P2 xff0c 用B t 表示该条曲线 用一个动画来演示 xff0c 可以更加清楚的表明这条曲线的构建过程 如果t变量本身线形变化的话 xff0c 这条贝塞尔
  • 损坏的主控文件表,CHKDSK被终止.如何恢复数据

    这种情况是分区结构出现异常 引起的分区错误 单击右键属性看到的是RAW格式 移动硬盘的话 xff0c 很大程度是因为强拔之类的操作 xff0c 也可能是坏道 病毒 xff0c 硬盘本身质量问题引起的 因为系统读取移动硬盘信息困难 xff0c
  • Microsoft SQL Server 2008 R2 官方简体中文正式版下载(附激活序列号密钥)

    微软官方发布的Microsoft SQL Server 2008 R2 简体中文完整版 基于SQL Server 2008提供可靠高效的智能数据平台构建而成 xff0c SQL Server 2008 R2 提供了大量新改进 xff0c 可
  • 不重装系统将系统移动到固态硬盘,并修改为C盘

    如今很多人升级电脑都会考虑换块固态硬盘 xff0c 如果重装系统 xff0c 又要重新安装一系列的软件 xff0c 拷贝一系列的数据 这里教大家怎样直接用固态硬盘代替C盘 xff0c 并且不会影响数据和软件 1 首先是在原电脑上加装新固态硬
  • python进行t检验示例

    t检验主要是针对正态总体均值的假设检验 xff0c 即检验样本的均值与某个值的差异 xff0c 或者两个样本的均值是否有差异等 其不需要事先知道总体的方差 xff0c 并且在少量样本情况下也可以进行检验 python进行t检验使用scipy
  • python-正态分布查表应用(scipy.stats.norm)

    1 公式 xff1a 正态分布概率密度公式 xff1a 可通过转换为标准正态分布 2 概率密度 xff1a 标准正态分布在某个点的概率密度可用scipy stats norm pdf计算 xff0c 下面模拟计算 5 5的概率密度 from
  • python-介绍泊松分布(poisson分布)

    一 泊松分布问题 xff1a 假设我每天接到骚扰电话的次数服从泊松分布 xff0c 并且经统计平均每天我会接到20个骚扰电话 请问 xff1a 1 我明天接到15个骚扰电话的概率 xff1f 2 我明天接到24个骚扰电话以下的概率 xff0
  • Word文档编辑技巧

    1 如何让附录显示在目录里 依次点击菜单栏的视图 工具栏 大纲 xff0c 打开大纲工具栏 选中 目录 附录 参考文献 等标题 xff0c 点击大纲工具栏的大纲级别的下拉选项 xff0c 选择 1级 xff0c 此时就完成了对 目录 等标题
  • 谈windows开发学习过程

    MFC作为一个C 43 43 类库 xff0c 而且MFC是Windows SDK的封装 为了开发windows应用更方便 xff0c 让程序员开发应用不需要过多在意细节 xff0c 专注功能上的开发 xff0c 所以推出MFC 但是实际开
  • python-指数分布介绍(scipy.stats.expon)

    一 指数分布问题 xff1a 有一种品牌的路由器 xff0c 据厂家统计知该路由器平均寿命是50000小时 xff0c 现在有2个问题 xff1a 1 去年我买了一个这样的路由器 xff0c 使用到现在已经8000小时了一点问题都没有 xf