当前位置: 首页 > 面试题库 >

如何计算python中正态累积分布函数的反函数?

阎令
2023-03-14
问题内容

如何计算Python中正态分布的累积分布函数(CDF)的反函数?

我应该使用哪个库?可能是卑鄙的?


问题答案:

NORMSINV(在注释中提到)是标准正态分布的CDF的倒数。使用scipy,您可以使用对象的ppf方法进行计算scipy.stats.norm。首字母缩写词ppf代表
百分比点函数

,它是 分位数函数的 另一个名称。

In [20]: from scipy.stats import norm

In [21]: norm.ppf(0.95)
Out[21]: 1.6448536269514722

检查它是否与CDF相反:

In [34]: norm.cdf(norm.ppf(0.95))
Out[34]: 0.94999999999999996

默认情况下,norm.ppf使用mean = 0和stddev =
1,这是“标准”正态分布。您可以通过分别指定locscale参数来使用不同的均值和标准差。

In [35]: norm.ppf(0.95, loc=10, scale=2)
Out[35]: 13.289707253902945

如果您看一下的源代码scipy.stats.norm,就会发现该ppf方法最终会调用scipy.special.ndtri。因此,要计算标准正态分布的CDF的倒数,可以直接使用该函数:

In [43]: from scipy.special import ndtri

In [44]: ndtri(0.95)
Out[44]: 1.6448536269514722


 类似资料:
  • 我有两个不同长度的向量,每个向量包含0到50之间的数字。有些数字在向量中不包含,其他数字可能出现多次。 我想画一条线,显示每个数字在每个向量中包含的频率,即数字的频率。 如果我将中断设置为每个可能的数字之间,我可以绘制显示频率的直方图: 我知道有一个经验累积分布函数(),它会形成一个S形;但我想要的是一个非累积的经验分布函数,它将导致类似阶梯形钟形曲线的结果,类似于直方图的轮廓。 我能得到的最接近

  • 问题内容: 我想用NumPy创建CDF,下面是我的代码: 我正在阵列旁走,但是需要很长时间执行程序。这个功能有一个内置的功能,不是吗? 问题答案: 我不太确定您的代码在做什么,但是如果您有和返回的数组,则可以用来生成直方图内容的累积和。

  • 本文向大家介绍python 计算概率密度、累计分布、逆函数的例子,包括了python 计算概率密度、累计分布、逆函数的例子的使用技巧和注意事项,需要的朋友参考一下 计算概率分布的相关参数时,一般使用 scipy 包,常用的函数包括以下几个: pdf:连续随机分布的概率密度函数 pmf:离散随机分布的概率密度函数 cdf:累计分布函数 百分位函数(累计分布函数的逆函数) 生存函数的逆函数(1 - c

  • 问题内容: 在numpy或scipy(或其他库)中是否有一个函数将cumsum和cumprod的概念推广为任意函数。例如,考虑(理论上的)函数 func是一个接受两个浮点数并返回一个浮点数的函数。特殊情况 和 分别是cumsum和cumprod。例如,如果 我将其应用于: 我想要 问题答案: NumPy的ufunc有: 不幸的是,呼吁在“编Python函数失败,一个奇怪的错误: 这是将NumPy

  • 我尝试过用这个方法来计算累积值,但是如果日期字段与累积字段中的值相同,那么有人能提出类似于这个问题的解决方案吗

  • 问题内容: 我正在和熊猫一起工作,但是我没有太多经验。我有以下DataFrame: 而且我需要计算前11行的累积总和。如果先前的数量少于11,则将剩余的数量假定为0。 我试过了: 但是,这并没有实现我想要的,但是这正在旋转累积总和的结果。我该如何实现? 问题答案: 呼叫与和和: