【问题标题】:shouldn't norm.ppf() method only give positive output?norm.ppf() 方法不应该只给出正输出吗?
【发布时间】:2020-01-17 14:49:37
【问题描述】:

我正在学习有关金融的在线 Udemy 课程。 作者在他的一项蒙特卡罗模拟中使用 .ppf() 来模拟股票每日收益。

我的理解是 .ppf(百分比点函数)显示给定百分比的平均值的距离。它总是积极的。正态分布总是对称的,实际上有两个值 +- (输出),但 ppf() 只显示绝对距离。

令我惊讶的是,代码给出了正面和负面的输出,有人可以帮助我我对统计的理解有什么问题,还是我不知道 ppf() 方法的一些规范?无论如何,我没有找到解释 ppf() 方法如何工作的文档。谢谢!

代码很简单

norm.ppf(np.random.rand(10, 2))

【问题讨论】:

    标签: scipy normal-distribution


    【解决方案1】:

    ppf 方法是 CDF 的逆方法。它也被称为quantile function

    你说“它总是积极的”,但那是不正确的。它将返回分布的support 的值,对于正态分布,它是整条实线。

    表达式norm.ppf(np.random.rand(10, 2)) 使用inverse transform method 从标准正态分布生成随机样本。您可以简单地调用rvs 方法,而不是使用该表达式:norm.rvs(size=(10, 2))

    【讨论】:

    • 你好沃伦;我又检查了。 random.rand() 文档。 numpy.random.rand(d0, d1, ..., dn) 给定形状的随机值。创建一个给定形状的数组,并使用来自 [0, 1) 上的均匀分布的随机样本传播它。所以它是从均匀分布生成的,只给出正值,值不是来自标准正态分布。
    • 是的,rand() 生成的值来自单位区间内的均匀分布。这些值被传递给norm.ppf() 以从正态分布中生成样本。这正是“逆变换方法”。再看看我在回答中给出的链接的this section
    猜你喜欢
    • 2021-04-27
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2022-06-22
    相关资源
    最近更新 更多