ANOVA 型检验,但每组的总体方差已知

机器算法验证 假设检验 方差分析 方差 小样本 高斯混合分布
2022-04-01 14:20:52

我有一组个样本 ,每个样本都是从具有已知的正态分布中采样的。我想知道分布是否具有相同的均值。Nsiσi

我认为这种情况与 ANOVA 密切相关,但不同之处在于我每个“组”只有一个样本,并且我确切地知道该组的标准偏差。

2个回答

正如您所描述的那样,您的数据构成了混合分布假设已知分布是具有已知方差的正态分布,则混合的均值和方差为: 其中索引分量分布,是混合的比例每个组件构成。

μmixture=kpkμkσmixture2=kpk((μkμmixture)2+σk2)
kpk

在您的零假设下,组分混合物都具有相同的均值(为方便起见,我们可以将其称为)。此外,我收集的比例都是,因为每个组件只有一个数据。这些事实大大简化了您的情况。您的数据的预期方差将等于已知分量方差的总和。另一方面,如果均值发生变化,则分量均值的方差会大大增加混合物的方差。01/N

因此,您只需测试数据的方差是否大于已知分量方差的总和。这可以通过卡方检验来完成(参见@Glen_b 的答案:为什么方差的抽样分布是卡方的?)。

这是一个快速R演示:首先我模拟原假设并显示它的分布。然后我生成零假设为假的数据并显示测试。数据是从正态分布中提取的三个点,均值等于(或者它们可以是其他任何值,只要它们相同),方差等于因此得到的混合分布方差为在这种情况下,有三个数据点,因此您有个自由度。046818/3=62

set.seed(0884)                   # this makes the example reproducible
chi.vect = vector(length=10000)  # this will store the test statistics
for(i in 1:10000){               # I do this 10k times
  x  = c(rnorm(1,0,sd=sqrt(4)),  # here I generate the three data points
         rnorm(1,0,sd=sqrt(6)), 
         rnorm(1,0,sd=sqrt(8)))
  vx = var(x)                    # this computes the variance of the sample
  chi.vect[i] = 2*vx / 6         # this computes the test statistic
}

在此处输入代码

x   = c(rnorm(1, mean=30, sd=sqrt(4)),  # these data come from distributions
        rnorm(1, mean=20, sd=sqrt(6)),  #   w/ different means
        rnorm(1, mean=10, sd=sqrt(8)))  # x   = 29.26698 26.00434 13.89382
vx  = var(x)                            # vx  = 65.60725
chi = 2*vx / 6                          # chi = 21.86908
1-pchisq(chi, df=2)                     # p   =  1.783157e-05

qqplot gung 提供的看起来是正确的。但是绘制的点并没有紧跟 y = x!如果分布实际上是卡方,则应该是这种情况。这是一个 qqplot,包括从以下代码生成的行 y=x (改编自 gung 的答案):

qqplot - 卡方

# Generates the q-q plot comparing the theoretical 
# chi-squared distribution to the empirical distribution 
# of the randomly sampled values:
empirical_quantiles = chi.vect[order(chi.vect)]
empirical_cdf = c(1:length(chi.vect))/length(chi.vect)
exact_quantiles = qchisq(empirical_cdf,df = 2)
plot(exact_quantiles,empirical_quantiles)
abline(0,1, col="red")

要回答 OP:假设和所有都是独立的,那么您可以执行以下操作: 然后可以通过科克伦定理证明: 所以你所要做的就是将每个除以已知的标准差,计算均值和平方偏差之和,然后从自由度为请注意,siN(μ,σi2)si

Xi:=siσiX¯:=1ni=1nXi
T:=i=1n(XiX¯)2χn12
sin1T对应于均值的很大差异,因此您需要卡方的上尾。