1

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

< -2 SD's(标准差),-2 and -1 SD's 之间,-1 and 0SD 之间,0 and 1SD 之间,1 and 2 SD's 和more than 2 SD's 之间。

为此,我走了很长的路:

(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()相邻标准差或其他分位数的 's?

4

1 回答 1

2

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

#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
于 2015-12-12T06:47:17.097 回答