正如Henry所指出的,您假设正态分布,并且数据遵循正态分布是完全可以的,但是如果您不能假设其为正态分布,那将是不正确的。下面,我描述了两种可以仅用于数据点和伴随密度估计的未知分布的方法。x
px
首先要考虑的是您要使用间隔确切地总结什么。例如,您可能对使用分位数获得的间隔感兴趣,但也可能对分布的最高密度区域(请参阅此处或此处)感兴趣。虽然在对称对称,单峰分布等简单情况下,这不会产生太多(如果有的话)差异,但这对于更“复杂”的分布将有所不同。通常,分位数会给你间隔含概率质量集中围绕中值(中间的分布的),而最高密度区域是围绕的区域模式100α%的分布。如果您比较下图的两个图,这将更加清楚-分位数垂直“切割”分布,而最高密度区域水平“切割”分布。
接下来要考虑的是如何处理有关分布的信息不完整的事实(假设我们正在谈论连续分布,那么您只有一堆要点,而不是一个函数)。您可以采取的措施是“按原样”获取值,或者使用某种插值或平滑处理来获得“介于两者之间”的值。
一种方法是使用线性插值(请参见?approxfun
R),或者使用更平滑的样条线(请参见?splinefun
R)。如果选择这种方法,则必须记住,插值算法不了解您的数据,并且可能会返回无效结果,例如小于零的值等。
# grid of points
xx <- seq(min(x), max(x), by = 0.001)
# interpolate function from the sample
fx <- splinefun(x, px) # interpolating function
pxx <- pmax(0, fx(xx)) # normalize so prob >0
您可以考虑的第二种方法是使用内核密度/混合物分布来使用所拥有的数据来近似分布。这里最棘手的部分是决定最佳带宽。
# density of kernel density/mixture distribution
dmix <- function(x, m, s, w) {
k <- length(m)
rowSums(vapply(1:k, function(j) w[j]*dnorm(x, m[j], s[j]), numeric(length(x))))
}
# approximate function using kernel density/mixture distribution
pxx <- dmix(xx, x, rep(0.4, length.out = length(x)), px) # bandwidth 0.4 chosen arbitrary
接下来,您将找到感兴趣的时间间隔。您可以通过数字方式或通过模拟进行。
1a)采样以获得分位数间隔
# sample from the "empirical" distribution
samp <- sample(xx, 1e5, replace = TRUE, prob = pxx)
# or sample from kernel density
idx <- sample.int(length(x), 1e5, replace = TRUE, prob = px)
samp <- rnorm(1e5, x[idx], 0.4) # this is arbitrary sd
# and take sample quantiles
quantile(samp, c(0.05, 0.975))
1b)采样以获得最高密度区域
samp <- sample(pxx, 1e5, replace = TRUE, prob = pxx) # sample probabilities
crit <- quantile(samp, 0.05) # boundary for the lower 5% of probability mass
# values from the 95% highest density region
xx[pxx >= crit]
2a)用数字查找分位数
cpxx <- cumsum(pxx) / sum(pxx)
xx[which(cpxx >= 0.025)[1]] # lower boundary
xx[which(cpxx >= 0.975)[1]-1] # upper boundary
2b)用数字找到最高密度的区域
const <- sum(pxx)
spxx <- sort(pxx, decreasing = TRUE) / const
crit <- spxx[which(cumsum(spxx) >= 0.95)[1]] * const
如下图所示,对于单峰对称分布,两种方法都返回相同的间隔。
当然,您也可以尝试在某个中心值附近找到间隔,例如然后使用某种优化方法来找到合适的,但是上述两种方法似乎更常用并且更直观。100α%Pr(X∈μ±ζ)≥αζ