easystats / effectsize

:dragon: Compute and work with indices of effect size and standardized parameters
https://easystats.github.io/effectsize/
Other
338 stars 24 forks source link
anova cohens-d compute conversion correlation effect-size effectsize hacktoberfest hedges-g interpretation r standardization standardized statistics

effectsize: Indices of Effect Size

DOI downloads total

Significant is just not enough!

The goal of this package is to provide utilities to work with indices of effect size and standardized parameters, allowing computation and conversion of indices such as Cohen’s d, r, odds-ratios, etc.

Installation

CRAN effectsize status
badge R-CMD-check pkgdown Codecov test
coverage

Run the following to install the stable release of effectsize from CRAN:

install.packages("effectsize")

Or you can install the latest development version from R-universe:

install.packages("effectsize", repos = "https://easystats.r-universe.dev/")

Documentation

Documentation Blog Features

Click on the buttons above to access the package documentation and the easystats blog, and check-out these vignettes:

Features

This package is focused on indices of effect size. Check out the package website for a full list of features and functions provided by effectsize.

library(effectsize)
options(es.use_symbols = TRUE) # get nice symbols when printing! (On Windows, requires R >= 4.2.0)

Tip:

Instead of library(effectsize), use library(easystats). This will make all features of the easystats-ecosystem available.

To stay updated, use easystats::install_latest().

Effect Size Computation

The package provides functions to compute indices of effect size.

Standardized Differences (Cohen’s d, Hedges’ g, Glass’ delta)

cohens_d(mpg ~ am, data = mtcars)
## Cohen's d |         95% CI
## --------------------------
## -1.48     | [-2.27, -0.67]
## 
## - Estimated using pooled SD.

hedges_g(mpg ~ am, data = mtcars)
## Hedges' g |         95% CI
## --------------------------
## -1.44     | [-2.21, -0.65]
## 
## - Estimated using pooled SD.

glass_delta(mpg ~ am, data = mtcars)
## Glass' Δ (adj.) |         95% CI
## --------------------------------
## -1.10           | [-1.80, -0.37]

effectsize also provides effect sizes for paired standardized differences, rank tests, common language effect sizes and more…

Contingency Tables

# Dependence
phi(mtcars$am, mtcars$vs)
## ϕ (adj.) |       95% CI
## -----------------------
## 0.00     | [0.00, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

cramers_v(mtcars$am, mtcars$cyl)
## Cramer's V (adj.) |       95% CI
## --------------------------------
## 0.46              | [0.00, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

# Goodness-of-fit
fei(table(mtcars$cyl), p = c(0.1, 0.3, 0.6))
## פ‎    |       95% CI
## -------------------
## 0.27 | [0.17, 1.00]
## 
## - Adjusted for uniform expected probabilities.
## - One-sided CIs: upper bound fixed at [1.00].

ANOVAs (Eta2, Omega2, …)

model <- aov(mpg ~ factor(gear), data = mtcars)

eta_squared(model)
## # Effect Size for ANOVA
## 
## Parameter    |   η² |       95% CI
## ----------------------------------
## factor(gear) | 0.43 | [0.18, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

omega_squared(model)
## # Effect Size for ANOVA
## 
## Parameter    |   ω² |       95% CI
## ----------------------------------
## factor(gear) | 0.38 | [0.14, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

epsilon_squared(model)
## # Effect Size for ANOVA
## 
## Parameter    |   ε² |       95% CI
## ----------------------------------
## factor(gear) | 0.39 | [0.14, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

And more…

Effect Size Conversion

The package also provides ways of converting between different effect sizes.

d_to_r(d = 0.2)
## [1] 0.0995

oddsratio_to_riskratio(2.6, p0 = 0.4)
## [1] 1.59

And for recovering effect sizes from test statistics.

F_to_d(15, df = 1, df_error = 60)
## d    |       95% CI
## -------------------
## 1.00 | [0.46, 1.53]

F_to_r(15, df = 1, df_error = 60)
## r    |       95% CI
## -------------------
## 0.45 | [0.22, 0.61]

F_to_eta2(15, df = 1, df_error = 60)
## η² (partial) |       95% CI
## ---------------------------
## 0.20         | [0.07, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

Effect Size Interpretation

The package allows for an automated interpretation of different indices.

interpret_r(r = 0.3)
## [1] "large"
## (Rules: funder2019)

Different sets of “rules of thumb” are implemented (guidelines are detailed here) and can be easily changed.

interpret_cohens_d(d = 0.45, rules = "cohen1988")
## [1] "small"
## (Rules: cohen1988)

interpret_cohens_d(d = 0.45, rules = "gignac2016")
## [1] "moderate"
## (Rules: gignac2016)

Citation

In order to cite this package, please use the following citation:

Corresponding BibTeX entry:

@Article{,
  title = {{e}ffectsize: Estimation of Effect Size Indices and Standardized Parameters},
  author = {Mattan S. Ben-Shachar and Daniel Lüdecke and Dominique Makowski},
  year = {2020},
  journal = {Journal of Open Source Software},
  volume = {5},
  number = {56},
  pages = {2815},
  publisher = {The Open Journal},
  doi = {10.21105/joss.02815},
  url = {https://doi.org/10.21105/joss.02815}
}

Contributing and Support

If you have any questions regarding the the functionality of the package, you may either contact us via email or also file an issue. Anyone wishing to contribute to the package by adding functions, features, or in another way, please follow this guide and our code of conduct.