R语言 Kruskal-Wallis检验
R编程语言中的Kruskal-Wallis检验 是一种基于等级的检验,类似于Mann-Whitney U检验,但可以应用于有两组以上的单向数据。它是单向ANOVA检验的非参数替代方法,它扩展了双样本Wilcoxon检验。如果一组数据样本来自不相关的人群,并且样本之间互不影响,那么它们就是独立的。使用Kruskal-Wallis检验,可以决定群体分布是否相似,而不需要假设它们遵循正常分布。在R语言中进行Kruskal-Wallis检验是非常容易的。
注意:Kruskal-Wallis检验的结果告诉我们各组之间是否存在差异,但并不能说明哪些组与其他组有差异。
例子
- 让我们来看看社会经济地位如何影响对销售税上涨的态度。这里的自变量是 “社会经济地位” ,有三个层次:工人阶级、中产阶级和富人。因变量用5点李克特量表测量,从非常同意到非常不同意。
- 如果想知道考试焦虑是如何影响实际考试成绩的。自变量 ” 考试焦虑 “ 有三个级别:无焦虑,中低度焦虑和高度焦虑。因变量是考试分数,它的等级从0到100%。
R语言中Kruskal-Wallis测试的假设条件
变量应该有。
- 一个自变量,有两个或多个水平。当有三个或更多水平时,该检验更常用。对于两个水平,而不是Kruskal-Wallis检验,可以考虑使用 Mann Whitney U检验。
- 因变量应该是序数尺度、比率尺度或区间尺度。
- 观察值应该是独立的。换句话说,每组的成员之间或组内成员之间不应该有任何关联。
- 所有组都应该有相同的形状分布。
在R中的实现
R提供了一个方法 kruskal.test() ,在统计包中可以用来进行Kruskal-Wallis秩和检验。
语法: kruskal.test(x, g, formula, data, subset, na.action, …)
参数
- x:一个数据值的数字向量,或一个数字数据向量的列表。
- g:一个矢量或因子对象,给出了x的相应元素的组。
- formula:一个形式为response ~ group的公式,其中response给出了数据值,group是相应组的向量或因子。
- data:一个可选的矩阵或数据框,包含公式中的变量。
- subset:一个可选的向量,指定要使用的观察结果的子集。
- na.action:一个函数,表示当数据包含NA时应该发生什么。
- …:进一步的参数,用于传递给方法或从方法中传递。
例子
让我们使用名为PlantGrowth的内置R数据集。它包含了在控制和两种不同处理条件下获得的植物的重量。
输出
这里 “组 “一栏被称为因子,不同的类别(”ctr”、”rt1″、”rt2″)被称为因子级别。这些级别是按字母顺序排列的。问题陈述是我们想知道在3个实验条件下植物的平均重量是否有显著差异。可以用下面的函数 kruskal.test() 进行检验。
输出
解释一下
由于P值小于显著性水平0.05,可以得出结论,处理组之间存在显著差异。