Compute the effect size for Kruskal-Wallis test as the eta
squared based on the H-statistic: eta2[H] = (H - k + 1)/(n - k);
where H is the value obtained in the Kruskal-Wallis test; k is
the number of groups; n is the total number of observations.
The eta-squared estimate assumes values from 0 to 1 and multiplied by 100
indicates the percentage of variance in the dependent variable explained by
the independent variable. The interpretation values commonly in published
litterature are: 0.01- < 0.06 (small effect), 0.06 - < 0.14
(moderate effect) and >= 0.14 (large effect).
Note that eta2[H] is a bias-corrected estimator, so the raw formula can
return a small negative value for a near-null effect (very small H). In
that case the estimate is floored to 0, keeping the reported effect size within
its valid [0, 1] range.
Confidence intervals are calculated by bootstap.
See the Datanovia tutorial Kruskal-Wallis Test in R for a worked walkthrough.
kruskal_effsize(
data,
formula,
ci = FALSE,
conf.level = 0.95,
ci.type = "perc",
nboot = 1000,
boot.parallel = getOption("boot.parallel", "no"),
boot.ncpus = getOption("boot.ncpus", 1L),
method = c("eta2", "epsilon2")
)return a data frame with some of the following columns:
.y.: the y variable used in the test.
n: Sample
counts.
effsize: estimate of the effect size.
magnitude: magnitude of effect size.
conf.low,conf.high:
lower and upper bound of the effect size confidence interval.
a data.frame containing the variables in the formula.
a formula of the form x ~ group where x is a
numeric variable giving the data values and group is a factor with
one or multiple levels giving the corresponding groups. For example,
formula = TP53 ~ cancer_group.
If TRUE, returns confidence intervals by bootstrap. May be slow.
The level for the confidence interval.
The type of confidence interval to use. Can be any of "norm",
"basic", "perc", or "bca". Passed to boot::boot.ci.
The number of replications to use for bootstrap.
The type of parallel operation to be used when computing
the bootstrap confidence interval. Allowed values are "no" (default),
"multicore" and "snow". Passed to boot().
Defaults to getOption("boot.parallel", "no"), so it can also be set
globally with options(boot.parallel = "multicore"). Only used when
ci = TRUE.
Integer. The number of processes to be used in the parallel
bootstrap. Defaults to getOption("boot.ncpus", 1L). Note that
boot.parallel has no effect unless boot.ncpus > 1. Only used
when ci = TRUE.
the effect-size metric. Either "eta2" (default) for the
bias-corrected eta-squared eta2[H] = (H - k + 1)/(N - k), or
"epsilon2" for the rank epsilon-squared H/(N - 1) (Tomczak &
Tomczak, 2014), which equals effectsize::rank_epsilon_squared() and is
not bias-corrected (so a little larger than eta2[H]).
Maciej Tomczak and Ewa Tomczak. The need to report effect size estimates revisited. An overview of some recommended measures of effect size. Trends in Sport Sciences. 2014; 1(21):19-25.
http://imaging.mrc-cbu.cam.ac.uk/statswiki/FAQ/effectSize
http://www.psy.gla.ac.uk/~steve/best/effect.html
The Datanovia tutorial: Kruskal-Wallis Test in R.
# Load data
#:::::::::::::::::::::::::::::::::::::::
data("ToothGrowth")
df <- ToothGrowth
# Kruskal-wallis rank sum test
#:::::::::::::::::::::::::::::::::::::::::
df %>% kruskal_effsize(len ~ dose)
# Grouped data
df %>%
group_by(supp) %>%
kruskal_effsize(len ~ dose)
Run the code above in your browser using DataLab