如何在R中应用Shapiro测试?

时间:2014-08-10 00:12:03

标签: r

我对统计数据很陌生,我需要你的帮助。我刚刚安装了R软件,我不知道如何使用它。我有一个小样本,如下所示:

Group A : 10, 12, 14, 19, 20, 23, 34, 41, 12, 13
Group B :  8, 12, 14, 15, 15, 16, 21, 36, 14, 19

我想申请t-test但在此之前我想应用Shapiro测试来了解我的样本是否来自具有正态分布的人群。我知道有一个函数shapiro.test()但是如何将我的数字作为此函数的输入?

我可以简单地输入shapiro.test(10,12,14,19,20,23,34,41,12,13,8,12,14,15,15,16,21,36,14,19 )?

1 个答案:

答案 0 :(得分:3)

好的,因为我感觉很好,让我们通过这个工作。我假设您知道如何运行命令等。首先,将您的数据放入向量:

A = c(10, 12, 14, 19, 20, 23, 34, 41, 12, 13)
B = c(8, 12, 14, 15, 15, 16, 21, 36, 14, 19)

让我们检查一下shapiro.test()的帮助。

help(shapiro.test)

在那里,您将看到以下内容:

  

用法

     

shapiro.test(x)

     

参数

     

x数据值的数值向量。允许丢失值,但是   非缺失值的数量必须介于3到5000之间。

因此,输入需要是矢量值。现在我们知道我们可以运行' shapiro.test()'直接使用我们的向量AB。 R对其大多数函数使用命名参数,因此我们告诉函数我们传入的是什么:

shapiro.test(x = A)

并将结果放到屏幕上:

Shapiro-Wilk normality test

data:  A
W = 0.8429, p-value = 0.0478

然后我们可以为B做同样的事情:

shapiro.test(x = B)

给了我们

Shapiro-Wilk normality test

data:  B
W = 0.8051, p-value = 0.0167

如果需要,我们可以一起测试AB,但很难知道这是否是有效的测试。有效的',我的意思是想象你从包中取出数字以获得AB。如果A中的数字被放回包中,然后我们会B,我们只会重复计算。如果A中的数字没有被重新投入,则测试x = c(A,B)是合理的,因为我们所做的只是增加了样本的大小。

shapiro.test(x = c(A,B))

这些是否意味着数据是正态分布的?好吧,在帮助中我们看到了这一点:

  

     

...

     

p.value测试的近似p值。据Royston(1995)所说,这对于p.value来说是足够的。 0.1

所以也许那就足够好了。但这取决于你的要求!