假设我有一个渐近的结果,比如
在哪里是独立的. 即一些测试统计是渐近加权的线性组合变量。我能得到吗- 来自这样一个结果的值?
假设我有一个渐近的结果,比如
在哪里是独立的. 即一些测试统计是渐近加权的线性组合变量。我能得到吗- 来自这样一个结果的值?
假设你知道,仿真是可行的。
考虑
library(MASS)
k <- 3
lambda <- c(.2,.3,.4) # pick your lambdas here
reps <- 100000
distr <- rep(NA,reps)
for (i in 1:reps){
distr[i] <- sum(lambda*rchisq(k,1))
}
distr <- sort(distr)
teststat <- 2 # pick your teststat here
pvalue <- which.min(abs(teststat-distr))/reps # assuming a left-tailed test
如此有效地,我们将测试统计量“插入”teststat
到经验 cdf 中,即从模拟中找到实现的比例(在reps
很大程度上,精确估计概率)来自零分布的随机变量取值较小(我们在这里考虑一个左尾检验,对其他替代方案进行了明显的修改)而不是检验统计量 - 即-价值:
有两个有用的近似值和至少三个计算可以精确到无限精度算术。
让我们称之为分布. 和写的平均值和的平均值.
这两个近似值pchisqsum
在 Rsurvey
包中实现
Satterthwaite 近似是在实践中评估该分布的最常见方法。它近似经过在哪里和被选择以获得正确的均值和方差。具体来说,, 和. 直到你在正确的尾巴中走得更远,萨特思韦特近似比它有任何权利要准确得多。此外,在常见的场景中,是矩阵的特征值,您不需要特征分解:您可以计算 Satterthwaite 近似值一般矩阵的时间和特殊结构的矩阵更快。
鞍点近似对于适度的尾部概率不太准确,但对于小的概率则要准确得多——它具有统一的有界相对误差,并且误差随着增加。它是唯一适用于普通双精度算术的非常小的尾概率的算法。
有两种相当古老的计算方法运行良好。这些都包含在CompQuadForm
R 的包中。当右尾概率接近机器 epsilon 时,它们都会产生灾难性的舍入误差,并且它们会大幅减速.
Farebrother 的方法将概率表示为 Beta 函数中的无限级数。它需要s 是积极的,并且对于大最大的不能比其他的大得多。你可能会认为消极不重要,但它可以让你做同样的伎俩具有相同分母的分布
Davies 的方法利用了这样一个事实,即您可以只写下特征函数,然后可以通过数值积分将其反转
由于 Bausch,还有第三种计算方法,只要你有任意精度的算术,它在极端设置下就有很好的误差/努力范围。他发明它是为了解决弦论中的一个问题。它确实需要多精度算术。
Satterthwaite 近似也有一些改进
匹配两个以上的时刻。在我看来,这些并不是很吸引人:如果你拥有所有s 你不妨使用 Davies 或 Farebrother 的方法。如果很大,你只有特征值是s,这些方法并不比完全特征分解快。
前导特征值近似。什么时候很大,将总和近似为,其中最后一项是 Satterthwaite 近似,其中最小特征值。