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).
Confidence intervals are calculated by bootstap.
kruskal_effsize(
data,
formula,
ci = FALSE,
conf.level = 0.95,
ci.type = "perc",
nboot = 1000
)
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.
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.
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
# Load data
#:::::::::::::::::::::::::::::::::::::::
data("ToothGrowth")
df <- ToothGrowth
# Kruskal-wallis rank sum test
#:::::::::::::::::::::::::::::::::::::::::
df %>% kruskal_effsize(len ~ dose)
#> # A tibble: 1 × 5
#> .y. n effsize method magnitude
#> * <chr> <int> <dbl> <chr> <ord>
#> 1 len 60 0.678 eta2[H] large
# Grouped data
df %>%
group_by(supp) %>%
kruskal_effsize(len ~ dose)
#> # A tibble: 2 × 6
#> supp .y. n effsize method magnitude
#> * <fct> <chr> <int> <dbl> <chr> <ord>
#> 1 OJ len 30 0.611 eta2[H] large
#> 2 VC len 30 0.855 eta2[H] large