📜  R 编程中的 Mann Whitney U 测试

📅  最后修改于: 2022-05-13 01:55:23.315000             🧑  作者: Mango

R 编程中的 Mann Whitney U 测试

用于比较两个独立组之间结果的流行非参数(无分布)检验是Mann Whitney U 检验。在比较两个独立样本时,当结果不是正态分布且样本较小时,适合进行非参数检验。它用于根据序数(具有内在顺序或等级的分类变量)因变量查看两个自变量之间的分布差异。在 R 编程中执行这个测试非常容易。

R 编程中 Mann Whitney U 检验的实现

假设我们的数据中有两种灯泡,分别是橙色和红色,它们根据日常基本价格进行划分。所以这里的基本价格是红色和橙色两个类别的因变量。因此,我们将尝试分析,如果我们想根据价格购买红色或橙色的灯泡,我们应该更喜欢哪个。如果两个分布相同,则这意味着原假设意味着两者之间没有显着差异为真,我们可以购买其中任何一个,价格无关紧要。要理解 Mann Whitney U 检验的概念,需要知道什么是p 值。这个值实际上告诉我们是否可以拒绝我们的零假设(0.5)。现在下面是上述示例的实现。

方法

  1.  制作一个包含两个分类变量的数据框,其中一个是序数类型。
  2. 在此之后,通过加载包dplyr检查非序数分类变量的摘要 总结() 使用median()获取中值 并通过bulb_prices 列、IQR-四分位数范围以及两组的计数,即红色和橙色灯泡
  3. 然后查看箱线图并在安装包ggpubr并使用ggboxplot()的帮助下查看数据分布 并将列作为 x 和 y 中的参数传递,并在调色板的帮助下为它们提供颜色传递颜色代码。
  4. 然后最后应用函数wilcox.test() 得到 p 值
  5. 如果发现 p 值小于 0.5,则拒绝原假设
  6. 如果我们发现该值大于 0.5,则将接受原假设
  7. wilcox.test() 函数同时接受分类变量和数据框作为参数,并给我们假设 p 值
R
# R program to illustrate
# Mann Whitney U Test
 
# Creating a small dataset
# Creating a vector of red bulb and orange prices
red_bulb <- c(38.9, 61.2, 73.3, 21.8, 63.4, 64.6, 48.4, 48.8)
orange_bulb <- c(47.8, 60, 63.4, 76, 89.4, 67.3, 61.3, 62.4)
 
# Passing them in the columns
BULB_PRICE = c(red_bulb, orange_bulb)
BULB_TYPE = rep(c("red", "orange"), each = 8)
 
# Now creating a dataframe
DATASET <- data.frame(BULB_TYPE, BULB_PRICE, stringsAsFactors = TRUE)
 
# printing the dataframe
DATASET
 
# installing libraries to view summaries and
# boxplot of both orange and red color bulbs
install.packages("dplyr")
install.packages("ggpubr")
 
# Summary of the data
 
# loading the package
library(dplyr)
group_by(DATASET,BULB_TYPE) %>%
  summarise(
    count = n(),
    median = median(BULB_PRICE, na.rm = TRUE),
    IQR = IQR(BULB_PRICE, na.rm = TRUE))
 
# loading package for boxplot
library("ggpubr")
ggboxplot(DATASET, x = "BULB_TYPE", y = "BULB_PRICE",
          color = "BULB_TYPE", palette = c("#FFA500", "#FF0000"),
          ylab = "BULB_PRICES", xlab = "BULB_TYPES")
 
res <- wilcox.test(BULB_PRICE~ BULB_TYPE,
                   data = DATASET,
                   exact = FALSE)
res


输出:

> 数据集

BULB_TYPE BULB_PRICE
1        red       38.9
2        red       61.2
3        red       73.3
4        red       21.8
5        red       63.4
6        red       64.6
7        red       48.4
8        red       48.8
9     orange       47.8
10    orange       60.0
11    orange       63.4
12    orange       76.0
13    orange       89.4
14    orange       67.3
15    orange       61.3
16    orange       62.4

# 数据摘要

summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 2 x 4
  BULB_TYPE count median   IQR
          
1 orange        8   62.9   8.5
2 red           8   55    17.7

# 箱形图

输出箱线图

> 资源

Wilcoxon rank sum test with continuity correction

data:  BULB_PRICE by BULB_TYPE
W = 44.5, p-value = 0.2072
alternative hypothesis: true location shift is not equal to 0

解释:

在这里,我们可以看到p的值是0.2072 ,远小于原假设(0.5) 。因此它将被拒绝。并且可以得出结论,红色和橙色灯泡的价格分布并不相同。因此,不能说购买上述任何一种灯泡是否有利可图。