为什么 "dnorm" 总和不是一个概率?

Why doesn't "dnorm" sum up to one as a probability?

这可能是关于 R 中 'dnorm' 函数的一些 basic/fundamental 问题。假设我通过 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 函数?

dnorm returns 在正态概率 density 函数中评估的值。它 而不是 return 概率。您认为在密度函数中评估的转换数据之和应等于 1 或 0 的原因是什么?您正在创建一个随机变量,没有理由让它恰好等于零或一。

积分 dnorm 产生一个概率。在随机变量的整个支持上积分 dnorm 产生一个概率:

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

事实上,对于所有 xintegrate(dnorm, -Inf, x) 在概念上等于 pnorm(x)

编辑:根据您的评论。

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

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

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

还记得泊松分布是 离散 概率分布,因此(在传统意义上)对其进行积分是没有意义的。离散概率分布具有概率质量函数 (PMF),而不是实际上 return 概率的 PDF。在那种情况下,它应该 sum 为一。

考虑:

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

从 0 到 'very' 大数求和(即超过泊松分布的支持):

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