当前位置: 首页 > 知识库问答 >
问题:

两个正态分布与scipy的重叠概率

夏骞尧
2023-03-14

我如何在Python中用scipy计算它?谢谢

共有1个答案

易嘉胜
2023-03-14

你可以使用@Duhalme建议的答案来得到交点,然后用这个点来定义积分极限的范围,

代码如下所示,

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
norm.cdf(1.96)

def solve(m1,m2,std1,std2):
  a = 1/(2*std1**2) - 1/(2*std2**2)
  b = m2/(std2**2) - m1/(std1**2)
  c = m1**2 /(2*std1**2) - m2**2 / (2*std2**2) - np.log(std2/std1)
  return np.roots([a,b,c])

m1 = 2.5
std1 = 1.0
m2 = 5.0
std2 = 1.0

#Get point of intersect
result = solve(m1,m2,std1,std2)

#Get point on surface
x = np.linspace(-5,9,10000)
plot1=plt.plot(x,norm.pdf(x,m1,std1))
plot2=plt.plot(x,norm.pdf(x,m2,std2))
plot3=plt.plot(result,norm.pdf(result,m1,std1),'o')

#Plots integrated area
r = result[0]
olap = plt.fill_between(x[x>r], 0, norm.pdf(x[x>r],m1,std1),alpha=0.3)
olap = plt.fill_between(x[x<r], 0, norm.pdf(x[x<r],m2,std2),alpha=0.3)

# integrate
area = norm.cdf(r,m2,std2) + (1.-norm.cdf(r,m1,std1))
print("Area under curves ", area)

plt.show()

这里使用cdf来获得高斯的积分,尽管可以定义高斯的符号版本并使用scipy.quad(或其他)。或者,您也可以使用类似此链接的蒙特卡罗方法(即生成随机数并拒绝任何超出您所需范围的数字)。

 类似资料:
  • 问题内容: 我想使用python使对数正态分布适合我的数据。根据手册,返回 形状,位置,比例 参数。但是,对数正态分布通常只需要两个参数:平均值和标准偏差。 如何解释scipy函数的结果?如何获得均值和std.dev。 问题答案: scipy中的分布以通用的方式通过两个参数的位置和比例进行编码,因此位置是将分布向左或向右移动的参数(),而是压缩或拉伸分布的参数。 对于两个参数的对数正态分布,“均值

  • 我正在尝试使用Matlab计算特定区域上双变量正态分布的概率。 假设随机变量服从标准正态分布,我想计算单位圆的质量。 我使用了以下代码: 我得到0.3935。我想知道这个结果是否正确。 有人能确认结果是正确的,或者指出我犯的错误吗?

  • 问题内容: 我正在尝试模拟球迷到达体育场的情况。我相信系统本身不会有问题,但是风扇的到来遵循正态分布。 我的问题是: 我有一定的到达时间(例如100分钟和1000个风扇),我需要在分配之后的某个时间生成风扇的到达时间,例如->风扇x到达25分钟,风扇y到达54分钟,依此类推。 如何按照正态分布生成这些随机数? 我正在Java中执行此操作,并在Random类中找到了该方法,但是我不确定如何在我的情况

  • 问题内容: 有谁知道如何用scipy绘制偏态正态分布?我认为可以使用stats.norm类,但我不知道如何使用。此外,如何估计描述一维数据集偏斜正态分布的参数? 问题答案: 根据Wikipedia的描述, 如果你想找到一个数据集的使用规模,位置和形状参数,例如使用,并且, 应该给你类似的东西,

  • 在来自独立来源的随机数据集中,通常观察到数据的分布是正常的。 这意味着,在绘制具有水平轴中变量值的图形和垂直轴中的值的计数时,我们得到钟形曲线。 曲线的中心表示数据集的平均值。 在图中,百分之五十的值位于均值的左侧,另外百分之五十位于图的右侧。 这在统计学中称为正态分布。 R有四个内置函数来生成正态分布。 它们如下所述。 dnorm(x, mean, sd) pnorm(x, mean, sd)

  • 在随机收集来自独立来源的数据中,通常观察到数据的分布是正常的。 这意味着,在绘制水平轴上的变量的值和垂直轴中的值的计数时,我们得到一个钟形曲线。 曲线的中心代表数据集的平均值。 在图中,百分之五十的值位于平均值的左侧,另外五十分之一位于图的右侧。 统称为正态分布。 R有四个内置函数来生成正态分布。它们在下面描述 - 以下是上述函数中使用的参数的描述 - x - 是数字的向量。 p - 是概率向量。