【问题标题】:R function to calculate area under the normal curve between adjacent standard deviationsR函数计算相邻标准差之间的正态曲线下面积
【发布时间】:2016-03-18 03:21:53
【问题描述】:

我正在研究 GoF(拟合优度)测试,并想在运行卡方检验之前查看数据向量的分位数是否遵循正态分布 N(0, 1) 的预期频率,我为正态分布生成了这些频率:

< -2 SD(标准偏差)、-2 and -1 SD 之间、-1 and 0 SD 之间、0 and 1 SD 之间、1 and 2 SDmore than 2 SD 之间。

为此我走了很长的路:

(Normal_distr <- c(pnorm(-2), pnorm(-1) - pnorm(-2), pnorm(0) - pnorm(-1),
                  pnorm(1) - pnorm(0), pnorm(2) - pnorm(1), pnorm(2, lower.tail = F)))

[1]    0.02275013 0.13590512 0.34134475 0.34134475 0.13590512 0.02275013

我看到对称性可以让我减少代码的长度,但没有更简单的方法......(我认为这不会奏效,但......的想法)喜欢pnorm(-2:-1)pnorm(-1) - pnorm(-2) = 0.13590512 返回相同的值?

问题:是否有一个 R 函数可以计算分位数之间正态曲线下的面积,以便我们可以通过它传递一个向量,例如 c(-3:3),而不是减去相邻标准偏差或其他的 pnorm()分位数?

【问题讨论】:

    标签: r normal-distribution quartile


    【解决方案1】:

    我不确定是否有特定的功能可以做到这一点,但你可以像这样简单地做到这一点:

    #Get difference between adjacent quantiles
    diff(pnorm(-2:-1))
    [1] 0.1359051
    
    #Get area under normal curve from -2 to 2 sd's:
    sum(diff(pnorm(-2:2)))
    [1] 0.9544997
    

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 2019-02-07
      • 2017-10-12
      • 2011-06-24
      • 1970-01-01
      相关资源
      最近更新 更多