我有一组个样本 ,每个样本都是从具有已知的正态分布中采样的。我想知道分布是否具有相同的均值。
我认为这种情况与 ANOVA 密切相关,但不同之处在于我每个“组”只有一个样本,并且我确切地知道该组的标准偏差。
我有一组个样本 ,每个样本都是从具有已知的正态分布中采样的。我想知道分布是否具有相同的均值。
我认为这种情况与 ANOVA 密切相关,但不同之处在于我每个“组”只有一个样本,并且我确切地知道该组的标准偏差。
正如您所描述的那样,您的数据构成了混合分布。假设已知分布是具有已知方差的正态分布,则混合的均值和方差为:
其中索引分量分布,是混合的比例每个组件构成。
在您的零假设下,组分混合物都具有相同的均值(为方便起见,我们可以将其称为)。此外,我收集的比例都是,因为每个组件只有一个数据。这些事实大大简化了您的情况。您的数据的预期方差将等于已知分量方差的总和。另一方面,如果均值发生变化,则分量均值的方差会大大增加混合物的方差。
因此,您只需测试数据的方差是否大于已知分量方差的总和。这可以通过卡方检验来完成(参见@Glen_b 的答案:为什么方差的抽样分布是卡方的?)。
这是一个快速R演示:首先我模拟原假设并显示它的分布。然后我生成零假设为假的数据并显示测试。数据是从正态分布中提取的三个点,均值等于(或者它们可以是其他任何值,只要它们相同),方差等于、和。因此得到的混合分布方差为。在这种情况下,有三个数据点,因此您有个自由度。
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 的答案):
# 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:假设和所有都是独立的,那么您可以执行以下操作: 然后可以通过科克伦定理证明: 所以你所要做的就是将每个除以已知的标准差,计算均值和平方偏差之和,然后从自由度为请注意,