如何通过巴特利特检验来检验方差相等的假设?

How to test the hypothesis for equality of variances through the Barlett test?

用户请求并输入时间子间隔的数量(2 个或更多)。将 TT 向量的元素分成给定数量的连接的、近似相等的子区间。计算每个子区间的方差估计。使用 Bartlett 标准检验所有子区间方差相等的假设——备选方案“不相等”。但是在做任务的时候,不太明白如何通过Barlett检验来正确检验假设

> TT
[1] 20.2 18.6 15.0 12.0 11.7 10.9  9.0 11.9 13.3  8.8  8.6  6.1  6.6  6.5 11.4

> n <- as.numeric(readline(prompt = "Enter count ints: "))
Enter count ints: 3
> n
[1] 3
> ints = split(TT, cut(seq_along(TT),n))
> ints
$`(0.981,7.33]`
[1] 20.2 18.6 15.0 12.0 11.7 10.9  9.0

$`(7.33,13.7]`
[1] 11.9 13.3  8.8  8.6  6.1  6.6

$`(13.7,20]`
[1]  6.5 11.4 12.9  5.4  2.5  4.3  3.0
> Var = lapply(ints,var)
> Var
$`(0.981,7.33]`
[1] 17.4081

$`(7.33,13.7]`
[1] 8.197667

$`(13.7,20]`
[1] 16.53905

这是我对如何进一步决定的看法

> bartlett.test(ints,Var)

        Bartlett test of homogeneity of variances

data:  ints
Bartlett's K-squared = 0.77726, df = 2, p-value = 0.678

但事实证明,显着性标准为0.05,H0不会被拒绝,即方差相同,虽然根据前面的段落,可以看出它们是不同的。

我是做对了还是做错了什么?

我无法完全重现您发布的结果,而且您​​在应用 bartlett.test() 时似乎犯了一个错误,但更根本的是,您定义的向量段似乎 根据 Bartlett 检验 ,它们的方差实际上没有显着差异。这并不意味着它们“具有相同的方差”——首先,您永远不能使用频率测试来接受原假设,其次,您拒绝原假设的能力取决于您使用的测试。

设置

TT <- scan(text="20.2 18.6 15.0 12.0 11.7 10.9  9.0 11.9 13.3  8.8  8.6  6.1  6.6  6.5 11.4")
n <- 3
cc <- cut(seq_along(TT), n)
ints <- split(TT, cc)
sapply(ints, var)
(0.986,5.67]  (5.67,10.3]    (10.3,15] 
      14.660        3.677        4.903 

这些方差 看起来 完全不同 - 第一组的方差是第二组的四倍,是第三组的三倍!然而:

bartlett.test(ints)

    Bartlett test of homogeneity of variances

data:  ints
Bartlett's K-squared = 2.033, df = 2, p-value = 0.3619

这表示方差的差异 组相同大小的值一致,这些值都来自具有相同方差的分布。

作为实验,让我们看一下大小为 5 的两个标准正态样本的方差比分布:

vfun <- function(n) { vr <- var(rnorm(n))/var(rnorm(n)); max(vr, 1/vr) }
set.seed(101)
r <- replicate(10000, vfun(5))
hist(log10(r))

您可以看到大于 sqrt(10) 大约 3.2(即 log10(x) == 0.5)的方差比很常见,大于 10 的方差比并不少见。事实上,如果我们计算 mean(r>10)(方差比 > 10 的游程的分数),那大约是 0.05 - 所以你必须看到 十倍 方差比在通常的 p=0.05 水平拒绝原假设 ...