0

Tomczak 和 Tomczak (2014)使用以下代码计算 Kruskal-Wallis H 检验的 eta 平方的公式:

x <- Data$text
H <- unname(kruskal.test(x ~ Data$group)$statistic)
n <- sum(table(x, Data$group))
k <- unname(res$parameter)+1

eta_squared <- (H-k+1)/(n - k)
print(eta_squared)

为了重现性的目的,这里是数据:

x <- c(2,2,3,3,3,3,3,4,5,6,6,6,7,7,8,8,9,10,11,11,13,9,10,11,12,19,19,23,26,30,8,14,16,24,26,43,46)


group1 <- rep("group1", 21)
group2 <- rep("group2", 9)
group3 <- rep("group3", 7)


df <- data.frame(group = c(group1, group2, group3), result = c(x))

但是,当将结果与 rstatix 软件包的结果进行比较时,它有时会给出不同的结果,所以我不确定我应该报告哪一个。我查看了源代码,我不知道可能有什么区别。差异的根源是什么?

library(rstatix)
kruskal_effsize(
  Data,
  x ~ group,
  ci = FALSE,
  conf.level = 0.95,
  ci.type = "perc",
  nboot = 1000
)
4

1 回答 1

0

我没有得到你的结果。首先修改您的初始代码以使用 df:

res <- kruskal.test(result~group, df)
H <- unname(res$statistic)
n <- sum(table(df$result, df$group))
k <- unname(res$parameter)+1
(eta_squared <- (H-k+1)/(n - k))
# [1] 0.5812849

现在另一个计算:

kruskal_effsize(df, x ~ group, ci = FALSE, conf.level = 0.95,
       ci.type = "perc", nboot = 1000)
# A tibble: 1 x 5
#   .y.       n effsize method  magnitude
# * <chr> <int>   <dbl> <chr>   <ord>    
# 1 x        37   0.581 eta2[H] large 
于 2020-09-01T15:15:49.960 回答