Skip to contents

This function tries to return the best effect-size measure for the provided input model. See details.

Usage

# S3 method for BFBayesFactor
effectsize(model, type = NULL, ci = 0.95, test = NULL, verbose = TRUE, ...)

effectsize(model, ...)

# S3 method for aov
effectsize(model, type = NULL, ...)

# S3 method for htest
effectsize(model, type = NULL, verbose = TRUE, ...)

Arguments

model

An object of class htest, or a statistical model. See details.

type

The effect size of interest. See details.

ci

Value or vector of probability of the CI (between 0 and 1) to be estimated. Default to .95 (95%).

test

The indices of effect existence to compute. Character (vector) or list with one or more of these options: "p_direction" (or "pd"), "rope", "p_map", "equivalence_test" (or "equitest"), "bayesfactor" (or "bf") or "all" to compute all tests. For each "test", the corresponding bayestestR function is called (e.g. rope() or p_direction()) and its results included in the summary output.

verbose

Toggle warnings and messages on or off.

...

Arguments passed to or from other methods. See details.

Value

A data frame with the effect size (depending on input) and and its CIs (CI_low and CI_high).

Details

  • For an object of class htest, data is extracted via insight::get_data(), and passed to the relevant function according to:

    • A t-test depending on type: "cohens_d" (default), "hedges_g", or one of "p_superiority", "u1", "u2", "u3", "overlap".

    • A Chi-squared tests of independence or Fisher's Exact Test, depending on type: "cramers_v" (default), "tschuprows_t", "phi", "cohens_w", "pearsons_c", "cohens_h", "oddsratio", "riskratio", "arr", or "nnt".

    • A Chi-squared tests of goodness-of-fit, depending on type: "fei" (default) "cohens_w", "pearsons_c"

    • A One-way ANOVA test, depending on type: "eta" (default), "omega" or "epsilon" -squared, "f", or "f2".

    • A McNemar test returns Cohen's g.

    • A Wilcoxon test depending on type: returns "rank_biserial" correlation (default) or one of "p_superiority", "vda", "u2", "u3", "overlap".

    • A Kruskal-Wallis test depending on type: "epsilon" (default) or "eta".

    • A Friedman test returns Kendall's W. (Where applicable, ci and alternative are taken from the htest if not otherwise provided.)

  • For an object of class BFBayesFactor, using bayestestR::describe_posterior(),

    • A t-test depending on type: "cohens_d" (default) or one of "p_superiority", "u1", "u2", "u3", "overlap".

    • A correlation test returns r.

    • A contingency table test, depending on type: "cramers_v" (default), "phi", "tschuprows_t", "cohens_w", "pearsons_c", "cohens_h", "oddsratio", or "riskratio", "arr", or "nnt".

    • A proportion test returns p.

  • Objects of class anova, aov, aovlist or afex_aov, depending on type: "eta" (default), "omega" or "epsilon" -squared, "f", or "f2".

  • Other objects are passed to parameters::standardize_parameters().

For statistical models it is recommended to directly use the listed functions, for the full range of options they provide.

See also

vignette(package = "effectsize")

Examples


## Hypothesis Testing
## ------------------
data("Music_preferences")
Xsq <- chisq.test(Music_preferences)
effectsize(Xsq)
#> Cramer's V (adj.) |       95% CI
#> --------------------------------
#> 0.23              | [0.18, 1.00]
#> 
#> - One-sided CIs: upper bound fixed at [1.00].
effectsize(Xsq, type = "cohens_w")
#> Cohen's w |       95% CI
#> ------------------------
#> 0.34      | [0.27, 1.41]
#> 
#> - One-sided CIs: upper bound fixed at [1.41~].

Tt <- t.test(1:10, y = c(7:20), alternative = "less")
effectsize(Tt)
#> Cohen's d |        95% CI
#> -------------------------
#> -2.19     | [-Inf, -1.32]
#> 
#> - Estimated using un-pooled SD.
#> - One-sided CIs: lower bound fixed at [-Inf].

Aov <- oneway.test(extra ~ group, data = sleep, var.equal = TRUE)
effectsize(Aov)
#> Eta2 |       95% CI
#> -------------------
#> 0.16 | [0.00, 1.00]
#> 
#> - One-sided CIs: upper bound fixed at [1.00].
effectsize(Aov, type = "omega")
#> Omega2 |       95% CI
#> ---------------------
#> 0.11   | [0.00, 1.00]
#> 
#> - One-sided CIs: upper bound fixed at [1.00].

Wt <- wilcox.test(1:10, 7:20, mu = -3, alternative = "less", exact = FALSE)
effectsize(Wt)
#> r (rank biserial) |         95% CI
#> ----------------------------------
#> -0.65             | [-1.00, -0.36]
#> 
#> - Deviation from a difference of -3.
#> - One-sided CIs: lower bound fixed at [-1.00].
effectsize(Wt, type = "u2")
#> Cohen's U2 |       95% CI
#> -------------------------
#> 0.73       | [0.00, 1.00]
#> 
#> - Non-parametric CLES

## Models and Anova Tables
## -----------------------
fit <- lm(mpg ~ factor(cyl) * wt + hp, data = mtcars)
effectsize(fit, method = "basic")
#> # Standardization method: basic
#> 
#> Parameter       | Std. Coef. |         95% CI
#> ---------------------------------------------
#> (Intercept)     |       0.00 | [ 0.00,  0.00]
#> factor(cyl)6    |      -0.59 | [-1.89,  0.70]
#> factor(cyl)8    |      -1.06 | [-1.90, -0.23]
#> wt              |      -0.90 | [-1.33, -0.46]
#> hp              |      -0.25 | [-0.52,  0.01]
#> factor(cyl)6:wt |       0.50 | [-0.85,  1.84]
#> factor(cyl)8:wt |       1.15 | [ 0.06,  2.25]

anova_table <- anova(fit)
effectsize(anova_table)
#> # Effect Size for ANOVA (Type I)
#> 
#> Parameter      | Eta2 (partial) |       95% CI
#> ----------------------------------------------
#> factor(cyl)    |           0.86 | [0.76, 1.00]
#> wt             |           0.47 | [0.22, 1.00]
#> hp             |           0.14 | [0.00, 1.00]
#> factor(cyl):wt |           0.16 | [0.00, 1.00]
#> 
#> - One-sided CIs: upper bound fixed at [1.00].
effectsize(anova_table, type = "epsilon")
#> # Effect Size for ANOVA (Type I)
#> 
#> Parameter      | Epsilon2 (partial) |       95% CI
#> --------------------------------------------------
#> factor(cyl)    |               0.85 | [0.74, 1.00]
#> wt             |               0.44 | [0.20, 1.00]
#> hp             |               0.11 | [0.00, 1.00]
#> factor(cyl):wt |               0.09 | [0.00, 1.00]
#> 
#> - One-sided CIs: upper bound fixed at [1.00].

if (FALSE) { # requireNamespace("BayesFactor", quietly = TRUE) && interactive()
## Bayesian Hypothesis Testing
## ---------------------------
bf_prop <- BayesFactor::proportionBF(3, 7, p = 0.3)
effectsize(bf_prop)

bf_corr <- BayesFactor::correlationBF(attitude$rating, attitude$complaints)
effectsize(bf_corr)

data(RCT_table)
bf_xtab <- BayesFactor::contingencyTableBF(RCT_table, sampleType = "poisson", fixedMargin = "cols")
effectsize(bf_xtab)
effectsize(bf_xtab, type = "oddsratio")
effectsize(bf_xtab, type = "arr")

bf_ttest <- BayesFactor::ttestBF(sleep$extra[sleep$group == 1],
  sleep$extra[sleep$group == 2],
  paired = TRUE, mu = -1
)
effectsize(bf_ttest)
}