【问题标题】:Why doesn't "dnorm" sum up to one as a probability?为什么“dnorm”不将一个概率加起来?
【发布时间】:2019-03-05 17:03:19
【问题描述】:

这可能是关于 R 中“dnorm”函数的一些基本/基本问题。假设我通过 z 变换创建了一些 z 分数,并尝试从“dnorm”中得到总和。

 data=c(232323,4444,22,2220929,22323,13)
 z=(data-mean(data))/sd(data)
 result=dnorm(z,0,1)
 sum(result)
 [1] 1.879131

如上,'dnorm' 的和不是 1 也不是 0。

假设我在 z 变换中使用零均值和一个标准差。

 data=c(232323,4444,22,2220929,22323,13)
 z=(data-0)/1
 result=dnorm(z,0,1)
 sum(result)
 [1] 7.998828e-38

我仍然没有得到 0 或 1 的总和。

如果我的目的是使概率总和等于 1,因为我将需要进一步使用,您建议使用什么方法使用 'dnorm' 甚至使用其他 PDF 函数?

【问题讨论】:

  • 密度下方的面积为 1 - 即密度函数从 -Inf 到 +Inf 的积分。您正在通过计算总和来做其他事情。
  • 如果我想从 dnorm 获得密度 1 来证明我的利益,需要什么?
  • 阅读@AndersEllernBilgrau 的回答

标签: r normal-distribution probability-density probability-distribution


【解决方案1】:

dnorm 返回在正态概率密度函数中评估的值。它确实返回概率。您认为在密度函数中评估的转换数据的总和应该等于 1 或 0,您的理由是什么?您正在创建一个随机变量,它没有理由完全等于零或一。

积分dnorm 产生一个概率。将dnorm 整合到随机变量的整个支持度上得出的概率为 1:

integrate(dnorm, -Inf, Inf)
#1 with absolute error < 9.4e-05 

事实上,integrate(dnorm, -Inf, x) 在概念上等于所有xpnorm(x)

编辑:根据您的评论。

这同样适用于其他连续概率分布(PDF):

integrate(dexp, 0, Inf, rate = 57)
1 with absolute error < 1.3e-05

请注意,?integrate 中的 ... 参数被传递给被积函数。

还记得泊松分布,比如说,是一个离散概率分布,因此整合它(在传统意义上)是没有意义的。离散概率分布具有概率质量函数 (PMF),而不是实际返回概率的 PDF。在这种情况下,它应该 sum 为 1。

考虑:

dpois(0.5, lambda = 2)
#[1] 0
#Warning message:
#In dpois(0.5, lambda = 2) : non-integer x = 0.500000

从 0 到“非常”大的数字求和(即超过泊松分布的支持):

sum(dpois(0:1000000, lambda = 2)) 
#[1] 1

【讨论】:

  • 谢谢。如果我试图对其他分布(例如泊松、指数、二项式等)做同样的事情,它们似乎需要一些额外的变量,例如 lamda、大小等。如果是这样,我可以知道如何在这种一般情况下使用集成吗?
  • @Eric 我已经编辑了答案。您可以简单地将其添加为参数。
猜你喜欢
  • 1970-01-01
  • 2017-01-04
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2015-06-19
  • 2013-03-08
  • 2020-04-27
相关资源
最近更新 更多