R 编程中的 Mann Whitney U 测试
用于比较两个独立组之间结果的流行非参数(无分布)检验是Mann Whitney U 检验。在比较两个独立样本时,当结果不是正态分布且样本较小时,适合进行非参数检验。它用于根据序数(具有内在顺序或等级的分类变量)因变量查看两个自变量之间的分布差异。在 R 编程中执行这个测试非常容易。
R 编程中 Mann Whitney U 检验的实现
假设我们的数据中有两种灯泡,分别是橙色和红色,它们根据日常基本价格进行划分。所以这里的基本价格是红色和橙色两个类别的因变量。因此,我们将尝试分析,如果我们想根据价格购买红色或橙色的灯泡,我们应该更喜欢哪个。如果两个分布相同,则这意味着原假设(意味着两者之间没有显着差异)为真,我们可以购买其中任何一个,价格无关紧要。要理解 Mann Whitney U 检验的概念,需要知道什么是p 值。这个值实际上告诉我们是否可以拒绝我们的零假设(0.5)。现在下面是上述示例的实现。
方法
- 制作一个包含两个分类变量的数据框,其中一个是序数类型。
- 在此之后,通过加载包dplyr检查非序数分类变量的摘要 和总结() 使用median()获取中值 并通过bulb_prices 列、IQR-四分位数范围以及两组的计数,即红色和橙色灯泡。
- 然后查看箱线图并在安装包ggpubr并使用ggboxplot()的帮助下查看数据分布 并将列作为 x 和 y 中的参数传递,并在调色板的帮助下为它们提供颜色并传递颜色代码。
- 然后最后应用函数wilcox.test() 得到 p 值。
- 如果发现 p 值小于 0.5,则拒绝原假设。
- 如果我们发现该值大于 0.5,则将接受原假设。
- 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) 。因此它将被拒绝。并且可以得出结论,红色和橙色灯泡的价格分布并不相同。因此,不能说购买上述任何一种灯泡是否有利可图。