显着性检验

机器算法验证 统计学意义 意思是
2022-04-19 05:00:21

我有来自两个不同样本的两个样本均值。我声称真正的人口平均值是相同的。

H0 : :μ1=μ2H1μ1μ2

我将使用什么显着性检验来确定支持或反对零假设的证据?

示例 1:{4,3,1,3,5,2,2,3,5,3}

示例 2:{5,3,2,2,3,3,1,4,5,5}

2个回答

这个回复描述了两个很好的解决方案,一个置换检验和一个学生t检验,并将它们进行了比较和对比。


Michael Lew 建议使用置换测试这是一个很好的建议:这样的测试在概念上很简单,并且几乎没有假设。它将原假设解释为意味着值来自哪个样本没有区别,因为两个样本都来自相同的分布。(请注意,这增加了一个未说明但常见的假设;即,均值 \mu_1 的分布与均值分布具有完全相同的形状。)μ1μ2

因为这个数据集非常小——两个样本中只有 20 个数字,每个样本 10 个——不需要模拟来进行置换测试:我们可以直接获得所有不同的方式其中个值可以从所有数字中得出。在每种情况下,我们都可以将值的平均值(用于表示原假设下的可能值)与剩余值的平均值(即的值)进行比较:这是比较的自然统计量两种手段。(2010)=184756102010x10y

这是一个工作R示例:

x <- c(5,3,2,2,3,3,1,4,5,5)       # One sample
y <- c(4,3,1,3,5,2,2,3,5,3)       # The other sample

# Construct a test statistic
sum.all <- sum(c(x,y))
n.y <- length(y)
test.statistic <- function(u) mean(u) - (sum.all - sum(u)) / n.y

# Apply it to all possible ways in which x could have occurred.
perms <- combn(c(x,y), length(x))
p <- apply(perms, 2, test.statistic)

# Display the sample distribution of the test statistic.
hist(p)

直方图

要使用此直方图,请注意实际观察值的检验统计量值为 0.2:

> test.statistic(x)
[1] 0.2 

在直方图中很明显,许多排列结果的大小大于 0.2。我们稍后会对此进行量化,但在这一点上,显然差异相对较小。

值得注意的是,检验统计量只能在的倍数取值:它的抽样分布是离散的。[2,2]0.2

> table(p)
p
   -2  -1.8  -1.6  -1.4  -1.2    -1  -0.8  -0.6  -0.4  -0.2     0 
   35   154   560  1502  3316  6320 10356 15192 19679 23164 24200 
  0.2   0.4   0.6   0.8     1   1.2   1.4   1.6   1.8     2 
23164 19679 15192 10356  6320  3316  1502   560   154    35

(运行 -2 -1.8 ... 2 的数字是的值,它们下面是每个出现的次数。)p

我们很容易发现 (a) 86.9% 的值在大小上等于或超过观察到的检验统计

> length(p[abs(p) >= abs(test.statistic(x))]) / length(p)
[1] 0.8690164

(b) 61.8% 的值在大小上严格超过观察到的检验统计量:

length(p[abs(p) > abs(test.statistic(x))]) / length(p)
[1] 0.6182641

选择其中一个数字而不是另一个数字几乎没有依据;我们可能确实只是将差值分开并取它们的平均值,等于 0.744。这告诉我们,将 20 个数据值随机分成两组,每组 10 个,以模拟零假设下的条件,在 87%、62% 或 74% 的时间产生更大的均值差异,具体取决于您希望如何解释“更大”。这些大的结果表明,观察到的差异可能仅归因于偶然性:没有基础可以推断零假设是错误的。


执行此处显示的计算的任何人都可能会等待几秒钟才能完成。它们不适用于更大的数据集:在这种情况下,样本在所有数字中出现的可能方式只有两种。这就是为什么当两组看起来相似且分布不严重时,我们通常首先查看学生 T 检验该测试是置换测试的近似值。它旨在产生可比较的结果,同时规避运行置换测试所需的大量计算。x

首先,我们检查 t 检验结果是否适用于这些数据:

> require("moments") # For skewness()
> sd(x)
[1] 1.418136
> sd(y)
[1] 1.286684
> skewness(x)
[1] -0.06406292
> skewness(y)
[1] 0.1385547

两组具有可比的标准偏差和低偏度。虽然它们的尺寸很小(每个 10 个数字),但它们并不算小。因此,t 检验应该工作良好。让我们应用它:

> t.test(x,y, var.equal=TRUE, alternative="two.sided")

        Two Sample t-test

data:  x and y 
t = 0.3303, df = 18, p-value = 0.745
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -1.072171  1.472171 
sample estimates:
mean of x mean of y 
      3.3       3.1 

输出是瞬时的,因为几乎不需要计算。正如我们之前看到的,均值相差p 值 0.745 非常接近置换检验的结果 0.744 ( qv )。3.33.1=0.2

您可以考虑进行排列测试。

置换检验假设观察结果来自一个总体,然后随机分配处理。因此,在对均值差异进行置换检验的情况下,原假设(无处理效应)变得等价于以下陈述:原假设下的组之间的任何差异都是仅将值随机分配到团体。因此,观察到的治疗组之间差异的显着性只是衡量观察到的分配相对于所有可能的随机分配有多不寻常的量度。

因此,可以通过枚举所有可能的分配并从该列表中找到组均值之间随机差异的分布来计算显着性。在零假设下,获得与观察到的或更大的差异的概率等于与观察到的或更大的差异总体的比例。

更多细节,一些参考资料和免费软件(有点过时......)可以从我的网页获得:http ://www.pharmacology.unimelb.edu.au/statboss/permutations%20test.html