我想找到给定区间内标准正态分布的平均值。
例如,如果我将标准正态分布分成两个 ([-Inf:0] [0:Inf]) 我想得到每一半的平均值。
以下代码几乎完全符合我的要求:
divide <- 2
boundaries <- qnorm(seq(0,1,length.out=divide+1))
t <- sort(rnorm(100000))
means.1 <- rep(NA,divide)
for (i in 1:divide) {
means.1[i] <- mean(t[(t>boundaries[i])&(t<boundaries[i+1])])
}
但我需要一种更精确(和优雅)的方法来计算这些数字(means.1)。
我尝试了以下代码,但它不起作用(可能是因为我缺乏概率知识)。
divide <- 2
boundaries <- qnorm(seq(0,1,length.out=divide+1))
means.2 <- rep(NA,divide)
f <- function(x) {x*dnorm(x)}
for (i in 1:divide) {
means.2[i] <- integrate(f,lower=boundaries[i],upper=boundaries[i+1])$value
}
有任何想法吗?提前致谢。