【问题标题】:The reverse/inverse of the normal distribution function in RR中正态分布函数的逆/逆
【发布时间】:2013-11-04 12:48:02
【问题描述】:

要在 R 中绘制正态分布曲线,我们可以使用:

(x = seq(-4,4, length=100))
y = dnorm(x)
plot(x, y)

如果dnorm 计算 y 作为 x 的函数,R 是否有一个函数可以计算 x 作为 y 的函数?如果不是,解决此问题的最佳方法是什么?

【问题讨论】:

  • 你读过pnorm ??
  • 也许我遗漏了一些东西,但是pnorm(y) 没有给出 x,因此plot(pnorm(y), y) 没有给出正态分布(它实际上是一条直线)。
  • plot(pnorm(y), y) 肯定不是一条直线。但是,plot(ppoints(y), y) 是。
  • 一个问题是密度函数的倒数不是函数,因为它不是一对一的,但下面 mrip 的回答给出了尽可能接近您所要求的内容。
  • 不是所有函数are invertible,这是一个例子(它不是严格增加也不是减少)。我认为@gung 的回答在这里更有用。

标签: r distribution reverse inverse


【解决方案1】:

dnorm() 正在做的是给你一个probability density function。如果您在此范围内使用integrate,您将拥有一个cumulative distribution function(由R 中的pnorm() 给出)。 CDF 的倒数由qnorm() 给出;这是这些事物在统计学中概念化的标准方式。

【讨论】:

  • 感谢您的澄清。我不是统计学家,所以我的术语可能不太准确。
【解决方案2】:

我不确定密度函数的倒数是否内置——它的使用频率不如累积分布函数的倒数。我想不出太多反密度函数有用的情况。当然,这并不意味着没有,所以如果您确定这是您需要的功能,您可以这样做:

dnorminv<-function(y) sqrt(-2*log(sqrt(2*pi)*y))

plot(x, y)
points(dnorminv(y),y,pch=3)

【讨论】:

  • 谢谢mrip。我曾尝试自己反转normal distribution function,但没有成功。
  • 我不能内置,因为这个密度函数不可能逆向(见wikipedia)。
  • @Juan 好吧,正逆可以作为偏函数内置。 CDF 的逆是内置的,从技术上讲这也不是一个函数,因为它只在 [0,1] 上定义。
  • 你是对的,如果你把这个函数分成两部分,那么两个结果函数都符合可逆的标准(更一般地说:在平均值右边的函数,另一个左边)。另外,我没有看到在 [0,1] 上定义函数的问题,函数不必限制在预定义的域中。
  • 您对 [0,1] 的看法是正确的。它是一个函数,而不是一个真正的函数(我认为这是标准术语)。我想一个更好的例子是函数x^2,它在技术上是不可逆的,但sqrt 函数是逆的正分支。
【解决方案3】:

标准正态pdf的逆推导为:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-15
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多