R函数计算相邻标准差之间正态曲线下的面积
R function to calculate area under the normal curve between adjacent standard deviations
我正在研究 GoF(拟合优度)测试,想看看数据向量的分位数是否遵循正态分布 N(0, 1) 的预期频率,并且在 [=31 之前=] 卡方检验,我为正态分布生成了这些频率:
< -2 SD
's(标准差),-2 and -1 SD
之间,-1 and 0
SD之间,0 and 1
SD之间,1 and 2 SD
之间, 和 more 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()
的相邻标准偏差或其他分位数?
我不确定是否有特定的功能可以做到这一点,但您可以像这样非常简单地做到这一点:
#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
我正在研究 GoF(拟合优度)测试,想看看数据向量的分位数是否遵循正态分布 N(0, 1) 的预期频率,并且在 [=31 之前=] 卡方检验,我为正态分布生成了这些频率:
< -2 SD
's(标准差),-2 and -1 SD
之间,-1 and 0
SD之间,0 and 1
SD之间,1 and 2 SD
之间, 和 more 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()
的相邻标准偏差或其他分位数?
我不确定是否有特定的功能可以做到这一点,但您可以像这样非常简单地做到这一点:
#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