Source: http://www.r-bloggers.com/one-sample-z-test/
在知道总体平均和标准差时的样本平均的比较
假设有10个自愿者进行了智力测试,这里有获得的结果。在同样测试的总体平均为75。你希望检测在样本和总体平均之间是否有统计上的显著差异(显著水平为95%),这里假设样本方差已知等于18.
65, 78, 88, 55, 48, 95, 66, 57, 79, 81
为解决这个问题,需要开发一个样本的Z-test。在R中没有类似的函数,因此我们需要自己创建一个。
回忆计算z值的公式,我们将写出这样的函数:
$$Z=\frac{\overline{x}-\mu_0}{\frac{\sigma}{\sqrt{n}}}$$
z.test = function(a, mu, var){ zeta = (mean(a) - mu) / (sqrt(var / length(a))) return(zeta) }我们就创建了这个函数z.test,其在输入的值向量(a)中获得总体平均来进行比较(mu),另外有总体方差(var);函数则返回zeta值。
a = c(65, 78, 88, 55, 48, 95, 66, 57, 79, 81) z.test(a, 75, 18) [1] -2.832353
这里zeta值等于-2.83,其高于在alpha=0.05(2-tailed test)的临界值Zcv=1.96。于是我们论断我们样本的平均与总体平均显著不同。
----------------------------------------------------
考虑到z-test检验的正态分布,如果双边/双尾的alpha=0.05,则需要单边p-value=1-0.025,于是这里的临界值实际由此得到:
Zcv <- qnorm(1-0.025)