Source: http://www.r-bloggers.com/two-sample-z-test/
比较两个独立样本组的均值,这两个样本组取自已知方差的两个总体。
这里比较两个组的平均高度。第一组(A)包括意大利的个体(意大利总体的方差是5);第二组(B)取自德国的个体(德国总体的方差是8.5)。数据如下:
A: 175, 168, 168, 190, 156, 181, 182, 175, 174, 179
B: 185, 169, 173, 173, 188, 186, 175, 174, 179, 180
既然我们有总体的方差,我们必须处理两个样本的Z-test。尽管在R中没有直接的函数来解决这个问题,我们可以很容易地自己创建一个:
$$Z=\frac{(\overline{x}_1-\overline{x}_2)-(\mu_1-\mu_2)}{\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}}$$
z.test2sam = function(a, b, var.a, var.b){ n.a = length(a) n.b = length(b) zeta = (mean(a) - mean(b)) / (sqrt(var.a/n.a + var.b/n.b)) return(zeta) }
函数z.test2sam在输入中接收两个向量(a和b),第一个总体的方差(var.a)和第二个总体的方差(var.b),然后在输出中提供zeta的值。使用此函数我们获得:
a = c(175, 168, 168, 190, 156, 181, 182, 175, 174, 179) b = c(185, 169, 173, 173, 188, 186, 175, 174, 179, 180) z.test2sam(a, b, 5, 8.5) [1] -2.926254
zeta的值大于在alpha等于0.05时,表中zeta的临界值(对双边/双尾检验,表中z值为1.96):于是我们拒绝null hypothesis而更相信alternative hypothesis。我们论断两个均值显著不同。
---------------------------------------------
这里zeta临界值在R的计算方法参考《一个样本的Z-test》