R wilcoxon 组检验
R wilcoxon test on groups
我想对配对样本执行 wilcoxon 检验,我想知道我的代码对于我想测试的内容是否正确。我想知道我的因变量平均湿度 (=Feuchte) 和我的独立变量距离 (=Transtyp) 之间是否存在显着差异(按壶穴 (Soll) 分组)。假设是,随着距离的增加,每个水壶孔的水分显着减少。
这是我的数据框
df <- structure(list(Datum = structure(c(18703, 18703, 18703, 18703,
18724, 18724, 18724, 18724, 18730, 18730, 18730, 18730, 18744,
18744, 18744, 18744, 18758, 18758, 18758, 18758, 18774, 18774,
18774, 18774), class = "Date"), Soll = c("1192", "1192", "149",
"149", "1192", "1192", "149", "149", "1192", "1192", "149", "149",
"1192", "1192", "149", "149", "1192", "1192", "149", "149", "1192",
"1192", "149", "149"), Transtyp = structure(c(1L, 2L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L, 2L, 1L, 2L), .Label = c("2", "5"), class = "factor"), Feuchte = c(36.15,
36.6518518518519, 37.66, 37.8310344827586, 28.7625, 30.128125,
27.271875, 23.0645161290323, 31.903125, 32.15625, 31.740625,
29.9875, 14.6290322580645, 14.6516129032258, 15.058064516129,
13.159375, 13.675, 13.7896551724138, 12.390625, 9.690625, 16.2586206896552,
17.441935483871, 24.24375, 20.24375)), row.names = c(NA, -24L
), class = c("tbl_df", "tbl", "data.frame"))
到目前为止,这是我的代码:
df %>% ungroup() %>%
split(.$Soll)%>%
map_df( ~broom::tidy(wilcox.test(Feuchte ~ Transtyp, data = .x, paired = T, )), .id = "Soll")
我真的像上面描述的那样测试了我想测试的东西吗?结果让我感到困惑。另外,我知道您也可以使用“,”代替“~”。这两者有什么区别,我需要哪一个,为什么?我真的被困住了,找不到很好的解释。非常感谢!
干杯
是的,看来您的计算是正确的。何时使用 ~ 与 , 取决于您的数据的形式。
在上面的示例中,您的数据框有 1 列相关值 (Feuchte) 和一列自变量 (Transtyp),因此公式样式是正确的“y ~ x”(y 作为 x 的函数)。
另一方面,如果您有 2 个独立的数据向量,则需要使用 , 格式(y1 与 y2 相比)。
使用您的示例进行演示:
df %>% ungroup() %>%
split(.$Soll)%>%
map_df( ~broom::tidy(wilcox.test(Feuchte ~ Transtyp, data = .x, paired = T, )), .id = "Soll")
# A tibble: 2 × 5
# Soll statistic p.value method alternative
# <chr> <dbl> <dbl> <chr> <chr>
#1 1192 0 0.0313 Wilcoxon signed rank exact test two.sided
#2 149 20 0.0625 Wilcoxon signed rank exact test two.sided
现在从 Sol=1192 时提取 Transtyp==2 和 Transtyp==5:
sg<-df %>% ungroup() %>% split(.$Soll)
wilcox.test(sg$`1192`$Feuchte[sg$`1192`$Transtyp==2], sg$`1192`$Feuchte[sg$`1192`$Transtyp==5], paired = TRUE)
# Wilcoxon signed rank exact test
#
#data: sg$`1192`$Feuchte[sg$`1192`$Transtyp == 2] and sg$`1192`$Feuchte[sg$`1192`$Transtyp == 5]
#V = 0, p-value = 0.03125
#alternative hypothesis: true location shift is not equal to 0
如您所见,对于 Soll==1192,两种情况下的 V=0 和值 =0.0313。
我想对配对样本执行 wilcoxon 检验,我想知道我的代码对于我想测试的内容是否正确。我想知道我的因变量平均湿度 (=Feuchte) 和我的独立变量距离 (=Transtyp) 之间是否存在显着差异(按壶穴 (Soll) 分组)。假设是,随着距离的增加,每个水壶孔的水分显着减少。
这是我的数据框
df <- structure(list(Datum = structure(c(18703, 18703, 18703, 18703,
18724, 18724, 18724, 18724, 18730, 18730, 18730, 18730, 18744,
18744, 18744, 18744, 18758, 18758, 18758, 18758, 18774, 18774,
18774, 18774), class = "Date"), Soll = c("1192", "1192", "149",
"149", "1192", "1192", "149", "149", "1192", "1192", "149", "149",
"1192", "1192", "149", "149", "1192", "1192", "149", "149", "1192",
"1192", "149", "149"), Transtyp = structure(c(1L, 2L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L, 2L, 1L, 2L), .Label = c("2", "5"), class = "factor"), Feuchte = c(36.15,
36.6518518518519, 37.66, 37.8310344827586, 28.7625, 30.128125,
27.271875, 23.0645161290323, 31.903125, 32.15625, 31.740625,
29.9875, 14.6290322580645, 14.6516129032258, 15.058064516129,
13.159375, 13.675, 13.7896551724138, 12.390625, 9.690625, 16.2586206896552,
17.441935483871, 24.24375, 20.24375)), row.names = c(NA, -24L
), class = c("tbl_df", "tbl", "data.frame"))
到目前为止,这是我的代码:
df %>% ungroup() %>%
split(.$Soll)%>%
map_df( ~broom::tidy(wilcox.test(Feuchte ~ Transtyp, data = .x, paired = T, )), .id = "Soll")
我真的像上面描述的那样测试了我想测试的东西吗?结果让我感到困惑。另外,我知道您也可以使用“,”代替“~”。这两者有什么区别,我需要哪一个,为什么?我真的被困住了,找不到很好的解释。非常感谢!
干杯
是的,看来您的计算是正确的。何时使用 ~ 与 , 取决于您的数据的形式。
在上面的示例中,您的数据框有 1 列相关值 (Feuchte) 和一列自变量 (Transtyp),因此公式样式是正确的“y ~ x”(y 作为 x 的函数)。
另一方面,如果您有 2 个独立的数据向量,则需要使用 , 格式(y1 与 y2 相比)。
使用您的示例进行演示:
df %>% ungroup() %>%
split(.$Soll)%>%
map_df( ~broom::tidy(wilcox.test(Feuchte ~ Transtyp, data = .x, paired = T, )), .id = "Soll")
# A tibble: 2 × 5
# Soll statistic p.value method alternative
# <chr> <dbl> <dbl> <chr> <chr>
#1 1192 0 0.0313 Wilcoxon signed rank exact test two.sided
#2 149 20 0.0625 Wilcoxon signed rank exact test two.sided
现在从 Sol=1192 时提取 Transtyp==2 和 Transtyp==5:
sg<-df %>% ungroup() %>% split(.$Soll)
wilcox.test(sg$`1192`$Feuchte[sg$`1192`$Transtyp==2], sg$`1192`$Feuchte[sg$`1192`$Transtyp==5], paired = TRUE)
# Wilcoxon signed rank exact test
#
#data: sg$`1192`$Feuchte[sg$`1192`$Transtyp == 2] and sg$`1192`$Feuchte[sg$`1192`$Transtyp == 5]
#V = 0, p-value = 0.03125
#alternative hypothesis: true location shift is not equal to 0
如您所见,对于 Soll==1192,两种情况下的 V=0 和值 =0.0313。