
Effect Sizes
Source:R/effectsize.BFBayesFactor.R
, R/effectsize.R
, R/effectsize.htest.R
effectsize.Rd
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()
orp_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.
Details
For an object of class
htest
, data is extracted viainsight::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
andalternative
are taken from thehtest
if not otherwise provided.)
For an object of class
BFBayesFactor
, usingbayestestR::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
orafex_aov
, depending ontype
:"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.
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)
}