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.
Usage
kruskal_effsize(
data,
formula,
ci = FALSE,
conf.level = 0.95,
ci.type = "perc",
nboot = 1000
)Arguments
- data
a data.frame containing the variables in the formula.
- formula
a formula of the form
x ~ groupwherexis a numeric variable giving the data values andgroupis a factor with one or multiple levels giving the corresponding groups. For example,formula = TP53 ~ cancer_group.- ci
If TRUE, returns confidence intervals by bootstrap. May be slow.
- conf.level
The level for the confidence interval.
- ci.type
The type of confidence interval to use. Can be any of "norm", "basic", "perc", or "bca". Passed to
boot::boot.ci.- nboot
The number of replications to use for bootstrap.
Value
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.
References
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
Examples
# 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