代码之家  ›  专栏  ›  技术社区  ›  Eric

为什么不把“dnorm”归结为一个概率?

  •  0
  • Eric  · 技术社区  · 6 年前

    这可能是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
    

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

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

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

    1 回复  |  直到 6 年前
        1
  •  5
  •   Anders Ellern Bilgrau    5 年前

    dnorm 返回以正态概率计算的值 功能。是的 返回概率。在密度函数中计算的转换数据之和应等于1或0,您的理由是什么?你在创建一个随机变量,没有任何理由它应该完全等于零或一。

    德诺姆 产生一种可能性。集成 德诺姆 在整个随机变量的支持下,产生一个概率:

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

    事实上, integrate(dnorm, -Inf, x) 概念上相等 pnorm(x) 对所有人 x

    根据你的评论。

    这同样适用于其他国家

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

    请注意 ... ?integrate 传递给被积函数。

    还记得泊松分布,比如说,是一个 离散的 总和 对一个。

    考虑:

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

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